Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

DigitalDream

Frischling

  • »DigitalDream« ist der Autor dieses Themas

Beiträge: 66

Beruf: Entwickler

  • Private Nachricht senden

1

26.11.2006, 19:36

tb3DSReader

Hi,

heute bin ich beim laden eines 3DS files aus Zufall über eine Sache gestolpert,nämlich das x,z,y ausgelesen wird und nicht x,y,z.

Als ich dann aus Interesse mal in den 3DS format beschreibungen, die ich kenne nachschauen wollte,war das nicht beschrieben.
Auch nicht das es bei Vertizes und Faces noch einen count als vorankommendes byte gibt.

Naja, glücklicherweise brauch ich das ja nicht wirklich,aber gewundert hats mich dennoch,zumal das für David ja total nervig gewesen sein muss,byte für byte zu debuggen ,um wohl undokumentierte bytes von 3DS selbst rauszufinden.

Naja,was solls.

Mir ist aber im code vom reader etwas aufgefallen,dass ich nicht verstehe.
Warum wird bei den Texturkoordinaten 0x4140
der Wert von y mit 1.0 und sich selbst subtrahiert?

pOut->pVertices[iVertex].t.y = 1.0f - pOut->pVertices[iVertex].t.y;

Ich finde diese Zeile total unverständlich,warum macht man das?

WhiteMike

Alter Hase

Beiträge: 507

Wohnort: Ulm

Beruf: Schüler

  • Private Nachricht senden

2

26.11.2006, 19:48

Tut mir Leid, dass ich vom Thema abweiche, aber kannst du mir bitte kurz erklären, was faces sind?
Bin bei meinem Modelierprogramm bei einer Statistik dürber gestolpert, wusste aber nicht, was es ist.
Danke :?

Mit freundlichen Grüßen,
WhiteMike

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

3

26.11.2006, 20:08

face = polygon = üblicherweise dreieck ;)

in der mathematik ist es ziemlich üblich, dass z "nach oben" schaut.
3ds verwendet vermutlich ein solches koordinatensystem, ergo musst du y und z vertauschen damit das modell nicht um 90° verdreht ist.

das gleiche ist mit den texturkoordinaten.
hier liegt der ursprung nicht links oben sondern links unten (afaik verwendet z.b. opengl ein solches texturkoordinatensystem), die v achse läuft also "nach oben" und muss umgedreht (1-v) werden damit es wieder stimmt.

DigitalDream

Frischling

  • »DigitalDream« ist der Autor dieses Themas

Beiträge: 66

Beruf: Entwickler

  • Private Nachricht senden

4

26.11.2006, 20:24

Zitat von »"dot"«


das gleiche ist mit den texturkoordinaten.
hier liegt der ursprung nicht links oben sondern links unten (afaik verwendet z.b. opengl ein solches texturkoordinatensystem), die v achse läuft also "nach oben" und muss umgedreht (1-v) werden damit es wieder stimmt.


Oh man ...
Pest gegen Cholera unter den Grafik APIs. :D

Das heisst also,dass man in DirectX eine Umwandlung machen muss,aber OpenGL mit anderen Koordinaten arbeitet?

Das ist ja echt mal völlig krank ohne Standards.

Danke dot.

Werbeanzeige