Ссылаясь на форму без glGetUniformLocation - PullRequest
1 голос
/ 13 марта 2020

в моих шейдерах мне нравится использовать такой синтаксис:

layout (location = 0) in vec3 aPos;

Так что я могу просто использовать индекс 0 в glVertexAttribPointer и тому подобное, сохраняя усилие для вызова glGetAttribLocation. Я хотел бы сделать то же самое со значениями uniform, но если я сделаю

layout (location = 2) uniform float offset;

Мой вершинный шейдер не сможет скомпилироваться. Есть ли способ добиться того же поведения и не использовать glGetUniformLocation?

1 Ответ

6 голосов
/ 13 марта 2020

OpenGL 4.3 или расширение ARB_explicit_uniform_location позволяет указывать равномерное расположение в шейдере с использованием этого синтаксиса. Поэтому ваш шейдер #version должен быть 430, или вам нужно активировать расширение в вашем шейдере, чтобы иметь возможность использовать этот синтаксис.

...