Genel olarak, dünya çok sayıda üçgenin haritasını çıkarır ve harita bu üçgenlerin bir listesi ve her bir tepe noktasının dünyasındaki konumudur. Onları çizme süreci:
- 'Kameranın' konumunu ayarlayın - eğer dünyada durduysanız, bu dünya konumunda olacaksınız
- Üçgen köşeleri 'kamera boşluğuna' dönüştürün
- Üçgenleri 'kamera boşluğundan' 'ekran boşluğuna' dönüştürün - bu, perpektif etkinin gerçekleştiği yerdir (uzak şeyler daha küçüktür). Üçgenler bu noktada 2B olur.
- 2D üçgeni gizli bir ekrana çizin.
- Tüm üçgenler çizildiğinde, ekranı oynatıcıya gösterin.
Son adım genellikle monitörün kare hızına bağlıdır, böylece gizli ekranı gösterme işlemi v-blank aralığı sırasında yapılır - katot ışın tüpü monitörlerinden türetilen bir kavram, katot ışınının aşağıdan sağa hareket etmesine izin verir solda, bu hızlı bir şekilde gerekliydi, ama hemen değil, ışın tüpünün arkasındaki sapma bobinlerindeki voltajları değiştirdi.
Bu gerçekten basit bir yöntem. Yüksek performans elde etmek için gizli yüzey çıkarma, oklüzyon, görünür küme belirleme vb. Gibi şeyler eklemeniz gerekir. Ne çizileceğine karar vermek için birçok algoritma var.
Ayrıca, dünyanın üçgenlerden oluştuğunu söyledim, ancak diskte bu şekilde saklanmayabilir. Genellikle ekrana çizilen üçgenler, çalışma zamanında yükseklik haritaları, spline'lar, tessalasyon, geometrik ilkeller (örn. Bir küre, kutu, vb.) Gibi yüksek dereceli ilkellerden tanımlanır.
Özel donanım gerekli değildir - birçok erken 3B oyunun hepsini yazılımda yaptı (FPU'su olmayan 8 bit CPU'larda bile). Sadece daha hızlı ve daha kolay hale getirir.
Çok basit bir soru. Kolay cevap yok.