ERROR: 0:1: 'basicVertex120' : syntax error parse error
代碼:
#version 120
attribute vec3 position;
attribute vec2 texCoord;
varying vec2 texCoord0;
uniform mat4 transform;
void main()
{
gl_Position = transform * vec4(position, 1.0);
texCoord0 = texCoord;
}
我已經從這裏的教程如下:http://www.youtube.com/watch?v=8n1GV99FJ2Y&list=PLEETnX-uPtBXP_B2yupUKlflXBznWIlL5&index=11
所有從他的教程代碼在這裏:https://github.com/BennyQBD/3DGameEngine
我不是完全遵循它,但是就着色器類而言,它完全一樣。如果你需要發佈任何其他代碼...請告訴我。
我對OpenGL 2.0+和GLSL仍然很陌生,並試圖弄清楚如何知道哪一行有錯誤。是否有像GL11.glGetError();頂點着色器的東西?
是否有任何工具可以使用或documetation我可以瀏覽以嘗試解決問題?
我真的很想學會自己解決這些問題。我怎樣才能做到這一點?
是的,使用glGetShaderInfoLog(我看到它做到了,儘管在你鏈接的源代碼中)。更重要的是,我沒有看到你要求OpenGL版本的任何地方。我不認爲一個給出glsl 1.1的2.0上下文會有#version指令,但這只是一個猜測,因爲我只使用OpenGL 3.1+。 – Xonar
我在代碼中使用了glGetShaderInfoLog,因爲它沒有提供真正的信息......我認爲它沒用。 - 我正在運行的OpenGL版本是3.0,它確實打印了它......但我沒有包括它。 #版本120等同於OpenGL 2.1,但我不太清楚你的第三句話的含義。 – Zeveso
@Xonar:這其實有點灰色地帶。 GLSL 1.1規範的早期版本。沒有定義'#version'或'#extension'預處理器指令,所以一些早期的實現可能不支持它。但我從來沒有遇到過這個問題。 –