Benötigt man Normalen für ein rein 2d Spiel?

8

Ich fange an, OpenGL zu lernen, indem ich ein reines 2D-Spiel erstelle.

Ich muss mich für das Format der Vertices entscheiden. Benötige ich eine normale Komponente? Oder wird dies für eine 2d-Komponente nicht benötigt?

Mein Bauchgefühl sagt, ich werde es nicht brauchen, da alles flach ist. Aber vielleicht brauche ich es für einen Shader oder etwas anderes, das ich noch nicht sehe.


quelle

Antworten:

9

Hat ein Bedarf Normalen für ein 2D - Spiel? Nein. Sie brauchen nicht einmal Normalen für ein 3D-Spiel, wenn Sie sich nicht um die Beleuchtung kümmern. Normalen und Beleuchtung können jedoch sehr stark auf 2D-Spiele zutreffen. Sie gehen einfach anders vor. Anstatt explizit einen 3D-Normalenvektor zu definieren, der an Ihrem Scheitelpunkt ausgerichtet ist, können Sie eine Normalkarte definieren , die mit Ihren 2D-Grafiken übereinstimmt. Auf diese Weise können Sie selbst in einem 2D-Spiel eine unglaublich epische Beleuchtung erzielen .

TheBuzzSaw
quelle
4

Genau genommen wird die normale Komponente ignoriert, wenn Sie die Beleuchtung ausgeschaltet haben. Wenn Sie in der Lage sind, Ihre eigenen Shader in der von Ihnen verwendeten Sprache / Toolkit zu schreiben, können Sie absolut sicherstellen, dass sie nicht verwendet werden.

Luther
quelle
Wenn ich die Beleuchtung ausschalte, kann ich trotzdem Farben für meine Scheitelpunkte verwenden, oder?
Sie sollten dies ja tun können, solange Sie glEnableClientState (GL_COLOR_ARRAY) aktiviert haben (denken Sie daran, GL_NORMAL_ARRAY zu deaktivieren)
Luther
1

Sie brauchen keine Normalen, es sei denn, Sie führen Lichtsimulationen durch. Es ist ziemlich trivial, sie hinzuzufügen, wenn Sie sie brauchen, verglichen mit der tatsächlichen Schwierigkeit, Licht-Shader zu schreiben.

DeadMG
quelle
1

Wenn Sie Ihre Dreiecke in einem 3D-Raum zeichnen und dann alles von der Seite betrachten, damit es 2D aussieht (was Sie tun sollten), benötigen Sie Normalen, um Lichter darüber zeichnen zu können deine Quads.

Wenn Sie nichts anzünden, brauchen Sie keine Normalen.

Meine Empfehlung, da Sie diese Frage stellen, ist, vorerst Normalen wegzulassen, unabhängig davon, was Ihre Pläne später sind. Es wird nicht schwer sein, sie später hinzuzufügen, wenn Sie sie brauchen.

Olhovsky
quelle
0

Nur Sie wissen, ob Sie in einem 2D-Spiel Normalen benötigen. Sie mögen Sinn machen - DOOM hatte zum Beispiel Normalen, obwohl es ein 2D-Spiel war (ja ja, es sah ziemlich 3D aus, aber technisch gesehen war es immer noch ein 2D-Spiel).

Ein guter Grund für Normalen in einem 2D-Spiel wäre, überprüfen zu können, ob Sie sich innerhalb oder außerhalb einer Form befinden. Dies kann auch die Reaktion auf Wandkollisionen beschleunigen (Kenntnis der Richtung, in die Objekte aus der Wand gedrückt werden sollen).

Es gibt keinen Grund, OpenGL oder einem anderen von Ihnen verwendeten Rendering-Paket die Normalen zu geben, wenn es für nichts benötigt wird (wie die Beleuchtung, auf die so ziemlich alle anderen hingewiesen haben).

Jari Komppa
quelle
-1

Was ist das für ein Spiel? Wenn Sie eine Top-Down-Perspektive haben, können Normalen nützlich sein, um die Bewegung Ihrer Charaktere zu straffen (Sie wissen, Sie verschieben die Position entlang der Normalen der Richtung verschieben, in die der Charakter zeigt).

Normalen sind auch für eine ganze Reihe von Lenkverhalten nützlich. Ein Link sagt jedoch mehr als tausend Worte: http://www.red3d.com/cwr/steer

HumanCatfood
quelle
Ich bin mir ziemlich sicher, dass das OP speziell nach Normalen für die Verts fragt. Ich spreche nicht über Geschwindigkeitsvektoren und dergleichen.
Tetrad
Ziemlich sicher, dass das OP speziell nach Normalen für die Verts oder (Zitatanfang) andere Dinge fragt, die ich noch nicht sehe (
Zitatende