运行 具有特定 WebGL/GLSL 版本的 Web 浏览器
Run Web Browser with specific WebGL / GLSL version
我想 运行 进行一些测试,以确保我制作的某些场景能够在仅支持 WebGL 1.0 的设备上呈现。有没有办法 运行 浏览器在 运行 是 WebGL 场景时仅使用 WebGL 1.0 版?
我已经将 version 100
添加到我的着色器的顶部——这是所有必需的,还是需要更多以确保使用 WebGL 1.0 测试场景?其他人可以提供的任何指示将不胜感激!
在着色器之上添加 version 100
没有任何作用。
如果您使用 canvas.getContext('webgl')
创建了上下文,您将获得基本的 WebGL 1 功能。
使用 WebGL 1 时,具有 #version 300 es
的着色器将无法编译并且许多功能将被锁定在扩展之后。
您应该查看目标浏览器支持哪些扩展,并仅在测试期间启用这些扩展。
但我仍然强烈建议在您的目标浏览器上进行测试,因为 WebGL 规范对需要支持的最少功能有相当宽松的要求。
我经常看到某些参数组合在某些浏览器上有效而在其他浏览器上无效,即使这些浏览器支持 WebGL 2。
您在使用某种库吗?如果你正在做原始的 WebGL 那么如果你要求 "webgl" 你总是得到 webgl1。如果你要求 "webgl2" 如果设备支持它,你会得到 webgl2 但它 不会 自动回退到 WebGL1,因为这两个 API 相似但不兼容。
至于着色器,WebGL1 仅支持 GLSL ES 1.0。 WebGL2 支持 GLSL ES 1.0 和 GLSL ES 3.0。
就是这样。
如果您想了解跨设备支持的功能,请参阅 webglstats.com。规范中定义了最低功能,但很少有设备支持最低功能,如果有任何设备支持最低功能,它们可能会出现严重的性能问题。
我想 运行 进行一些测试,以确保我制作的某些场景能够在仅支持 WebGL 1.0 的设备上呈现。有没有办法 运行 浏览器在 运行 是 WebGL 场景时仅使用 WebGL 1.0 版?
我已经将 version 100
添加到我的着色器的顶部——这是所有必需的,还是需要更多以确保使用 WebGL 1.0 测试场景?其他人可以提供的任何指示将不胜感激!
在着色器之上添加 version 100
没有任何作用。
如果您使用 canvas.getContext('webgl')
创建了上下文,您将获得基本的 WebGL 1 功能。
使用 WebGL 1 时,具有 #version 300 es
的着色器将无法编译并且许多功能将被锁定在扩展之后。
您应该查看目标浏览器支持哪些扩展,并仅在测试期间启用这些扩展。
但我仍然强烈建议在您的目标浏览器上进行测试,因为 WebGL 规范对需要支持的最少功能有相当宽松的要求。
我经常看到某些参数组合在某些浏览器上有效而在其他浏览器上无效,即使这些浏览器支持 WebGL 2。
您在使用某种库吗?如果你正在做原始的 WebGL 那么如果你要求 "webgl" 你总是得到 webgl1。如果你要求 "webgl2" 如果设备支持它,你会得到 webgl2 但它 不会 自动回退到 WebGL1,因为这两个 API 相似但不兼容。
至于着色器,WebGL1 仅支持 GLSL ES 1.0。 WebGL2 支持 GLSL ES 1.0 和 GLSL ES 3.0。
就是这样。
如果您想了解跨设备支持的功能,请参阅 webglstats.com。规范中定义了最低功能,但很少有设备支持最低功能,如果有任何设备支持最低功能,它们可能会出现严重的性能问题。