Specular Highlighting will nicht
-
Cpp_Junky schrieb:
Es ist OpenGL
oh...
-
Die Materialien sehen gut aus so. Zum Debugen würde ich aber pro Lichtart eine spezielle Farbe wählen (z.B. Spekular=Blau), so siehst Du sofort was Sache ist..
-
Hab mein spekulares Licht mal Rot gefärbt. Das Model wird davon beleuchtet. Es "highlighted" aber trotzdem nicht, sondern wird nur etwas heller als der Rest. Müssen meine Texturen vielleicht irgendeine bestimmte Eigenschaft besitzen, damit die "Highlight Spots" auf die Textur kommen ?
-
Ne, mit der Textur hat das nichts zu tun.
Hm, mach mal die Shininess etwas mehr, z.B. 128.0Naja, je nach Model sieht der "Glanzeffekt" eh nicht allzugut aus, dazu müsste man Phong Shading nehmen.
Mach sonst mal n'Screenshot, damit wir sehen können wies aussieht...
-
Hmmm, ich hab mittlerweile durch endloses rumgeforsche rausgefunden das die Highlight-Spots nur bei untexturierten Flächen möglich sind. OpenGL bügelt den Effekt wohl durch die Textur vollkommen über. Möglich soll es aber über eine Extension sein, mit der man die Reihenfolge von Licht und Textur Rendering ändern kann. Oder man benutzt gleich Environmental-Mapping
-
Cpp_Junky schrieb:
Hmmm, ich hab mittlerweile durch endloses rumgeforsche rausgefunden das die Highlight-Spots nur bei untexturierten Flächen möglich sind. OpenGL bügelt den Effekt wohl durch die Textur vollkommen über. Möglich soll es aber über eine Extension sein, mit der man die Reihenfolge von Licht und Textur Rendering ändern kann. Oder man benutzt gleich Environmental-Mapping
Hmm, jo OpenGL kombiniert ja das Licht mit der Textur, d.h. ein restlos weisser Fleck kriegste nicht hin. Aber nen Glanzeffekt lässt sich trotzdem ganz gut realisieren.
Wenn Du die Textur mit dem Licht "übermalen" willst, dann zeichne erst dein Licht alleine und addiere dann in einem zweiten pass die Textur dazu.Was ist das für ne Extension? Das näm mich auch Wunder, haste nen Link dazu?
-
durito schrieb:
Cpp_Junky schrieb:
Hmmm, ich hab mittlerweile durch endloses rumgeforsche rausgefunden das die Highlight-Spots nur bei untexturierten Flächen möglich sind. OpenGL bügelt den Effekt wohl durch die Textur vollkommen über. Möglich soll es aber über eine Extension sein, mit der man die Reihenfolge von Licht und Textur Rendering ändern kann. Oder man benutzt gleich Environmental-Mapping
Hmm, jo OpenGL kombiniert ja das Licht mit der Textur, d.h. ein restlos weisser Fleck kriegste nicht hin. Aber nen Glanzeffekt lässt sich trotzdem ganz gut realisieren.
Wenn Du die Textur mit dem Licht "übermalen" willst, dann zeichne erst dein Licht alleine und addiere dann in einem zweiten pass die Textur dazu.Was ist das für ne Extension? Das näm mich auch Wunder, haste nen Link dazu?
multiplizieren,nicht addieren, sonst ist das endergebis unnatürlich hell
-
Man, is dieses OGL scheisse...
Aber mal im Ernst, das muss doch gehen! Sicher das du es nicht doch irgendwo selbst verzockst?
Bye, TGGC (Just think about it)
-
@otze: ich mein schon addieren, er will ja wohl das Spekularlicht "unnatürlich hell" sprich weiss. Also nur den Glanzeffekt zeichnen und dann zum "normalen Bild" addieren.
@TGGC: stimmt, D3D hat n'ganz anderes Lichtmodell
-
@TGGC:
Ne is wirklich so. Man kann es nur über Umwege lösen - Zwei Rendering, Environmental-Mapping, Textur drüberblenden, diese komische Erweiterung o.ä.Kannst das Problem hier direkt bei opengl.org nachlesen:
http://www.opengl.org/resources/faq/technical/texture.htm
(FAQ Nummer 21.040)
-
Cpp_Junky schrieb:
@TGGC:
Ne is wirklich so. Man kann es nur über Umwege lösen - Zwei Rendering, Environmental-Mapping, Textur drüberblenden, diese komische Erweiterung o.ä.Kannst das Problem hier direkt bei opengl.org nachlesen:
http://www.opengl.org/resources/faq/technical/texture.htm
(FAQ Nummer 21.040)
Aber da steht doch, daß man einfach statt GL_SINGLE_COLOR GL_SEPARATE_SPECULAR_COLOR als Parameter übergeben muß!??!
Die anderen Methoden sind doch nur dafür, wenn man kein OpenGL 1.2 nutzen will.
Und jede GraKa die mehr als 30 Polys/Sek. darstellen kann (und jünger als 5 Jahre ist), hat auch OpenGL 1.2 Treiber.
-
Hab ich schon probiert.
Muss ich dann andere Header oder so einbinden ?
Bei mir krieg ich den Fehler das GL_SEPARATE_SPECULAR_COLOR nicht definiert ist. (Hab hier eine Win2000 Maschine mit einer Radeon7000)
-
Wahrscheinlich brauchst Du einfach neuere Header, oder?!
Du nutzt wahrscheinlich die, die bei der IDE dabei waren, hm?!
Die sind doch meistens steinalt.
Check' doch mal: In der Header steht doch oben ein #define mit der Versionsnr.!
-
Tja, wie ich schon öfters sagte: Bei OGL kommen die Probleme erst, wenn man ein bissl mehr als ein rotierendes Dreieck macht...
Bye, TGGC (Just think about it)
-
@TGGC: Rotierende Dreiecke sind der Anfang von allem...! :p
Naja. Zugegeben: Häufig auch das Ende...
-
*LOL*
Bye, TGGC (Just think about it)
-
Das Problem ist schlicht und einfach Windows, was bei OpenGL 1.1 stehengeblieben ist.
Binde einfach mal die glext.h ein und GL_SEPARATE_SPECULAR_COLOR sollte verfügbar sein.
cya
liquid
-
LiquidAcid schrieb:
Das Problem ist schlicht und einfach Windows
Natüüüüüüürlich!!
-
Auch wenn du es nicht glauben magst Nukem, es ist so.
cya
liquid
-
In Bielefeld ist einer gestorben. Der hatte keine Ausrede mehr...
Bye, TGGC (Just think about it)