我在使用安卓中的openGl ES 3.0来渲染屏幕上的一个矩形,并且想要使用着色器根据顶点位置生成混合颜色。
我确定问题在于顶点和片元着色器代码中,但我不知道具体是什么问题,以下是着色器代码:
private final String vertexShaderCode =
"#version 300 es"+
"in vec3 position;" +
"out vec3 color;"+
"void main() {" +
" gl_Position = vec4(position.x,position.y,position.z,1.0);" +
" color = vec3(position.x+0.5,1.0,position.y+0.5);"+
"}";
private final String fragmentShaderCode =
"#version 300 es"+
"in vec3 color;"+
"out vec4 out_color;"+
"void main() {" +
" out_color= vec4(color.x,color.y,color.z,1.0);" +
"}";
我正在尝试根据顶点位置填充形状的颜色,因此这是每个像素生成的颜色的混合。
但我不知道为什么它不起作用?
更新:
我有三个信息:
- 链接失败,因为顶点着色器无效。 - 语言版本“300”未知,此编译器仅支持版本“320 es”及以下。 - #version指令之后发现意外的文本。