Version: 5.6
Debugging and trouble shooting WebGL builds
WebGL 网络

WebGL 图形

WebGL 是一种用于在 Web 浏览器中渲染图形的 API,基于 OpenGL ES 图形库的功能。WebGL 1.0 大致与 OpenGL ES 2.0 功能相匹配,而 WebGL 2.0 大致与 OpenGL ES 3.0 功能相匹配。

延迟渲染

如果 WebGL2.0 可用,Unity WebGL 仅支持延迟渲染路径。在 WebGL1.0 上,Unity WebGL 运行时将回退到前向渲染

Global Illumination

Unity WebGL 仅支持烘焙 GI。WebGL 当前不支持实时 GI。此外,仅支持非方向光照贴图。

Procedural Materials

Unity WebGL does not support Procedural Materials at runtime. Like on other unsupported platforms, Procedural Materials will be baked into ordinary Materials during the build.

线性渲染

WebGL does not support linear color space rendering.

MovieTexture

WebGL 不支持使用 MovieTexture 类来播放视频。但是,您可以使用 HTML5 视频元素有效地在 WebGL 内容中回放视频。请下载此 Asset Store 资源包查看此操作方法的示例。

WebGL 着色器代码限制

WebGL 1.0 规范对 GLSLS 着色器代码施加了一些限制,比许多 OpenGL ES 2.0 实现方案更严格。当您编写自己的着色器时,受此影响最大。

具体而言,WebGL 限制了哪些值可用于索引数组或矩阵:WebGL 仅允许使用常量表达式、循环索引或组合的方式进行动态索引。唯一的例外是顶点着色器中的 uniform 访问,这种情况可使用任何表达式进行索引。

此外,在控制结构方面也有限制。允许的唯一循环类型是计算 for 循环,在这种情况下,初始化函数 (initializer) 将变量初始化为常量,更新 (update) 向变量添加常量或从变量中减去常量,而延续测试 (continuation test) 会将变量与常量进行比较。不允许使用不符合这些条件的 for 循环以及 while 循环。

字体渲染

与所有 Unity 平台一样,Unity WebGL 支持动态字体渲染。但是,无法访问用户机器上安装的字体,因此所使用的任何字体都必须包含在项目文件夹中(包括国际字符的任何后备字体或者是字体的粗体/斜体版本),并设置为后备字体名称

抗锯齿

WebGL supports anti-aliasing on most (but not on all) combinations of browsers and GPUs. To use it, anti-aliasing must be enabled in the default Quality Setting for the WebGL platform. Switching quality settings at runtime will not enabled or disable anti-aliasing - it has to be set up in the default Quality Setting loaded at player start up. Note that the diffent multi sampling levels have no effect in WebGL. In addition, be aware that any post-processed effect applied to the camera disables the built-in Anti-Aliasing on WebGL1.0. There is no such limitation on WebGL2.0.

反射探针

WebGL 支持反射探针,但由于 WebGL 规范中存在有关渲染到特定 Mipmap 的限制,因此不支持平滑实时反射探针(因此实时反射探针将始终产生锐利的反射,这种情况下可能看起来分辨率非常低)。若要支持平滑实时反射探针,必须使用 WebGL 2.0。

WebGL 2.0 支持

Unity 包含对 WebGL 2.0 API 的支持,因此为 Web 带来了 OpenGL ES 3.0 级的渲染功能。

默认情况下,Unity WebGL 构建可支持 WebGL 1.0 和 WebGL 2.0 API。可在 WebGL Player Settings > Other Settings 中对此进行配置;要执行此操作,请取消选中 Automatic Graphics API

浏览器支持 WebGL 2.0 时,内容可获得以下方面的优势:标准着色器提供的更高质量、GPU 实例化支持、方向光照贴图支持、着色器代码中的索引和循环不受限制以及更出色的性能。

Debugging and trouble shooting WebGL builds
WebGL 网络