Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Du musst doch auch nach dem du dein Meshobjekt erstellt hast eine 3DS-Datei in dieses Objekt laden, ansonsten kanns gar nicht gehen. Kleines Beispiel :
Code:
Mesh3DS := TAll3DSMesh.Create(self);
Mesh3DS[i].TexturePath:='textures';
Mesh3DS[i].LoadFromFile('MeinMesh.3ds');
Erst wenn das 3D-Modell dann geladen werden konnte kannste es rendern.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Wenn du dein Model im 3D-Studio gemacht hast, ist es mit großer Wahrscheinlichkeit viel zu groß. Skaliere dein Model mal um den Faktor 0.0085, den ich immer bei meinen Modellen nutze.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Wo tritt denn dein GL_INVALID_ENUM auf? Wenn das beim binden der Texturen passiert, gibts du einen falsche Parameter (z.B. Target mit ID vertauscht) an, denn nur ein falsches Target führt beim Binden einer Textur zu nem GL_INVALID_ENUM.
Ansonsten habe ich bereits diverse 3D-Modelle über die gl3DS-Unit auch mit Texturen geladen, wie z.B. auf diesem Screenshot zu erkennen ist problemlos geladen. Allerdings habe ich die dort verwendeten glBinds rausgeworfen und durch Aufrufe an meinen eigenen Texturenmanager ersetzt.
Es passiert nur wenn das Model Texturen besitzt, wenn nicht, ist alles klar.
Die Texturen werden drauf geladen, aber der fehler kommt, der Fehler steht dann in der Symboleiste.
Und nur wenn ich die Maus ständig bewege, dann lagts nicht, wenn ich die maus allerdings nicht bewege, macht er mit gerade mal so ca. 1 Frame pro Sek.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Dann solltest du mal sicherstellen das alle Texturen korrekt geladen wurden, denn letztendlich kanns dann nur daran liegen. Also prüfen ob die Texturen im passenden Ordner liegen und v.a. auch das passende Format besitzen. Wo machste denn genau den glGetError-Aufruf? Biste auch schonmal mit dem Debugger durchgegangen?
Ich weiß ja net mal in welcher Datei der Fehler kommt, ok das kann ich mir denken, aber wo soll er dort kommen, ich bekomme ja keinen fehler im Debugger, sondern es lagt nur und in der Symbolleiste steht ein fehler, aber nicht im Debugger.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Ich glaube du hast den Begriff des Debugger leicht falsch verstanden. Hol dir doch mal deine Texturen-IDs in dein Watchfenster und schau nach ob dort gültige Werte stehen nachdem deine Texturen geladen wurden, dann siehste direkt obs daran liegt.
Verdammt,
ist mir jetzt peinlich Wie öffne ich den Watcher und wie lad ich die Textur ID's rein?
Hab in der Delphihilfe gesucht, aber nichts gefunden.
Kannstes mir noch mal sagen wie ich den öffne?
Hatte ich auch extra durch gelesen, ich find da nichts, kanns sein das der dort anders genannt wird?
Naja ich muss es wohl nochmal durch machen.
---
Da isses joa. Sry!
Zuletzt geändert von Adler am Mo Dez 29, 2003 12:14, insgesamt 1-mal geändert.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Ungefähr in der Mitte dieses Tutorials gibst ein Kapitel namens "Ansichtssache", in dem die Nutzung des Watchfensters (das dort übrigens leider falsch buchstabiert wird) gezeigt wird.
Mitglieder in diesem Forum: Bing [Bot] und 7 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.