WebGL1 не имеет этих разных типов сэмплеров.
WebGL2 тип определяется внутренним форматом. Типы, заканчивающиеся на I
, такие как RGB8I
: isampler
. Типы, оканчивающиеся на UI
, например RGB8UI
, имеют формат usampler
. Все остальное sampler
На странице 5 Справочного руководства по WebGL2 приведен список форматов
Также обратите внимание
(1) Вам следует избегать справочных страниц OpenGL для WebGL2, поскольку они часто не совпадают. Вместо этого вы должны читать справочные страницы OpenGL ES 3.0.x
(2) WebGL2 имеет более строгие ограничения. В документах, на которые вы ссылались, указано, что значения могут быть неопределенными. WebGL2 не позволяет этого. С спецификация WebGL2
5.22 Тип сэмплера должен соответствовать внутреннему формату текстуры
Функции поиска текстуры возвращают значения в виде числа с плавающей запятой, целого без знака или целого числа со знаком, в зависимости от типа сэмплера, передаваемого в функцию поиска. Если для доступа к текстуре используется неправильный тип сэмплера, т.е. тип сэмплера не соответствует внутреннему формату текстуры, возвращаемые значения не определены в OpenGL ES Shading Language 3.00.6 (OpenGL ES Shading Language 3.00.6 §8.8). В WebGL генерирует ошибку INVALID_OPERATION в соответствующем вызове отрисовки, включая drawArrays, drawElements, drawArraysInstanced, drawElementsInstanced и drawRangeElements.
Если тип сэмплера имеет тип с плавающей запятой, а внутренний формат текстуры является нормализованным целым числом, он считается совпадением, а возвращаемые значения преобразуются в плавающую точку в диапазоне [0, 1].