n'abend ich such jetz seit ca. einem monat nach einer lösung .3ds daten in openGL zu laden aber irgednwie hab ich (trotz stundemlangen suchen) keinen befehl und auch nix was mir hilft gefunden...
wär schön wenn ich als antwort nich nur iegndnen link bekomme sondern vielleicht eben diesen befehl und eine kleine beschreibung wie man ihn benutzen muss.. oder ein beispielprogramm das würde mir auch schon helfen...
warschienlich gibts die frage so ca. 2millionen mal hier aber alles was ich bis jetzt gefunden hab hat mir kein stück weiter geholfen..
wie gesagt ich hab schon viel gesucht und viel mehr hab ich eben auch ncih gefunden.. und viel weiter bin ich auch nich gekommen.. aber trotzdem danke...
gibt es denn im wiki kein tutorial um zB irgendne kiste oder ne kugel oder was weis ich was fün model in opengl zu laden? eins zum modelieren gibts ja..
Registriert: Di Nov 07, 2006 13:37 Beiträge: 83 Wohnort: Partenheim
Sorry für die Schleichwerbung , aber falls das .3ds Format deinen Ansprüchen nicht gerecht wird, gibt es da noch den wunderschönen WFObjLoader, geschrieben von MatReno und mir. Er lädt so gut wie alle .Obj-Dateien und verträgt sich hervorragend mit dem unübertroffenen, kostenlosen 3D-Modeler Blender (der auch .3ds-Dateien importieren und als .obj-Dateien exportieren kann). Überleg's dir.
Hey,
dein Loader hört sich ja ganz gut an. Was bietet er für Vorteile?
Sind die Normalen im Formt gespeichert, oder muss Ich die ebenfalls bearbeiten. Kann ich direkt Anomationen mitspeichern?
Registriert: Mo Jan 31, 2005 11:02 Beiträge: 432 Wohnort: Rheinlandpfalz
Hi,
die Normalen sind in der obj-Datei vorhanden und werden automatisch geladen. Es kann aber auch Obj-Dateien geben, die keine Normalen enthalten (exportiert ohne normalen). Bei Blender kann man sich aussuchen, ob er die Normalen mit exportieren soll oder nicht. Genauso sieht es mit Texturkoordinaten aus. Also enthält ein Modell immer nur das, was man benötigt.
Ein paar Vorteile des Loaders:
- Lädt alle Normalen, Texturkoordinaten
- Object ist in Childs unterteilt -> einzeln Renderbar
- Boundingbox für jedes Child berechnet und renderbereit (auch für gesamte Objekt)
- Materials (ambient, diffuse, specular, shininess)
- Transparency im Material (bald auch per Textur-Alphakanal nutzbar -> muss noch gefixt werden )
- verschiedene Texturen pro Objekt (nutzt glBitmap.pas )
- lädt sehr schnell
- Auch riesige Objekte mit Vertex-Anzahl > 10k möglich
- Display-Listen generation (falls erstellt, wird sie benutzt zum rendern)
- ?
Leider auch Nachteile:
- bisher keine animationen (laut obj-Spezifikation)
Wir haben uns aber vorgenommen das Obj-Format sowie unseren Loader zu erweitern, damit Animationen aus Blender direkt unterstützt werden. Langsam wollen wir nämlich auch ein paar animierte Objekte in unsere Programme einbauen. Dazu müssen wir aber erstmal die Blender-Datenstruktur genauer unter die Lupe nehmen (wird nicht so einfach ) und den python exporter modifizieren.
Kannst du noch ein beispiel für das rendern von childmeshes(unter verwendung von displaylists) dazupacken?
Außerdem wäre es imo besser wenn du nicht direkt auf glBitmap zugreifst, sondern nur über einen wrapper. Weil die meisten Anwendungen werden wohl einen eigenen Texturmanager haben(so dass texturen nicht doppelt geladen werden wenn sie an verschiedenen stellen benötigt werden) oder manche werden wohl auch SDL verwenden.
Registriert: Di Nov 07, 2006 13:37 Beiträge: 83 Wohnort: Partenheim
Das mit dem Wrapper ist keine schlechte Idee. Der Loader wird in der Hinsicht demnächst umgebaut.
Bezügl. der Childmeshes unter Verwendung von DLists (ich hoffe, es genügt auch so, ist keine große Sache und eigentlich selbsterklärend, sobald man eine solche Prozedur aufruft):
Das Rendern und das Erstellen von DListen erfolgt über den Aufruf einer Prozedur, die nicht zwangsweise einen Parameter erwartet:
Der Aufruf "Mesh.Render" entspricht dem Aufruf "Mesh.Render(-1)", womit alle Childmeshes gerendert werden, wohingegen "Mesh.Render(2)" nur Childmesh[2] rendert.
Analog dazu verhält es sich mit dem Erstellen der DLists ("Mesh.CreateDisplayList()").
Bin überwältigt. Hört sich gut an. Mein .Obj ist also direkt schon für OpenGL Licht bereit?
Und ich kann .3ds Objekte reinladen und als .obj exportieren und habe direkt alle normalen und sowas beisammen. Hört sich gut an.
Ab wann kann man denn auch mit der Animationsfunktion rechnen ?
Simon
Registriert: Sa Okt 22, 2005 20:24 Beiträge: 291 Wohnort: Frauenfeld/CH
Für Animationen kannst du auch Milkshape nehmen und dann als Textdatei exportieren (oder .msa soviel ich weiss) und dann mit der Unit gl3ds laden. Läuft ziemlich gut, ist nur etwas langsam.
Registriert: Mo Jan 31, 2005 11:02 Beiträge: 432 Wohnort: Rheinlandpfalz
Milkshape hab ich auch mal ausprobiert, aber leider gibt es keinen Exporter für Blender.
simon1988 hat geschrieben:
Bin überwältigt. Hört sich gut an. Mein .Obj ist also direkt schon für OpenGL Licht bereit?
Ja, das kann man so sagen. Evtl muss man nur noch licht anschalten:
Code:
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
Simon1988 hat geschrieben:
Und ich kann .3ds Objekte reinladen und als .obj exportieren und habe direkt alle normalen und sowas beisammen.
Sollte mit Blender wunderbar funktionieren
simon1988 hat geschrieben:
Ab wann kann man denn auch mit der Animationsfunktion rechnen ?
Nun ja... das muss ich erst mit Conan absprechen, denn das wird nicht so einfach von heut auf morgen funktionieren. Das ist auch für uns "Neuland". Den Loader haben wir innerhalb von 2 Tagen geschrieben, der Animationsteil wird wesentlich länger dauern, denke ich. Also kannste mal mit ca. 2-4 Monaten rechnen (no warranty). Wenns früher fertig ist, macht ja auch nix
Registriert: Di Jul 01, 2003 18:59 Beiträge: 887 Wohnort: (The Netherlands)
Programmiersprache: fpc/delphi/java/c#
gl3ds is also capeable of handling milkshape ascii models with bone animation! Also it is capeable of converting .3ds models into milkshape ascii models.
take a look on the provided example that comes with it. Take a look at its project site: http://www.noeska.com/dogl/gl3ds.aspx
currently i am rewriting gl3ds into something more generic.
i added writing more examples to my todo list.
Mitglieder in diesem Forum: Google [Bot], Majestic-12 [Bot] und 6 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.