DGL
https://delphigl.com/forum/

error: deprecated after 120
https://delphigl.com/forum/viewtopic.php?f=20&t=10776
Seite 1 von 1

Autor:  Knittel [ Mi Feb 27, 2013 20:32 ]
Betreff des Beitrags:  error: deprecated after 120

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:
  1. #version 150
  2.  
  3. void main(void)
  4. {
  5.   gl_Position = ftransform();
  6. }


gibt folgende Fehlermeldung:

Code:
  1. 0(5) : error C7533: global function ftransform is deprecated after version 120


Hab das selbe auch mal durch

Code:
  1. gl_Position = gl_ModelViewMatrix * gl_Vertex;


ersetzt mit der gleichen Fehlermeldung.

Genauso im FramentShader:

Code:
  1. #version 150
  2.  
  3. uniform vec4 ncolor;
  4.  
  5. void main(void)
  6. {
  7.   gl_FragColor = ncolor;
  8. }


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?

Danke schonmal im vorraus.

Autor:  breakdancingYoda [ Mi Feb 27, 2013 23:10 ]
Betreff des Beitrags:  Re: error: deprecated after 120

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:
  1. #version 150
  2.  
  3. uniform mat4 MVP;     // die neue gl_ModelViewProjectionMatrix
  4. in vec4 inVertex;     // das neue gl_Vertex
  5.  
  6. void main(void)
  7. {
  8.     gl_Position = MVP * inVertex;
  9. };


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

Autor:  Knittel [ Do Feb 28, 2013 12:30 ]
Betreff des Beitrags:  Re: error: deprecated after 120

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?

Autor:  Lord Horazont [ Do Feb 28, 2013 13:22 ]
Betreff des Beitrags:  Re: error: deprecated after 120

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

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/