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

问题描述 投票:1回答:1

我正在尝试使用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 glsl shader glsles
1个回答
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));
}
© www.soinside.com 2019 - 2024. All rights reserved.