使用特定的WebGL/GLSL版本运行Web浏览器

使用特定的WebGL/GLSL版本运行Web浏览器,glsl,webgl,Glsl,Webgl,我想运行一些测试,以确保我正在制作的某些场景将在仅支持WebGL 1.0的设备上渲染。是否有办法运行浏览器,使浏览器在运行WebGL场景时仅使用WebGL 1.0版 我已经在着色器顶部添加了版本100,这就是所需的全部内容,还是需要更多内容来确保使用WebGL 1.0测试场景?任何其他人能提供的建议都将不胜感激 在着色器上添加版本100不会产生任何效果 如果您使用canvas.getContext'webgl'创建上下文,您将获得基本的webgl 1功能 使用WebGL 1时,版本为300 es

我想运行一些测试,以确保我正在制作的某些场景将在仅支持WebGL 1.0的设备上渲染。是否有办法运行浏览器,使浏览器在运行WebGL场景时仅使用WebGL 1.0版

我已经在着色器顶部添加了版本100,这就是所需的全部内容,还是需要更多内容来确保使用WebGL 1.0测试场景?任何其他人能提供的建议都将不胜感激

在着色器上添加版本100不会产生任何效果

如果您使用canvas.getContext'webgl'创建上下文,您将获得基本的webgl 1功能

使用WebGL 1时,版本为300 es的着色器将无法编译,许多功能将锁定在扩展后面

您应该查找目标浏览器支持哪些扩展,并在测试期间仅启用这些扩展

但我仍然强烈建议在您的目标浏览器上进行测试,因为WebGL规范对需要支持的最小功能有一个相当宽松的要求

我经常看到某些参数组合在某些浏览器上有效,而在其他浏览器上无效,即使这些浏览器支持WebGL 2。

在着色器上添加版本100也没有任何作用

如果您使用canvas.getContext'webgl'创建上下文,您将获得基本的webgl 1功能

使用WebGL 1时,版本为300 es的着色器将无法编译,许多功能将锁定在扩展后面

您应该查找目标浏览器支持哪些扩展,并在测试期间仅启用这些扩展

但我仍然强烈建议在您的目标浏览器上进行测试,因为WebGL规范对需要支持的最小功能有一个相当宽松的要求


我经常看到一些参数组合在某些浏览器上工作,而在其他浏览器上则不工作,即使这些浏览器支持WebGL 2。

您使用的是某种库吗?如果你在做原始WebGL,那么如果你要求WebGL,你总是得到webgl1。如果您请求webgl2,那么如果设备支持webgl2,您将获得webgl2,但不会自动退回到WebGL1,因为这两个API相似但不兼容

对于着色器,WebGL1仅支持GLSL ES 1.0。WebGL2支持GLSL ES 1.0和GLSL ES 3.0

就这样


如果您想了解跨设备支持哪些功能,请参阅。最低功能在规范中有定义,但很少有设备支持最低功能,如果有任何设备支持最低功能,它们可能会有严重的性能问题。

您使用的是某种库吗?如果你在做原始WebGL,那么如果你要求WebGL,你总是得到webgl1。如果您请求webgl2,那么如果设备支持webgl2,您将获得webgl2,但不会自动退回到WebGL1,因为这两个API相似但不兼容

对于着色器,WebGL1仅支持GLSL ES 1.0。WebGL2支持GLSL ES 1.0和GLSL ES 3.0

就这样


如果您想了解跨设备支持哪些功能,请参阅。最低功能在规范中有定义,但很少有设备支持最低功能,如果有任何设备支持最低功能,它们可能会有严重的性能问题。

Ah谢谢@zoran404。我想我需要更多的设备:啊,谢谢@zoran404。我想我需要更多的设备:了解上下文创建逻辑非常有帮助!了解上下文创建逻辑非常有帮助!