我正在尝试使用OpenGL ES3 GLSL的packUnorm2x16
方法将2个float值打包成1个uint值。但是着色器的编译失败,并显示'packUnorm2x16': no matching overloaded function found
错误。
这是我的片段着色器:
varying highp vec2 vDisplacement;
void main() {
gl_FragColor = vec4(packUnorm2x16(vDisplacement), vec3(0.0));
}
我正在尝试将结果渲染为GL_R32UI纹理。
答案 0 :(得分:2)
packUnorm2x16
。您必须将版本限定符#version 300 es
添加到片段着色器的第一个留置权:
#version 300 es
varying highp vec2 vDisplacement;
void main() {
gl_FragColor = vec4(packUnorm2x16(vDisplacement), vec3(0.0));
}