Мне не удалось найти какую-либо документацию для этого, но можно ли это сделать [...]
Да.
Или у меня есть запросить единообразное местоположение вручную?
Нет.
Но glBindTextureUnit
- неправильная инструкция. Униформа изображения связана с текстурным объектом с помощью текстурного блока изображения .
В программе шейдера можно установить точек привязки :
layout(RGBA8, binding = 1) uniform image3D voxels;
это эквивалент получения унифицированного местоположения для «вокселей» и установки его унифицированного значения в «1». Следовательно, форма изображения voxels
связана с единицей изображения текстуры "1".
Объект текстуры должен быть связан с соответствующей единицей изображения текстуры с помощью glBindImageTexture
. Например:
glBindImageTexture(1, myTexture, 0, GL_FALSE, 0, GL_WRITE_ONLY, GL_RGBA8);
эта инструкция связывает myTexture
с единицей изображения текстуры 1.
Обратите внимание, glBindTextureUnit(1, myTexture);
связывает объект текстуры с единицей текстуры, которая может быть использовать соответствующий образец текстуры текстуры. например:
layout(binding = 1) uniform sampler3D voxels;