首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在GL_EXT_shader_io_blocks ES 3.0中启用“OpenGL”

无法在GL_EXT_shader_io_blocks ES 3.0中启用“OpenGL”
EN

Stack Overflow用户
提问于 2017-09-28 22:35:17
回答 1查看 522关注 0票数 0

我在安卓系统中使用了OpenGL ES 3.0,我正在编译两个着色器:

顶点着色器:

代码语言:javascript
复制
#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;
}

片段着色器:

代码语言:javascript
复制
#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扩展,但我得到了以下错误:

代码语言:javascript
复制
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.

我也试过

代码语言:javascript
复制
#extension GL_EXT_shader_io_blocks : require

也不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-29 13:00:06

正如扩展规范中所述,IO块扩展需要OpenGL ES 3.10阴影语言。

尝试使用#version 310 es

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46479233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档