Registriert: Mi Jan 15, 2014 14:45 Beiträge: 4
Programmiersprache: Delphi
Hallo zusammen, ich habe mir ein wavefront beispiel heruntergeladen. Dieses eigentlich auch verstanden. Daraufhin habe ich eine 3D Zeichnung zu Obj konvertiert. Allerdings will hier mein 3D- Lichteffekt nicht funktionieren. Bei anderen Obj Files funktioniert es schon. Im Anhang das Test.Obj file. Wavefront ist das Beispielprogramm. Hier ist auch Teddy.obj enthalten. Welcher einen schönen 3d Effekt hat. Vielen Dank für eure Hilfe
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Registriert: Mi Aug 14, 2013 21:17 Beiträge: 588
Programmiersprache: C++
Also, so wie ich das verstanden habe, möchtest du ein Model rendern, dass du aus einer OBJ-Datei geladen hast. Das Model soll dabei beleuchtet werden. Das funktioniert bei dem einen Model, nicht jedoch bei dem anderen.
Eine wahrscheinliche Ursache für solche Probleme ist, dass das Model, bei welchem die Beleuchtung nicht funktioniert, wie sie soll, fehlerhafte oder keine Normalen enthält. Für weitere Tipps wäre es aber hilfreich zu wissen, was du überhaupt für ein Beleuchtungsmodell verwendest, bzw. was du mit "3D- Lichteffekt" genau meinst. Benutzt du die glLight-Funktionen der festen Pipeline oder einen Shader? Falls letzteres der Fall ist, solltest du diesen natürlich posten.
_________________ So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)
Registriert: Mi Jan 15, 2014 14:45 Beiträge: 4
Programmiersprache: Delphi
Danke für deine schnelle Antwort. Du hast das Problem richtig zusammengefasst. Ich benutze glLight Funktion. Shader benutze ich keinen. Quellcode meines Programms wie auch die Obj Files befinden sich im Anhang. Ich habe im Debugger mal einen Screenshot von meiner Variable Model gemacht. Hier ist eindeutig zu erkennen, dass keine Normalen vorhanden sind.
Dann muss ich die wohl bei dem Export mit Belnder angeben. Vielen Dank. Ich werde es gleich ausprobieren
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Wie schon oben beschrieben, fehlen die Normalen, aber die kannst du auch selbst berechnen, wen ist dir egal ist, wen man die Kanten sieht. So wie ich sehe hast du dein Programm mit Pascal Delphi. da habe ich eine Lösung zum berechnen der Normalen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Registriert: Di Feb 04, 2014 16:18 Beiträge: 6 Wohnort: 8700
Programmiersprache: Html
Ich bekomme das mit dem 3D Lichteffekt auch nicht hin. Irgendwas mache ich wohl falsch. Kann mir jemand eventuell von Grund auf erklären, wie ich denn überhaupt den Lichteffekt hinbekomme? Einen Shader benutze ich im Übrigen auch nicht, aber muss ich das überhaupt? Eigentlich müsste es doch auch ohne gehen, oder was meint ihr dazu?
Registriert: Mi Aug 14, 2013 21:17 Beiträge: 588
Programmiersprache: C++
Angela13 hat geschrieben:
Kann mir jemand eventuell von Grund auf erklären, wie ich denn überhaupt den Lichteffekt hinbekomme?
Wenn du noch die (ur)alte Rendering-Pipeline verwendest: Tutorial Lektion 8 sollte weiterhelfen. Allerdings wird das Licht mit dieser Methode nur pro Vertex berechnet (statt pro Fragment). Dies ist besonders für Glanzeffekte ungeeignet. Für Per-Fragment-Lighting brauchst du zwingend Shader.
Edit: Ich sehe gerade, dass du als Programmiersprache HTML angegeben hast, also vermutlich mit WebGL arbeitest(?). Dann kommst du um Shader sowieso nicht herum.
_________________ So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)
Mitglieder in diesem Forum: Google [Bot] und 1 Gast
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.