Registriert: Mi Mär 09, 2005 15:54 Beiträge: 372 Wohnort: München
Programmiersprache: Delphi, C#, FPC
Kannst ja mal im DelphiGl-Wiki hier oder bei OpenGL.org hier schauen. Kenns persönlich auch nicht, aber vieleicht wirst du aus den beschreibungen schlauer
Registriert: Mo Sep 02, 2002 15:41 Beiträge: 867 Wohnort: nahe Stuttgart
Das ist das VA- oder VBO-Pendant zu glSecondaryColor - so wie man zB. glColorPointer verwenden würde.
Wenn glDrawArrays() oder ähnliche Funktionen zB. ein Arrayelement zeichnen, callen sie ua.:
Code:
if(normal array enabled)then
Normal3[type]v(normal array element i);
if(color array enabled)then
Color[size][type]v(color array element i);
if(secondary color array enabled)then
SecondaryColor3[type]v(secondary color array element i);
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Kanst du mal ein Beispielbild mit und ohne Secondary-Color rendern und ins Wiki stellen (bzw. hier rein und ich stells dann ins Wiki).
Entspricht das rendern mit SecColor einem Blending, oder wie muss man sich das vorstellen?
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Ich habe allerdings das Gefühl, dass es sich dabei lediglich um eine zusätzlich Farbe handelt. Also eine Grundfarbe und eine zusätzliche Farbe. Aber so genau schlau bin ich auch diesen Dokumenten auch nicht geworden.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Diese sekundäre Farbe kann man nutzen um den spekulativen Lichtanteil zu verändern. Dazu muss man beim Lichtmodel für GL_LIGHT_MODEL_COLOR_CONTROL GL_SEPARATE_SPECULAR_COLOR angeben. Es ist also etwas recht Spezielles.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
glSecondaryColor wirkt nur, wenn die beleuchtung nicht aktiviert ist. Man kann damit sozusagen ein Fake-Licht erzeugen, wenn vorher mit glEnable(GL_COLOR_SUM) das addieren der SecondaryColor auf die Fragmentfarbe aktiviert wurde. Dies geschieht noch nach der Texturierung. Könnte also in manchen fällen durchaus hilfreich sein. Vielleicht probier ich dazu gleich nochwas aus.
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: Mo Sep 02, 2002 15:41 Beiträge: 867 Wohnort: nahe Stuttgart
So wie ich zB. diesen Link verstanden habe, ist das Prinzip recht simpel.
Normalerweise wird die im Lighting berechnete Farbe mit der der Textur multipliziert, wobei das per-Vertex-Specular allerdings verloren geht. glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL, GL_SEPARATE_SPECULAR_COLOR); sorgt dafür, dass das Specular im LightModel addiert statt multipliziert wird, was den Effekt behebt.
Und bei deaktiviertem Lighting kann man es selbst zur "nachträglichen" Addition benutzen, wenn man GL_COLOR_SUM enabled, was in Zeiten von PPL-Shadern aber doch irgendwie überholt wirkt.
Mitglieder in diesem Forum: 0 Mitglieder und 6 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.