我有幾個例子需要在PC上運行。問題在於它們是用glsl target 150編寫的,而我的電腦只支持版本120.我很確定程序本身足夠簡單,不需要任何OpenGL 3.1的擴展功能。我已經找到了一些有關應該採取什麼措施來轉換glsl(即改變屬性,改爲改變)但它仍然沒有編譯的信息(實際上是否有可能以某種方式從中獲得有意義的錯誤信息?)。將glsl 150轉換爲120
原.vert
#version 150
in vec2 in_Position;
in vec3 in_Color;
out vec3 ex_Color;
void main(void) {
gl_Position = vec4(in_Position.x, in_Position.y, 0.0, 1.0);
ex_Color = in_Color;
}
原.frag
#version 150
precision highp float;
in vec3 ex_Color;
out vec4 gl_FragColor;
void main(void) {
gl_FragColor = vec4(ex_Color,1.0);
}
改變.vert
#version 120
attribute vec2 in_Position;
attribute vec3 in_Color;
varying vec3 ex_Color;
void main(void) {
gl_Position = vec4(in_Position.x, in_Position.y, 0.0, 1.0);
ex_Color = in_Color;
}
改變.frag
#version 120
precision highp float;
attribute vec3 ex_Color;
void main(void) {
gl_FragColor = vec4(ex_Color,1.0);
}
所以任何人都可以在這裏發現問題嗎?
您是否有任何錯誤信息可以在您的問題中引用,無論您是否有意義? –
「*是否真的有可能以某種方式得到一個有意義的錯誤信息?*」[你有沒有得到信息?](http://www.opengl.org/wiki/GLSL_Object#Error_handling) –
最初我只是有一條消息說,我正在連接一個未編譯的着色器,沒有別的。 – Homulvas