我正在尝试使用sampler2DArray 对我将某些内容渲染到零层的数组纹理进行采样。但是,当我尝试将我创建的新着色器编译为采样器时,数组纹理抛出编译错误。
const char *fragshader="\
#version 320 es\n\
precision mediump float;\n\
\n\
in vec2 texcoord;\n\
uniform sampler2DArray texArray;\n\
uniform int layer;\n\
//out vec4 color;
layout(location =0) out vec4 color0;\n\
\n\
void main()\n\
{\n\
//gl_FragColor = texture(tex, texcoord,1.0);\n\
color0 = texture(texArray,vec3(texcoord.x,texcoord.y,layer));
}\n\
";
我收到编译错误。
当我尝试获取统一位置时获取垃圾值。
Errors:
错误:0:5:“声明”:应定义默认精度或应使用精度限定符
错误:0:5:“声明”:应定义默认精度或应使用精度限定符
错误:0:13:'texArray':未声明的标识符。
错误:0:13:“纹理”:找不到匹配的重载函数。
错误:0:13:“分配”:无法从“const float”转换为“fragout 4-分量浮点向量”
错误:5 个编译错误。没有生成代码。
有人可以帮我解决这个问题吗?
第一个错误是由于缺少声明的精度说明符引起的texArray
, as sampler2DArray
类型没有默认精度。
应用此修复后,着色器对我来说编译正常:
uniform mediump sampler2DArray texArray;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)