[C++] Dateiformat für Model

Einstiegsfragen, Mathematik, Physik, künstliche Intelligenz, Engine Design
Antworten
Benutzeravatar
exploid
Establishment
Beiträge: 146
Registriert: 21.08.2005, 18:33

[C++] Dateiformat für Model

Beitrag von exploid »

...
Zuletzt geändert von exploid am 04.11.2010, 14:04, insgesamt 1-mal geändert.
All your base are belong to us! Justice
Benutzeravatar
Zudomon
Establishment
Beiträge: 2254
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [C++] Dateiformat für Model

Beitrag von Zudomon »

Ohne mich jetzt genauer mit der Thematik zu beschäftigen, hört sich 3 am flexibelsten an. Und dann noch eins der ersten beiden Möglichkeiten als Default setzen. :)
Benutzeravatar
Krishty
Establishment
Beiträge: 8237
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [C++] Dateiformat für Model

Beitrag von Krishty »

Der Code mit dem 3DS-Loader ist jetzt belanglos, weil es um eine Designentscheidung geht und nicht um Code. Außerdem haben Mitglieder dieser Community eine Bibliothek entwickelt, die das alles für dich laden kann ;)
exploid hat geschrieben:1. alle Modelle die in der 3ds Datei enthalten sind in einen Vertexbuffer/Indexbuffer zu speichern. Vorteil: Geschwindigkeit beim Rendern. Nachteil: Objekthierarchie geht verloren.
Richtig, es kann sich nichts mehr drehen oder bewegen. Wie löst du das? Indem du dynamische Objekte als eigene Models verpackst und die auch wieder einzeln renderst. Am Ende hast du also unbewusst 2. implementiert.
exploid hat geschrieben:3. den Anwender entscheiden lassen was er braucht. Fall 1. oder Fall 2.
Wer ist der Anwender?
exploid hat geschrieben:oder gibt es noch eine zusätzliche Lösung.
Bone-Animations. Renderst alles in einem Rutsch, aber mit Transformationsmatrizen pro Vertex. Der Nachteil ist, dass dann statische Modelle langsamer werden und der Programmieraufwand steigt.

Gruß, Ky
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
exploid
Establishment
Beiträge: 146
Registriert: 21.08.2005, 18:33

Re: [C++] Dateiformat für Model

Beitrag von exploid »

...
Zuletzt geändert von exploid am 04.11.2010, 14:03, insgesamt 1-mal geändert.
All your base are belong to us! Justice
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: [C++] Dateiformat für Model

Beitrag von kimmi »

Zu deinem Code: Benutzt du c++? Wenn ja: Da brauchst du die typedefs nicht, das struct-Statement reicht. Und ich würde großgeschriebene Deklarationen prinzipiell nur für Preprozessor-Deklarationen benutzen. Das klingt nun bestimmt wie Erbsen-Zählerei, aber ich habe selber schon Stunden damit zugebracht, Fehler durch Überschreibungen vom Präprozessor zu korrigieren, die mir Fremdlibs umgestellt haben.

Gruß Kimmi
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: [C++] Dateiformat für Model

Beitrag von Aramis »

Ich würde dir stark empfehlen, Assimp direkt in deinem Programm zu nutzen. Modellimporter selber zu schreiben ist unnötig mühselig und bedeutet viel Pflegeaufwand. Sonderlich viel lernen kannst du von archaischen Formaten wie 3DS ehrlich gesagt auch nicht, allenfalls noch das Konzept eines Szenengraphen.
Benutzeravatar
Krishty
Establishment
Beiträge: 8237
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [C++] Dateiformat für Model

Beitrag von Krishty »

Der Vollständigkeit halber: Du kannst natürlich auch mehrere Modelle in einen Vertex- und Index-Buffer speichern und sie von dort aus einzeln rendern. Du sparst aber so gut wie keinen Speicher, solltest keine bemerkenswerten Geschwindigkeitsvorteile feststellen können und die Anzahl der Draw-Calls bleibt gleich.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Antworten