所以我不能让我的着色器用颜色渲染。当我不使用属性颜色设置颜色时,我的着色器工作。我的顶点代码是:
typedef struct
{
GLKVector3 Position; //Position
GLKVector4 Color; //32 Bit color
GLKVector3 Normal; //For Lighting
GLKVector2 TexCoord; //For Texturing
} Vertex;
我将所有顶点的颜色设为 [1,0,0,1] 我的顶点着色器是这样的:
attribute vec3 Position;
attribute vec4 Color;
attribute vec3 Normal;
attribute vec2 TexCoord;
uniform mat4 ModelViewMatrix;
uniform mat4 ProjectionMatrix;
varying vec4 DestinationColor;
void main(void)
{
gl_Position = ProjectionMatrix*ModelViewMatrix*vec4(Position,1);
DestinationColor = Color;
}
我的片段着色器是这样的:
precision mediump float;
varying lowp vec4 DestinationColor;
void main (void)
{
gl_FragColor =DestinationColor;
}
它什么也不显示。
如果我将片段着色器更改为 gl_FragColor = vec4(1,0,0,1); 它甚至不起作用 除非我取消注释顶点着色器中设置 DestinationColor 的行。
请帮助我已经坐了一段时间了