21
Primitivning yuzada bo‘lmasligini aniqlash algoritmi primitivning
biror bir nuqtasiga tushuvchi ko‘rish nuri
va shu nuqtaning tashqi
normali
orasidagi
β
burchakni tahliliga asoslanadi.
β
burchakning
o‘tkirligi yoqning ko‘rinarli ekanligini, to‘g‘ri yoki o‘tmas burchak
esa yoqning ko‘rinmasligini anglatadi.
va
vektorlarning skalyar
ko‘paytmasi yordamida olinuvchi burchak kosinusi ishorasiga ko‘ra
bu burchak kattaligi haqida xulosa chiqarish mukin bo‘ladi:
| | | |
( )
da primitiv ko‘rinarli, aks holda ko‘rinmas bo‘ladi.
Vektor algebrasi
va
vektorlarning skalyar ko‘paytmasini topish
uchun quyidagi ifodani beradi:
bu yerda,
va
mos
ravishda
vektorlarning
koordinatalari, ya’ni ularning koordinata o‘qlaridagi proeksiyalari.
Fazoda perspektiv transformatsiya amalga oshirish orqali
primitivlarning
ko‘rinmas
bo‘lishini
aniqlashni
ancha
soddalashtirish mumkin. Bunda perspektiv (markaziy) proeksiyalash
parallel proeksiyaga almashtiriladi va barcha ko‘rish nurlari
chuqurlik o‘qiga parallel bo‘ladi.
U holda
| |
bo‘ladi. Biror bir sirt normalning koordinatalari bu sirtni ifodalovchi
( )
funksiya xususiy hosilalari orqali aniqlanadi. Agarda
primitiv tekis sirt bo‘lsa, u holda, uni ifodalovchi funksiya quyidagi
ko‘rinishda bo‘ladi:
( )
bu yerda,
A, B, C, D
lar tekislik holatini belgilovchi sonli kattaliklar.
Bu holat uchun
quyidagi ifoda bilan aniqlanadi:
va ko‘rinuvchanlik belgisi
juda sodda ko‘rinish oladi:
Agarda yuzadagi primitivlar kuzatuvchi fazosida oldida turgan
obyekt bilan to‘silgan bo‘lsa, ekranda ularning tasviri to‘laligicha
yoki qisman ko‘rinmaydi. Buning uchun ko‘rinmas qismlarni olib
22
tashlashga mo‘ljallangan ko‘pgina algoritmlar mavjud [18].
Ularning asosida har xil primitivlar
qismlarining joylashuv
chuqurligini analiz qilish yotadi. Kuzatuv nuqtasiga eng yaqin
qismlar ko‘rinuvchi hisoblanadilar. Zamonaviy grafik tizimlarda
ekran tekisligiga primitiv elementlarini proeksiyalash jarayonida
ishlatiladigan
z
-bufer va uning modifikatsiya
qilingan algoritmlari
keng tadbiqini topgan. Proeksiyalash jarayonida navbatdagi element
koordinatalari hisoblanishi bo‘yicha xotirada ko‘p razryadli
yacheyka tanlanadi va unga elementning rang yorqinligi kodi va uni
kuzatuvchidan yashirish kodi (chuqurlik kodi) yoziladi. Agarda vaqt
o‘tishi bilan boshqa primitiv elementi xotira buferining shu
manzilini olsa, u holda uning yashirish kodi buferning shu manziliga
ilgari kiritilgan yashirish kodi bilan taqqoslanadi.
Taqqoslash
natijasi bo‘yicha buferga chuqurlik kodi kichik element haqidagi
ma’lumot
saqlanadi.
Natijada,
bufer
mazmuni
ekranga
chiqarilayotganda ekranning har bir pikseli yoritilishida bitta
proektorda yotuvchi barcha elementlardan kuzatuvchiga eng yaqin
primitiv elementi tushadi. Primitivlarning to‘silgan
qismlarini
z-
bufer algoritmi yordamida olib tashlash rastr almashtirishlarida
ko‘riladi.
Do'stlaringiz bilan baham: