Mathematikthemen für die 3D-Grafikprogrammierung [geschlossen]

14

Ich verstehe, dass die folgenden mathematischen Themen für die Programmierung von 3D-Grafiken erforderlich sind. Ich habe angefangen, einige davon in meinem Mathematikkurs zu machen. Kann mich jemand auf eine Ressource hinweisen, die erklärt, wie sie sich bewerben? Welche Grafik- / Spielprobleme lösen sie?

  • Vektor Mathematik
  • Matrix Mathematik
  • Quaternionen
  • Lineare Algebra

Soweit ich sehe, handelt es sich um Themen der linearen Algebra / Matrix. Sind noch weitere Themen erforderlich?

Katherine Rix
quelle
Diese Frage hat einige gute Informationen dazu: gamedev.stackexchange.com/questions/2029/…
michael.bartnett
@beardcp Ich könnte so weit gehen, zu duplizieren.
Die kommunistische Ente

Antworten:

10

Die lineare Algebra ist die wichtigste Disziplin für die Programmierung von 3D-Grafiken, einfach weil sie die mathematische Sprache zur Beschreibung der räumlichen Geometrie ist. Ihre anderen drei Themen sind eigentlich nur Teilmengen der linearen Algebra:

  • Vektoren sind eine Denkweise über Punkte im Raum
  • Matrizen sind Denkweisen über Transformationen von Raum und Objekten: Objekte übersetzen, skalieren usw.
  • Quaternionen sind eine natürliche Darstellung für eine bestimmte Untergruppe dieser Transformationen, die Rotationen
  • usw. usw.

Was andere für die Programmierung von 3D-Grafiken relevante mathematische Elemente anbelangt, würde ich empfehlen, dass die Computergeometrie nicht annähernd genug Spaß macht. Viele natürliche Probleme beruhen auf Themen der Computergeometrie:

  • Eine der natürlichsten Möglichkeiten zum Definieren einer Lautstärke aus einer Reihe von Punkten (zum Beispiel zum Definieren einer Lautstärke, bei der ein bestimmtes Hintergrundgeräusch abgespielt wird, oder einer Nebellautstärke oder dergleichen) besteht darin, die konvexe Hülle der Punkte zu finden ; Es gibt gute Algorithmen, um dies in 2 und 3 Dimensionen zu tun, aber selbst die 2d-Algorithmen sind nicht sofort offensichtlich.
  • Das Problem, feststellen zu können, welche Objekte sich in der Nähe eines bestimmten Punktes oder in der Nähe voneinander befinden (zum Beispiel, um die Anzahl der Objekte zu verringern, die auf mögliche Kollisionen überprüft werden müssen, oder um herauszufinden, welche Feinde die Spieler an einem bestimmten Punkt bemerken Gegebener Punkt) befasst sich mit geometrischen Abfrageproblemen und räumlichen Aufteilungsschemata (und damit mit Strukturen wie BSP-Bäumen und Octrees). Dieselben allgemeinen Ideen werden auch für die Beantwortung von Fragen zur Linienverfolgung verwendet (z. B. "Was trifft dieser Laserstrahl?").

Danach möchte ich Sie ermutigen, sich mit Grundrechenarten und insbesondere mit numerischen Methoden für Differentialgleichungen zu befassen. Diese sind für 3D-Grafiken per se weniger relevant als für die 3D-Physik, aber im Allgemeinen sind die beiden Themen ziemlich eng miteinander verknüpft (selbst bei einfachen Problemen der Kinematik - zum Beispiel bei Charakteranimationen und dergleichen) und verfügen über ein gewisses Wissen über beide Verbessern Sie Ihre Kenntnisse in beiden Bereichen erheblich. Es ist schwierig, wenn nicht unmöglich, die relevante Physik zu bearbeiten, ohne dasselbe grundlegende Wissen über lineare Algebra zu besitzen, wie es in der Grafik verwendet wird, aber gleichzeitig bietet das Wissen über Physik einen weiteren Bezugspunkt für das Verständnis der Themen in der Grafik.

Steven Stadnicki
quelle
Das war eine fantastische Antwort, Steven, danke. Ich habe Ihre Zusammenfassungen über Vektoren, Matrizen und Quaternionen geliebt (leider in 2 Sekunden informativer als mein aktueller Lektor für lineare Algebra). Sie haben mir auch ein besseres Verständnis für die Art der Modellierungsherausforderungen gegeben, die mit 3D-Grafikprogrammierern verbunden sind. Prost!
Katherine Rix
1

Wenn Sie mit kartesischen Koordinaten vertraut sind, sollte die Anwendung der obigen Themen auf Computergrafiken ziemlich klar sein. Es gibt Tutorials wie diese für OpenGL , mit denen die Anwendung von Mathematik zur Lösung grundlegender Anzeigeprobleme verdeutlicht werden kann, z. B. wie ein Drahtrahmenmodell rotiert. Der Wikipedia-Artikel zum perspektivischen Zeichnen könnte mit ein wenig historischem Hintergrund weiterhelfen.

Darüber hinaus gibt es viele Anzeigethemen, die von der mathematischen Formulierung profitieren. Beispielsweise werden 3D-Körper normalerweise durch Triangulationen ihrer Oberfläche dargestellt. Wie zeigen wir nur den Teil der Oberfläche, den ein Beobachter "sehen" sollte (Algorithmen für verborgene Oberflächen / Linien)? Wie interagiert ein Objekt mit der Perspektive, um eine überzeugende Oberflächenwiedergabe zu erzielen, wenn es aus einer bestimmten Quelle / Richtung beleuchtet werden soll?

Darüber hinaus gibt es alle möglichen interessanten Modellierungsthemen, z. B. die Animation eines Nebels oder einer Flamme. Die Transformation von Koordinaten, während Ihre Themenliste im Mittelpunkt zu stehen scheint, ist jedoch eine Grundvoraussetzung für alle späteren Fortschritte.

Hardmath
quelle
1

Sie sind nicht alle erforderlich. Vektor-Mathematik ist in allen 3D-Grafiken enthalten. Möglicherweise können Sie die Geometrie einrichten, ohne die Feinheiten der Vektor-Mathematik zu kennen, aber Dinge wie Reliefkarten werden sehr schwierig, und Sie werden sich mit der Physik abfinden.

Quaternionen bieten einfach eine andere Beschreibung für einige der Mathematiken, es mag nett sein, sie zu haben, aber sie wird sicherlich nicht benötigt, da konventionellere Mathematik ausreicht, um jede Berechnung zu beschreiben, die Sie mit Quaternionen durchführen können.

Matrixmathematik und lineare Algebra sind sehr eng miteinander verwandt und beschreiben vor allem lineare Operationen auf Zahlenmengen. Aber auch hier ist es nur eine andere Art, einige Dinge zu beschreiben, die mit Vektoren und Algebra beschrieben werden könnten.

Ich weiß nicht, ob Sie es für einen Teil der Grundlagen der Mathematik halten, aber die Trigonometrie muss auf jeden Fall auch die Liste enthalten.

aaaaaaaaaaa
quelle
Ich habe bis jetzt einige Erwähnungen der Physik gesehen - können Sie mir sagen, auf welche Konzepte Sie sich hier beziehen? Ich habe das Thema seit 12 Jahren (dh seit der High School) nicht mehr angesprochen und ehrlich gesagt hasste ich es. Vielleicht finde ich seine Anwendung aber leichter zu ertragen.
Katherine Rix
Newtonsche Physik, hauptsächlich Kollisionsauflösung. In der High School hat man Ihnen dieses Zeug vielleicht nicht beigebracht, aber es ist alles sehr mathematisch. Wenn Sie also nur Mathematik mögen, sollten Sie gut sein.
aaaaaaaaaaa