DGL https://delphigl.com/forum/ |
|
Per-Pixel-Lighting https://delphigl.com/forum/viewtopic.php?f=20&t=7255 |
Seite 1 von 1 |
Autor: | Fabian W. [ Mo Feb 04, 2008 14:33 ] |
Betreff des Beitrags: | Per-Pixel-Lighting |
Hallo! 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? // edit Lossy: Thema verschoben |
Autor: | i0n0s [ Mo Feb 04, 2008 14:40 ] |
Betreff des Beitrags: | |
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... |
Autor: | Fabian W. [ Mo Feb 04, 2008 15:33 ] |
Betreff des Beitrags: | |
Haha ![]() 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? mfg |
Autor: | Lord Horazont [ Mo Feb 04, 2008 15:59 ] |
Betreff des Beitrags: | |
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 |
Autor: | Fabian W. [ Mo Feb 04, 2008 16:16 ] |
Betreff des Beitrags: | |
Okay ![]() Zu Begin beim Laden der einstellungen: Code:
Rendern: Code:
Licht: Code:
Shader: (Code und Dateien aus dem Tutorial übernommen) Code:
|
Autor: | i0n0s [ Di Feb 05, 2008 14:17 ] |
Betreff des Beitrags: | |
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. |
Autor: | Fabian W. [ Di Feb 05, 2008 14:28 ] |
Betreff des Beitrags: | |
Identisch solange bis ich Code:
Das OpenGL-Licht war mir schon immer unsympatisch ![]() Ist es möglich, dass das Ganze mit meiner GraKa (bzw deren Treiber) oder mit gl3ds und nicht gesetzten Normalen zu tun hat? |
Autor: | Philip [ Di Feb 05, 2008 15:49 ] |
Betreff des Beitrags: | |
Zitat: nicht gesetzten Normalen zu tun hat?
Du setzt keine Normalen? Für Licht brauchst du die aber zwingend... |
Autor: | Fabian W. [ Di Feb 05, 2008 16:14 ] |
Betreff des Beitrags: | |
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? (Siehe auch http://www.delphigl.com/forum/viewtopic.php?t=7212&highlight=) |
Autor: | MatReno [ Di Feb 05, 2008 20:15 ] |
Betreff des Beitrags: | |
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. |
Autor: | Fabian W. [ Mi Feb 06, 2008 09:42 ] |
Betreff des Beitrags: | |
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 ![]() |
Autor: | MatReno [ Mi Feb 06, 2008 10:19 ] |
Betreff des Beitrags: | |
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: Code:
|
Autor: | Fabian W. [ Mi Feb 06, 2008 10:25 ] |
Betreff des Beitrags: | |
Nein auch deaktiviertes Backface Culling ändert an der Schale nix. ![]() EDIT: Auch das geänderte Übergeben mit glMaterialf bewirkt keine sichtbare Veränderung - weder mit noch ohne Shader. |
Autor: | Sellmann [ So Feb 10, 2008 11:44 ] |
Betreff des Beitrags: | |
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: Code:
das ist der dazu gehörige fragmentshader (ich benutze allerdings nur diffuse material anteile, keine weiteren materialeigenschaften): Code:
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. |
Autor: | Fabian W. [ Mo Feb 11, 2008 18:52 ] |
Betreff des Beitrags: | |
Ah, fein - der Shader funktioniert prächtig ![]() 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.^^ mfg |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |