我正在尝试使用OpenGL ES3 GLSL的packUnorm2x16
方法将2个浮点值打包为1个uint值。但是着色器的编译因'packUnorm2x16': no matching overloaded function found
错误而失败。
这是我的片段着色器:
varying highp vec2 vDisplacement;
void main() {
gl_FragColor = vec4(packUnorm2x16(vDisplacement), vec3(0.0));
}
我试图将结果呈现给GL_R32UI纹理。
自OpenGL ES 3.0以来,支持packUnorm2x16
。您必须将版本限定符#version 300 es
添加到片段着色器的第一个留置权:
#version 300 es
varying highp vec2 vDisplacement;
void main() {
gl_FragColor = vec4(packUnorm2x16(vDisplacement), vec3(0.0));
}