Bu cevap çok uzun bir süre sonra, ama bunu Google'da bulduğumdan beri belki bu hala birine yardımcı olacak. Sadece JasonD ve Notabene'nin ne dediğini açıklığa kavuşturmak istiyorum: Kırpma hesaplamaları yapmak çok daha kolay (ne görmeniz gerektiğini ve neye bakmamanız gerektiğini anlamanız gerekir, vb.) .). Görünüşünüzün kenarlarındaki düzlemlerin kesişip kesişmediğini kontrol etmek yerine, her şeyin x, y, z ile xMax, xMin, yMax, vb. , çünkü sadece bir küpünüz var. Gösteren bir şeyin sadece bir kısmına sahip olmak istiyorsanız biraz daha karmaşıktır, ancak matematik bir ünite küpüyle bir frustumdan daha iyidir.
Diğer cevaplarda yanıltıcı bulduğum birkaç şey:
- Yanları görünüm frustumundan kesmiyorsunuz, homojen matris dönüşümlerini kullanarak bir küp haline getiriyorsunuz.
-Bu adımla bir 2D ekrana dönüştürmüyoruz. Bu adımın yapılması gerekli değildir. Teorik olarak, tüm çalışmamızı ilk önce bir sezgiye dönüştürmeden yapabiliriz, bu da daha sezgisel ama daha zor matematik olurdu - ancak grafikler, ortalama oyun / her ne olursa olsun saniyede bir LOT hesaplama olduğu için grafiklerin çok hızlı bir şekilde hesaplanmasıyla ilgilidir.
Daha fazla detay: Bu, mutlaka dönüştürdüğümüz bir birim küpü değildir, maksimum-min hesaplamalarımızın çalışması için sadece dikdörtgen bir kutu olması gerekir. Aslında sınıfta kameranın z eksenine baktığı, z 0'dan 1'e, x -1'den 1'e ve y -1'den 1'e gittiği bir kutu kullandık. Genel olarak matematik 1, 0, ve -1, hesaplamaları kolaylaştırmak için iyi sayılardır, bu yüzden -100'den 100'e veya başka bir şeye gitmiyoruz.
TLDR: Kırpmayı kolaylaştırır.
Düzenleme: bobobobo bunun özü var. Her şey genellikle üçgenlerdir: D.
Kaynak: Üniversite grafik dersi almak