Schlüsseltechnologie

STP010: 3D-Grafik


Listen Later

Heute geht es viel um Spiele. Denn anscheinend sind diese fast das Einzige, das Xyrill und ttimeless einfällt, wenn es um 3D-Grafik geht.

Allgemeiner dreht sich diese Folge darum, was es alles braucht, um Körper in virtuellen Welten darzustellen.
Der Abschluss der vierteiligen Reihe über Grafik, und was dazu notwendig ist.

Shownotes
  • Vergleich zu 2D-Desktop-Grafik (STP008)

    • Zeichenreihenfolge ist nicht so offensichtlich (Was ist vorne? Was ist hinten?)
    • höherer Anspruch an Realismus: dynamische Beleuchtung, Texturierung, etc.
    • Randbemerkung: auch 2D-Spiele werden heute meist in einer 3D-Szene aufgebaut
    • Grundeinheit für 3D-Modelle: nicht der Pixel, sondern das Polygon (deswegen kommen wir um Fließkommazahlen nicht herum)
    • Vorbemerkungen zu den folgenden Schritten:

      • all dies passiert für jedes Einzelbild von vorne (also bei 60Hz 60-mal pro Sekunde)
      • zur Illustration verlinken wir auf Beispielbilder aus den Übungsunterlagen für einen Kurs in 3D-Rendering-Grundlagen
      • Schritt 1: 3D-Modell mit Polygonen

        • Polygon heißt wörtlich "Vieleck", aber 3D-Modelle bestehen meist nur aus Dreiecken
        • Polygone mit vier und mehr Ecken können mittels Triangulation in Dreiecke zerlegt werden
        • Darstellung eines 3D-Modells als Gitternetz
        • Schritt 2: Kamera

          • grundsätzlich ein Paar aus Blickpunkt und Blickrichtung, aber mit einigen weiteren Parametern
          • mathematische Grundlage: Quaternionen
          • Sichtfeld (Field of View): beim Menschen 130°; bei Videospielen meist weniger, je nachdem, wieviel Platz der Bildschirm im Sichtfeld einnimmt (z.B. 90° am PC, 60° an Konsolen)
          • Schritt 3: Ausmalen der Polygone (Rasterisierung)

            • Backface Culling (Rückseiten-Auslese): wir werfen alle Polygone weg, die von uns wegzeigen
            • Beispiel mit ausgemalten Polygonen nach Backface Culling
            • Z-Buffer: wenn wir Polygone ausmalen, dann malen wir nur die Pixel aus, bei denen wir nicht schon Polygone gemalt haben, die näher an der Kamera dran sind
            • Beispiel mit ausgemalten Polygonen unter Verwendung des Z-Buffers
            • Schritt 4: Texturen

              • bis jetzt war jedes Polygon einfarbig, jetzt kleben wir Bilder auf (analog zu Modellbausätzen)
              • in der Praxis ein großes Bild für das ganze Modell
              • jede Ecke jedes Polygons wird zu einem Punkt in der Textur zugeordnet
              • Beispiel mit Polygonen, die mit ihrer Textur ausgemalt sind
              • Einwurf: Was unterscheidet einen Grafikprozessor (GPU) von einem Hauptprozessor (CPU)?

                • CPU-Kerne führen einzelne Befehle auf einzelnen Daten aus
                • GPU führt einzelne Befehle auf vielen Daten gleichzeitig aus, z.B. Rasterisierung von 10000 Polygonen gleichzeitig oder Z-Buffer-Prüfung für 10000 Pixel gleichzeitig
                • dadurch auch für andere massiv parallelisierbare Operationen interessant ("GPGPU", General Purpose GPU), z.B. wissenschaftliche Simulationen, maschinelles Lernen, Passwortknacken
                • Schritt 5: Shader

                  • bis jetzt haben wir die Fixed Function Pipeline beschrieben, eine im GPU-Treiber fest vorgegebene Kette von Rendering-Schritten
                  • neuere GPU (seit den frühen 2000ern) erlauben das Einbetten von eigenen Programmen (Shadern) in die Pipeline
                  • Vertex Shader: wird einmal pro Vertex (Ecke eines Polygons) aufgerufen, um die 2D-Position auf dem Bildschirm zu berechnen (ansonsten normale Berechnung anhand der konfigurierten Kameraposition)
                  • Fragment Shader: wird einmal pro Pixel aufgerufen, um gegebenenfalls die Farbe des Pixels zu modifizieren
                  • Beispiel eines Fragment-Shaders, der eine Farbtextur auf 6 feste Farbstufen reduziert
                  • Schritt 6: Beleuchtung

                    • bei traditionallen 2D-Spielen mit Sprites war Beleuchtung meist global (z.B. jedes Objekt hat 2 Sprites, einmal für dunkle und einmal für helle Szenen)
                    • dynamische Beleuchtung: heute meist als Teil des Fragment Shaders
                    • Beispiel: Phong's Approximation einer natürlichen Beleuchtung
                        1. Anteil: ambiente Beleuchtung (überall gleich stark, Grundausleuchtung wie in einem Fernsehstudio)
                          1. Anteil: diffuse Beleuchtung (abhängig davon, wie sehr die beleuchtete Fläche zur Lichtquelle hingewendet ist)
                            1. Anteil: spekulare Beleuchtung (Glänzen; stark überbetont auf Flächen, die fast exakt zur Lichtquelle hingewendet sind)
                            2. es gibt noch so viel mehr: Kantenglättung (Antialiasing), lineares und anisotropisches Filtern, Normal Mapping, Raytracing

                              ...more
                              View all episodesView all episodes
                              Download on the App Store

                              SchlüsseltechnologieBy Xyrillian Noises


                              More shows like Schlüsseltechnologie

                              View all
                              Bits und so by Undsoversum GmbH

                              Bits und so

                              26 Listeners

                              wrint: gespräche zum runterladen by Holger Klein

                              wrint: gespräche zum runterladen

                              13 Listeners

                              Methodisch inkorrekt! by Methodisch inkorrekt!

                              Methodisch inkorrekt!

                              14 Listeners

                              Apfelfunk by Malte Kirchner & Jean-Claude Frick

                              Apfelfunk

                              7 Listeners

                              Das Wissen | SWR by SWR

                              Das Wissen | SWR

                              119 Listeners

                              c’t uplink - der IT-Podcast aus Nerdistan by c’t Magazin

                              c’t uplink - der IT-Podcast aus Nerdistan

                              8 Listeners

                              Stay Forever - Retrogames & Technik by Stay Forever Team

                              Stay Forever - Retrogames & Technik

                              36 Listeners

                              Logbuch:Netzpolitik by Metaebene Personal Media - Tim Pritlove

                              Logbuch:Netzpolitik

                              7 Listeners

                              Computer und Kommunikation by Deutschlandfunk

                              Computer und Kommunikation

                              9 Listeners

                              Der KI-Podcast by ARD

                              Der KI-Podcast

                              24 Listeners

                              KI-Update – ein heise-Podcast by Isabel Grünewald, heise online

                              KI-Update – ein heise-Podcast

                              3 Listeners

                              Passwort - der Podcast von heise security by Dr. Christopher Kunz, Sylvester Tremmel

                              Passwort - der Podcast von heise security

                              3 Listeners

                              Geschichten aus der Mathematik by detektor.fm – Das Podcast-Radio

                              Geschichten aus der Mathematik

                              1 Listeners

                              UNFASSBAR – ein Simplicissimus Podcast by Simplicissimus

                              UNFASSBAR – ein Simplicissimus Podcast

                              27 Listeners

                              Darknet Diaries Deutsch by heise online

                              Darknet Diaries Deutsch

                              0 Listeners