我在安卓系统中使用了OpenGL ES 3.0,我正在编译两个着色器:
顶点着色器:
#version 300 es
#extension GL_EXT_shader_io_blocks : enable
layout (location = 0) in vec2 position;
layout (location = 1) in vec4 color;
layout (location = 2) in vec2 uv;
uniform mat4 pr_matrix;
uniform mat4 vw_matrix;
uniform mat4 ml_matrix;
out DATA {
vec2 position;
vec4 color;
vec2 uv;
} vs_out;
void main() {
gl_Position = pr_matrix * vw_matrix * ml_matrix * vec4(position, 0.0, 1.0);
vs_out.position = position;
vs_out.color = color;
vs_out.uv = uv;
}片段着色器:
#version 300 es
#extension GL_EXT_shader_io_blocks : enable
layout (location = 0) out vec4 color;
uniform sampler2D tex;
in DATA {
vec2 position;
vec4 color;
vec2 uv;
} frag_in;
void main() {
float dist = length(frag_in.position);
color = frag_in.color;
}尽管我为这两个着色器启用了GL_EXT_shader_io_blocks扩展,但我得到了以下错误:
ERROR: 0:12: 'DATA' : requires extension GL_EXT_shader_io_blocks to be enabled
ERROR: 1 compilation errors. No code generated.
ERROR: 0:8: 'DATA' : requires extension GL_EXT_shader_io_blocks to be enabled
ERROR: 1 compilation errors. No code generated.我也试过
#extension GL_EXT_shader_io_blocks : require也不起作用。
发布于 2017-09-29 13:00:06
正如扩展规范中所述,IO块扩展需要OpenGL ES 3.10阴影语言。
尝试使用#version 310 es。
https://stackoverflow.com/questions/46479233
复制相似问题