Registriert: Mi Nov 30, 2011 21:41 Beiträge: 136 Wohnort: Bad Vilbel
Programmiersprache: Delphi 7
Hallo allerseits, Ich versuche gerade nur einen ColorPicking Shader zu laden. Und dabei stoße ich schon auf ordentlich Probleme!
Mein ganz einfacher Shader:
Code:
#version 150
void main(void)
{
gl_Position = ftransform();
}
gibt folgende Fehlermeldung:
Code:
0(5) : error C7533: global function ftransform is deprecated after version 120
Hab das selbe auch mal durch
Code:
gl_Position = gl_ModelViewMatrix * gl_Vertex;
ersetzt mit der gleichen Fehlermeldung.
Genauso im FramentShader:
Code:
#version 150
uniform vec4 ncolor;
void main(void)
{
gl_FragColor = ncolor;
}
Hier erzählt er mir das gl_FragColor deprecated ist, allerdings ist das hier nur "warning" statt "error". Gibts vielleicht irgendwo eine Liste mit den jeweils dann neuen Funktionen / Variablen, oder habe ich was anderes falsch gemacht?
Registriert: Sa Mär 31, 2012 23:14 Beiträge: 26
Programmiersprache: PASCAL
Eine Liste mit neuen Variablen/Funktionen gibt's nicht, weil diese Dinge in GLSL ersatzlos gestrichen wurden; Die eingebauten Inputs und Outputs musst du durch eigene Bezeichner ersetzen, zB:
Code:
#version 150
uniform mat4 MVP; // die neue gl_ModelViewProjectionMatrix
in vec4 inVertex; // das neue gl_Vertex
void main(void)
{
gl_Position = MVP * inVertex;
};
Genau so im Fragment-Shader mit "out vec4 outFragColor" oder so.
Alternativ: schreib in der ersten zeile "#version150 compatibility". Das sollte die alten Sachen wieder verfügbar machen (ist aber ein bisschen "altertümliches" OpenGL).
MfG Yoda
_________________ The force, strong it is in OpenGL.
Registriert: Mi Nov 30, 2011 21:41 Beiträge: 136 Wohnort: Bad Vilbel
Programmiersprache: Delphi 7
Muss ich die ModelViewProjection Matrix dann auch per glUniform übergeben?
Wenn ja, entspricht die ModelViewProjection Matrix
MVP = MV * P oder MVP = P * MV?
Und dann gleich noch ne andere Frage, wenn ich die Matrix per Uniform nochmal übergeben muss, ist das dann nicht Verschwendung der Übertragungsrate zwischen CPU und Graka?
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Nicht mehr als wenn du sie halt normal setzt. Musst du ja sowieso, üblicherweise macht man die Matrixberechnungen eh schon auf der CPU und lädt (z.B. mit glLoadMatrix) nur noch die fertige Matrix hoch. Ob das jetzt per glUniform oder glLoadMatrix passiert, ist egal. Man muss den Uniform ja nicht für jede Primitivie neu setzen.
grüße
_________________ 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
Mitglieder in diesem Forum: 0 Mitglieder und 18 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.