3D grafik programlama için matematik konuları [kapalı]


14

3D grafik programlama için aşağıdaki matematik konularının gerekli olduğunu anlıyorum. Bazılarını matematik dersimde yapmaya başladım. Birisi beni nasıl uygulandığını açıklayan bir kaynak yönünde gösterebilir mi? Hangi grafik / oyun sorunlarını çözmek için kullanılıyorlar?

  • vektör matematik
  • matris matematik
  • kuaterniyonlar
  • lineer Cebir

Gördüğüm kadarıyla bunların hepsi doğrusal cebir / matris konuları. Gerekli başka konular var mı?


Bu sorunun bununla ilgili bazı iyi bilgileri var: gamedev.stackexchange.com/questions/2029/…
michael.bartnett

@beardcp Yinelenen kadar ileri gidebilir.
Komünist Ördek

Yanıtlar:


10

Doğrusal Cebir, sadece 3 boyutlu grafik programlama için en önde gelen disiplindir, çünkü mekansal geometriyi tanımlamanın matematiksel dilidir. Diğer üç konunuz gerçekten sadece doğrusal cebirin alt kümeleridir:

  • Vektörler uzaydaki noktalar hakkında düşünmenin bir yoludur
  • Matrisler, uzayın ve nesnelerin dönüşümleri hakkında düşünme yollarıdır: nesneleri çevirme, ölçekleme, vb.
  • Kuaterniyonlar, bu dönüşümlerin belirli bir alt grubu, rotasyonlar için doğal bir temsildir
  • vs vs.

3D grafik programlama için diğer ilgili matematik parçalarına gelince, tavsiye edebileceğim neredeyse yeterli aşkı almayan, hesaplama geometrisidir. Birçok doğal problem, hesaplama geometrisindeki konulara kaynar:

  • Bir ses seviyesini bir dizi noktadan tanımlamanın en doğal yollarından biri (örneğin, belirli bir arka plan gürültüsünün çalınacağı ses seviyesini veya bir sis hacmini veya benzerini tanımlamak) Convex Gövdesini bulmaktır noktaların ; bunu 2 ve 3 boyutta yapmak için iyi algoritmalar var, ancak 2d algoritmaları bile hemen belli değil.
  • Belirli bir noktaya yakın veya hangi nesnelerin birbirine yakın olduğunu belirleme sorunu (örneğin, olası çarpışmalar için kontrol edilmesi gereken nesne sayısını azaltmak veya bir oyuncunun hangi düşmanları fark edeceğini tespit etmek) nokta) Geometrik sorgu problemleri alanına ve mekansal bölümleme şemalarına (ve böylece BSP ağaçları ve oktrees gibi yapılara) girer. Aynı genel fikirler 'satır izleme' sorgularını yanıtlamak için de kullanılır (örneğin, 'bu lazer ışını neye çarpıyor?')

Bundan sonra, temel hesabı ve özellikle diferansiyel denklemler için sayısal yöntemleri incelemeyi teşvik ederim; bunlar 3B grafiklerle 3 boyutlu fizikten daha az ilgilidir, ancak genel olarak iki konu oldukça sıkı bir şekilde birleştirilir (kineminin basit problemleri için bile - örneğin karakter animasyonları ve benzerleri için) ve her ikisinin de bilgisi ikisinden biri hakkındaki bilginizi önemli ölçüde geliştirmek; ilgili fiziği grafiklerle aynı çekirdek doğrusal cebir bilgisi olmadan çalışmak imkansız değilse de zor, ama aynı zamanda fizik bilgisine sahip olmak grafikteki konuları anlamak için başka bir referans noktası sağlar.


Bu harika bir cevaptı, Steven, teşekkür ederim. Vektörler, matrisler ve kuaterniyonlar hakkında düşünmek için özetlerinizi sevdim (ne yazık ki, mevcut lineer cebir öğretim üyemden 2 saniye içinde daha bilgilendirici) Bana 3D grafik programcılarına sunulan modelleme zorluklarının çeşitlerini daha iyi anladınız. Şerefe!
Katherine Rix



1

Kartezyen koordinatlara aşina iseniz, yukarıdaki konuların bilgisayar grafiklerine uygulanması oldukça açık olmalıdır. OpenGL için bunlar gibi temel ekran problemlerini çözmek için matematiğin uygulamasını açıklığa kavuşturmaya yardımcı olacak öğreticiler vardır , örneğin bir tel çerçeve modelinin nasıl döndüğü. Perspektif çizim hakkındaki Wikipedia makalesi biraz tarihsel geçmişe yardımcı olabilir.

Bunun ötesinde, matematiksel formülasyondan yararlanan birçok görüntüleme konusu vardır. Örneğin, 3D katılar genellikle yüzeylerinin üçgenlemeleri ile temsil edilir. Bir gözlemcinin görmesi gereken yüzeyin yalnızca o kısmını nasıl gösterebiliriz (gizli yüzey / çizgi algoritmaları)? Bir nesne belirli bir kaynaktan / yönden aydınlatılacaksa, bu ikna edici bir yüzey oluşturma sağlamak için perspektifle nasıl etkileşir?

Bunun ötesinde, bir sis veya alev animasyonu gibi her türlü ilginç modelleme konuları var. Ancak, konu listeniz ortalanmış gibi göründüğü gibi, koordinatların dönüşümü sonraki tüm ilerlemelerin temelidir.



1

Hepsi gerekli değildir. Vektör matematiği 3D grafiklerin her yerinde, vektör matematiğinin daha ince noktalarını bilmeden geometriyi kurabilirsiniz, ancak yumru haritaları gibi şeyler gerçekten zorlaşır ve fiziğe düşersiniz.

Kuaterniyonlar sadece bazı matematikler için farklı bir açıklama sunar, olması güzel olabilir, ancak quaternionlarla yapabileceğiniz herhangi bir hesaplamayı tanımlamak için daha geleneksel matematik yeterli olduğundan kesinlikle gerekli değildir.

Matris matematiği ve doğrusal cebir çok yakından ilişkilidir, en önemlisi sayı kümeleri üzerinde doğrusal işlemleri tanımlar. Fakat yine de, vektörler ve cebirle tanımlanabilecek bazı şeyleri tanımlamanın başka bir yolu.

Bunu temel matematiğin bir parçası olarak görüp görmediğinizi bilmiyorum, ancak trigonometrinin kesinlikle listeyi de yapması gerekiyor.


Şimdiye kadar birkaç fizik bahsettim - bana burada hangi kavramlardan bahsettiğinizi söyleyebilir misiniz? 12 yıldır konuya dokunmadım (yani liseden beri) ve açıkçası nefret ettim. Belki de mide uygulaması daha kolay bulacaksınız.
Katherine Rix

Newton fiziği, öncelikle çarpışma çözümü. Bu şeyleri lisede öğretmemiş olabilirsiniz, ama hepsi çok matematiksel, bu yüzden sadece matematikten hoşlanıyorsanız iyi olmalısınız.
aaaaaaaaaaaa
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.