OpenGL ES3:未找到packUnorm2x16的匹配重载函数

时间:2019-04-06 05:56:13

标签: opengl-es glsl shader glsles

我正在尝试使用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纹理。

1 个答案:

答案 0 :(得分:2)

从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));
}