Entsprechend dem Tutorial glsl2 habe ich versucht Phong bzw Blinn-Phong Lighting zu realisieren. Allerdings ist das Resultat eher dürftig, da die ganze Szene jetzt nur noch grau / weiß gezeigt wird.
Ich hab keinen Plan was ich falsch mache - woran könnte das denn liegen?
Registriert: Sa Jan 01, 2005 17:11 Beiträge: 2067
Programmiersprache: C++
Tut mir leid. Schäuble hat mir leider den Zugriff auf den Bundestrojaner verweigert. Daher konnte ich mir den Quellcode nicht anschauen und habe somit keine Ahnung was falsch sein könnte...
Da meine ersten Versuche genauso wenig funktioniert haben wie die jetzt habe ich inzwischen die entsprechenden Stellen durch den Code aus den Tutorials ersetzt, daher glaube ich dass der Code richtig ist.
Welche Teile soll ich denn schicken: Laden der Shader, Aktivieren des Lichts, Render-Prozedure, ...?
Kann das Problem damit zusammenhängen, dass ich gl3ds verwende und das evtl die Normalen nicht richtig berechnet?
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Fabian W. hat geschrieben:
Welche Teile soll ich denn schicken: Laden der Shader, Aktivieren des Lichts, Render-Prozedure, ...?
"Wie wärs mit allen drei?"
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Sa Jan 01, 2005 17:11 Beiträge: 2067
Programmiersprache: C++
Das Ganze sieht eher nach einem Licht-Problem als einem Shader Problem aus. Denn das Ergebnis ist identisch auch wenn man keinen Shader benutzt.
Nur habe ich keine Ahnung wie das Verhalten des Lichtes zustande kommt.
Ich setze keine Normalen, nein wenn dann muss das gl3ds machen. Ich habe das noeska gefragt und der meinte
Zitat:
Normals are calculated with gl3ds (only it is bugged)
- Ich bin mir jetzt nur nicht sicher ob er meinte dass es nen bug gibt oder dass da einer sein könnte.
Wären fehlende Normalen also eine mögliche Erklärung?
Registriert: Mo Jan 31, 2005 11:02 Beiträge: 432 Wohnort: Rheinlandpfalz
Probier' das ganze mal an ner gluSphere aus.
Oder nimm die Sphere-Prozedur aus dem Wiki.
Dann haste ordentliche Normalen und kannst dies als mögliche Fehlerquelle ausschließen.
Ich hab jetzt mal die erste Funktion genommen - allerdings sieht die so erzeugte Kugel "hohl" aus -> also die Flächen werden so gezeichnet, dass nur diejenigen von der Kamera "abgewandten" sichtbar sind. Es sieht also von jeder Kameraposition so aus als ob ich in eine Schale sähe.
Die Kugel (bzw das was man davon sieht) wird genauso weiß / grau / rot gezeichnet wie der Rest auch
Registriert: Mo Jan 31, 2005 11:02 Beiträge: 432 Wohnort: Rheinlandpfalz
Fabian W. hat geschrieben:
Ich hab jetzt mal die erste Funktion genommen - allerdings sieht die so erzeugte Kugel "hohl" aus -> also die Flächen werden so gezeichnet, dass nur diejenigen von der Kamera "abgewandten" sichtbar sind.
Ändert sich an der Beleuchtung etwas, wenn du nach OpenGL-Initialisierung glDisable(GL_CULL_FACE) schreibst?
Dann ist die Kugel nicht mehr als "Schale".
EDIT:
Übergib' mal die Shininess des Materials mit glMaterialf(...) statt glMaterialfv().
Also:
Registriert: Fr Jan 04, 2008 21:29 Beiträge: 419 Wohnort: Lübeck
Ich hab ein ähnliches Problem gehabt, als ich den shader aus dem Tutorial versucht habe nach zu schreiben.
Der erste große Fehler war, davon auszugehen, dass sich die normalen von alleine setzen. Hab sie mit der Hand gesetzt und danach sah es schon besser aus.
das ist mein vertex shader für phonglight, recht unspektakulär:
der Lösungsansatz ist von Ozone3d und hat bei mir sehr gut funktioniert, nachdem ich meine normalen von Hand gesetzt habe.
diffspe heißt meine Textur, weil ich in den rgb wertn halt den diffusen anteil habe und im alpha den faktor für das Specular. Man kann die Textur also auch durch diffuse und spekulare anteile der materialien ersetzen.
Probiers einfach mal aus. Ich könnte mir vorstellen, dass du evtl. mit deinem Lightvektor irgendwas nicht richtig gemacht hast.
Ja, ich glaube ich habe oben schon angedeutet, dass ich gl3ds verwende. Mit den Normalen kann ich atm also nichts machen, außer hoffen dass die nächste gl3ds-version sie richtig setzt.^^
Mitglieder in diesem Forum: 0 Mitglieder 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.