OpenGL ES3: не найдена соответствующая перегруженная функция для packUnorm2x16 - PullRequest
1 голос
/ 06 апреля 2019

Я пытаюсь упаковать 2 значения с плавающей запятой в значение 1 uint, используя packUnorm2x16 метод OpenGL ES3 GLSL. Но компиляция шейдера завершается с ошибкой 'packUnorm2x16': no matching overloaded function found.

Это мой фрагментный шейдер:

varying highp vec2 vDisplacement;

void main() {
  gl_FragColor = vec4(packUnorm2x16(vDisplacement), vec3(0.0));
}

Я пытаюсь отобразить результат в текстуре GL_R32UI.

1 Ответ

2 голосов
/ 07 апреля 2019

packUnorm2x16 поддерживается начиная с OpenGL ES 3.0. Вы должны добавить квалификатор версии #version 300 es к первому селекту фрагментного шейдера:

#version 300 es

varying highp vec2 vDisplacement;

void main() {
    gl_FragColor = vec4(packUnorm2x16(vDisplacement), vec3(0.0));
}
...