3D sohasida ishlaydigan mutaxasislar guruhidagi savolga javob.
Savol: Bir savol bor edi, bironta model render qilinsa kompyuter oʻsha setkalarni uchburchak(triangle) qilib hisoblaydimi?
Javob: Siz ishlatadigan high-level dasturlarda (3DS Max, Blender, SketchUp, …) bemalol to’rtburchak chiza olasiz. Ammo o’sha dasturlarning barchasi faqat OS level’dagi Graphics API dan foydalanadi. Ya’ni Windows da DirectX 3D, Vulkan yoki OpenGL. MacOS da Metal yoki boshqasi, vahokazo. Ularning barchasida faqatgina Point (nuqta), Line (chiziq), Triangle (uchburchak) chizish mumkin.
Savolingizdagi «render qilsa» jumlasi «Computer Science» da «Rasterization» deyiladi. Ya’ni chizilgan narsani tasvirga aylantirish. Undan avval esa «Buffer stage» jarayoni amalga oshiriladi. Oddiy qilib aytganda geometriyani chizishdan (render qilishdan) avvalgi hisoblash bosqichi. Ana shu bosqichda sizning «uchburchak qilib hisoblaydimi?» degan savolingizga javob topiladi.
Oddiy 2D To’rtburchak — 2 ta uchburchakdan hosil bo’lsada, uchburchakda 3 ta nuqta bo’lgani bois, bizga umumiy 6 ta nuqta kerak deb o’ylaymiz. Aslida esa unday emas. 4 ta (1-nuqta, 2-nuqta, 3-nuqta, 4-nuqta) alohida uchburchak-lashtiriladi Bu fanda «Triangulation» deyiladi:
Birinchi uchburchak = 0-nuqta, 1-nuqta, 2-nuqta Ikkinchi uchburchak = 2-nuqta, 3-nuqta, 0-nuqta
(Kompyuter 0 dan sanaydi)
30 / 3 = 10 (Bu yerda 3 soni — uchburchakni bildiradi). Javob 10. Ammo faqat 10 ta uchburchak qila olamiz degani emas. triangulyatsiya oqibatida 30 ta nuqtadan ham 100+ uchburchakni hisoblash mumkin.
Kompyuter keyingi bosqichda «Rasterization stage» ga aytadi: Mana bu 1-uchburchak va 2-uchburchak, …
Aslida esa o’sha uchburchaklarning asli mavjud bo’lmaydi. Ya’ni siz ishlatadigan dasturlar unique (unikal) nuqtalarning reference’larini loyiha ichiga yozib qo’yadi. Shuning uchun siz modelni export qilayotganingizda «Triangulate» degan option’ga ko’zingiz tushishi mumkin. Agar u yoqilgan bo’lsa, to’rtburchak uchun 4 ta nuqta va index buffer ma’lumotlarini export qiladi. Agar yoqilmagan bo’lsa, to’rtburchak uchun 6 ta nuqtani o’zini export qiladi.
O’yin sahnalari, yoki har qanday graphics visualization’da avvaldan (dasturda) triangulyatsiya qilingan modellar tavsiya qilinadi. Chunki u murakkab modellardagi uchburchaklar sonini tejaydi. Hajm jihatidan katta yoki kichik bo’lishi bahsli masala, ammo hisoblash jihatidan (Ayniqsa real-time paytida) shu usul samaraliroq.
v0, v1, v2, v3 — bu mavjud nuqtalar
indices — Triangulation qilingan ma’lumot. Oddiy aytganda uchburchaklar ketma-ketligi. Kompyuter indices ichidagi sonlarni har 3 tasinini — 1 uchburchak uchun manzillar ro’ytaxi deb ko’radi.
Rasmda 2 ta usulda uchburchak hisoblash ko’rsatilgan. 1-usulga etibor bersangiz, 6 ta nuqta va bazilari takrorlagan nuqtalar.
Manba:
Dizayn, Grafika va Ovoz
3D sohasida ishlaydigan mutaxasislar guruhidagi savolga javob.