Запустите веб-браузер с указанной c версией WebGL / GLSL - PullRequest
1 голос
/ 08 мая 2020

Я хотел бы провести несколько тестов, чтобы убедиться, что некоторые сцены, которые я создаю, будут отображаться на устройствах, поддерживающих только WebGL 1.0. Есть ли способ запустить браузер так, чтобы браузер использовал только WebGL версии 1.0 при запуске сцены WebGL?

Я уже добавил version 100 в начало своих шейдеров - это все, что требуется , или требуется что-то еще, чтобы убедиться, что сцена тестируется с помощью WebGL 1.0? Мы будем благодарны за любые указатели, которые могут предложить другие!

Ответы [ 2 ]

2 голосов
/ 08 мая 2020

Добавление version 100 поверх шейдеров ничего не дает.

Если вы создали контекст с помощью canvas.getContext('webgl'), вы получите базовые c возможности WebGL 1.

При использовании WebGL 1 шейдеры с #version 300 es не будут скомпилированы, и многие функции будут заблокированы за расширениями.

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

Но я бы все равно настоятельно рекомендовал протестировать ваши целевые браузеры, потому что WebGL spe c имеет довольно мягкие требования к минимальным функциям, которые необходимо поддерживать.

I часто замечают, что некоторые комбинации параметров работают в одних браузерах, а не в других, даже если эти браузеры поддерживают WebGL 2.

1 голос
/ 08 мая 2020

Вы используете какую-то библиотеку? Если вы используете необработанный WebGL, то, если вы попросите «webgl», вы всегда получите webgl1. если вы запросите "webgl2", вы получите webgl2, если устройство его поддерживает, но оно не автоматически возвращается к WebGL1, поскольку 2 API похожи, но несовместимы.

Что касается шейдеров только WebGL1 поддерживает GLSL ES 1.0. WebGL2 поддерживает GLSL ES 1.0 и GLSL ES 3.0.

Вот и все.

Если вы хотите узнать, какие функции поддерживаются на разных устройствах, см. webglstats.com . Минимальные функции определены в spe c, но очень немногие устройства поддерживают минимум, и если есть какие-либо устройства, которые поддерживают минимум, у них, вероятно, будут серьезные проблемы с производительностью.

...