Weltformat polyeder,polygone oder dreiecke
-
okay, dann soll ich das Leveldateiformat also in Dreiecke aufteilen.
Danke für die klare Antwort.
-
Das Datenformat kann am Ende beliebig sein. Du kannst natürlich auch quadrate speichern und diese dann beim einlesen in Dreiecke umwandeln. Wenn deine Welt durch eine Heightmap dargestellt werden kann, macht es sogar gar keinen Sinn, irgendwelche Polygone zu speichern.
Wie immer kommt es auf deine (realistischen!) Anforderungen an.
-
okay, aber im programm besteht das ganze level aus Dreiecken.
Danke
-
nur kurz als beispiel:
Ich möcte das Level vor dem Schloss aus super mario 64(weil das jeder kennt) in einem Level Speichern:Dreiecke einzeln für boden und Levelgrenzen als einzelnes Dreieck.
Schloss aus einzelnen Dreiecken.
Kanone, Türen,Bäume werden als Objekte definiert, da sie im Prammcode selbst definiert sind.Boden evtl als heighmap
für die Kollision werden die Objekte und der Boden in dreiecke unterteilt und mit allen anderen in ein Array gespeichert.
Dieses Array wird für die Kollision verwenden.
Ist das richtig so?
-
Anderes Beispiel: Du sagst OpenGl es soll ein Viereck malen. Geht mit GL_QUADS. Die Grafikkarte kann aber keine Vierecke malen, weil die viel zu kompliziert sind (Vierecke können verdreht sein und in einer Art Fünfeck enden oder nicht in einer Ebene liegen). Also wird der Befehl in zwei andere Befehle umgewandelt, nämlich 2 Dreiecke zu malen, kommt ja dasselbe raus. Den Unterschied sieht man, wenn man versucht, beschriebenes verdrehtes Viereck zu malen, denn da kommt bei 2 Dreiecken nicht dasselbe raus.
Für dich heißt das, du kannst benutzen was du willst. Dreiecke, Vierecke, was auch immer. Dass am Ende alles in Dreiecke umgewandelt wird ist nur ein technisches Detail, was dein Leveldateiformat nicht zu interessieren braucht.
-
okay ich glaub ich habs, also beim rendern und Kollision alles in 3 ecke verwandeln
-
Fast. Nicht "alles in Dreiecke verwandeln" sondern "alles wird in Dreiecke verwandelt". Von der Grafikkarte, nicht von dir (außer du willst Objekte, die eine Grafikkarte nicht versteht).
-
aber die kolllision muss ja ich übernehemen, deshalb muss ich es eben in dreiecke verwandeln oder?
-
Ich meine Kollisionstests gehen mit Kugeln und Kreisen am einfachsten, da würde ich von Dreiecken abraten. Kollisionstests mit Vierecken/Polyedern funktionieren sicher schneller als mit mehreren Dreiecken.
-
ok, danke