2014-01-13 2 views
4

У меня есть ряд шейдеров фрагментов GLSL, для которых я могу в значительной степени гарантировать, что они соответствуют #version 120. Они используют стандартные, не относящиеся к ES значения, и у них нет ES -специальные прагмы.Можно ли запускать #version 120 шейдеров с помощью WebGL

Я действительно хочу сделать для них веб-предварительный просмотр с помощью WebGL. Предварительный просмотр не будет использоваться на мобильных устройствах. Это возможно? Является ли набор функций открытым для GLSL-шейдеров в WebGL ограниченным по сравнению с этой версией GLSL? Существуют ли различия в точности?

Я уже пробовал играть с THREE.js, но это на самом деле не втирает его с тех пор, как он скручивает мой шейдерный код, прежде чем загружать его на GPU (чего я не могу сделать).

Вкратце: спецификация GLSL достаточна для того, чтобы я запускал эти шейдеры? .. потому что, если это не то, что мне нужно, это не выполнимо, и я должен просто отказаться от него.

ответ

3

Нет, шейдеры WebGL должны быть версии № 100. Все остальное запрещено.

Если вам интересно, почему это происходит, так как, насколько это возможно, WebGL необходимо запускать везде. Если вы можете выбрать любую версию, ваша веб-страница будет работать только в системах с графическими процессорами/драйверами, которые обрабатывали эту версию.

Следующая версия WebGL поднимет номер версии. Это позволит использовать GLSL ES 3.0 (обратите внимание на ES). В настоящее время он доступен за флагом в Chrome и Firefox по состоянию на май 2016 года.

+0

Спасибо. Мне грустно (хотя это очень конкретный вариант использования). – Julik

Смежные вопросы