我在阅读本教程后遇到问题The First Triangle。我实际上设法让第一部分工作,但是当涉及到顶点着色器时,它不起作用。
这是我的顶点着色器代码:
#version 330 core
// Input vertex data, different for all executions of this shader.
layout(location = 0) in vec3 vertexPosition_modelspace;
void main(){
gl_Position.xyz = vertexPosition_modelspace;
gl_Position.w = 1.0;
}
它只是教程的副本,但它给了我这个错误:必须写入gl_Position。
只是不知道现在该做什么。
编辑:我正在使用GeForce 9500GT和319.32驱动程序
EDIT2:我在旧版本中实际上有同样的东西,但它有同样的错误。 这是代码:
#version 120
// Input vertex data, different for all executions of this shader.
attribute vec3 vertexPosition_modelspace;
void main(){
gl_Position = vec4(vertexPosition_modelspace, 1.0);
}
EDIT3:我正在使用SFML作为我的默认库。
答案 0 :(得分:0)
我开始意识到,由于帮助了我,我所做的事情有点不对劲。 如果有人遇到这种问题,最好的选择是尝试库(SFML)本机函数。 这就是我现在正在使用this tutorial。
答案 1 :(得分:-3)
如果您的着色器文件连续一次有多个换行符[0D0A],或者它们只包含0D或0A,那么您将度过糟糕的一天。
好 - >
#version 330 core
in vec3 ourColor;
out vec4 color;
void main()
{
color = vec4(ourColor, 1.0f);
}
BAD - >
#version 330 core
in vec3 ourColor;
out vec4 color;
void main()
{
color = vec4(ourColor, 1.0f);
}
至少这对我有用......