Wie eine 3D-Spielkarte gespeichert und gehandhabt wird

9

Ich bin Programmierer, habe aber noch keine Spiele entwickelt.

Ich habe verschiedene 3D-Spiele gespielt und mich immer gefragt, wie die Karte des Feldes gespeichert und gerendert wird.

Ich weiß, dass eine Beschleunigungskarte eine notwendige Hardware ist, aber wie genau die Ansicht geändert wird, ohne auch nur ein einziges Flackern auf dem Bildschirm.

Haben Sie Online-Material, das mir hilft, dies zu verstehen?

Vielen Dank

Der König
quelle

Antworten:

9

Im Allgemeinen besteht die Welt aus einer Karte mit vielen Dreiecken, und die Karte ist eine Liste dieser Dreiecke und der Position in der Welt jedes Scheitelpunkts. Der Prozess, um sie zu zeichnen, ist:

  • Richten Sie die Position der 'Kamera' ein - wenn Sie in der Welt stehen würden, wären Sie hier in der Weltposition
  • Transformieren Sie die Dreiecksscheitelpunkte in "Kameraraum".
  • Verwandeln Sie die Dreiecke vom "Kameraraum" in den "Bildschirmraum" - hier tritt der Wahrnehmungseffekt auf (entfernte Dinge sind kleiner). Die Dreiecke werden an dieser Stelle 2D.
  • Zeichnen Sie das 2D-Dreieck auf einen ausgeblendeten Bildschirm.
  • Wenn alle Dreiecke gezeichnet wurden, zeigen Sie dem Player den Bildschirm.

Der letzte Schritt ist normalerweise an die Bildrate des Monitors gebunden, sodass die Anzeige des verborgenen Bildschirms während des V-Blank-Intervalls erfolgt - ein Konzept, das von Kathodenstrahlröhrenmonitoren abgeleitet wurde, die es dem Kathodenstrahl ermöglichten, sich von unten rechts nach oben zu bewegen Links erforderte dies eine schnelle, aber nicht sofortige Änderung der Spannungen an den Ablenkspulen auf der Rückseite der Strahlröhre.

Dies ist eine wirklich einfache Methode. Um eine hohe Leistung zu erzielen, müssen Sie Dinge wie das Entfernen verborgener Oberflächen, Okklusion, Bestimmung des sichtbaren Satzes usw. hinzufügen. Es gibt viele Algorithmen, die entscheiden, was gezeichnet werden soll.

Ich sagte auch, dass die Welt aus Dreiecken besteht, aber auf diese Weise möglicherweise nicht auf der Festplatte gespeichert wird. Häufig werden die Dreiecke, die auf dem Bildschirm gezeichnet werden, zur Laufzeit aus Grundelementen höherer Ordnung definiert, z. B. Höhenkarten, Splines, Tessalierung, geometrische Grundelemente (z. B. eine Kugel, ein Kästchen usw.).

Spezielle Hardware ist nicht erforderlich - viele frühe 3D-Spiele haben alles in Software erledigt (sogar auf 8-Bit-CPUs ohne FPUs). Es macht es einfach schneller und einfacher.

So eine einfache Frage. Keine einfache Antwort.

Skizz
quelle
0

Die Ansicht wird aufgrund der doppelten Pufferung ohne Flimmern auf dem Bildschirm geändert. Verarbeiten Sie alle Daten im hinteren Puffer. Wenn die Verarbeitung abgeschlossen ist, tauschen Sie sie im vorderen Puffer aus.

Slrs
quelle