#opengl-es #glsl #shader #glsles
#opengl-es #glsl #шейдер #glsles
Вопрос:
Я пытаюсь упаковать 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.
packUnorm2x16
поддерживается начиная с OpenGL ES 3.0. Вы должны добавить квалификатор версии#version 300 es
в первое удержание фрагментного шейдера.
Ответ №1:
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));
}