当前位置:   article > 正文

unity官方文档翻译 + 笔记 | WebGL performance considerations

unity官方文档

unity官方文档翻译 + 笔记 | WebGL performance considerations

WebGL性能考虑

总的来说,WebGL性能在GPU上接近本地应用程序,因为WebGL图形API使用GPU进行硬件加速渲染。唯一的例外是将WebGL API调用和着色器转换为您的操作系统图形API(通常是Windows上的DirectX,Mac上的OpenGL和Linux上的OpenGL)的轻微开销。

在CPU方面,Emscripten将您的代码转换为WebAssembly,其性能取决于您使用的Web浏览器。有关更多信息,请参见

Unity博客文章WebAssembly

以下是您必须注意的其他考虑因素:

  • JavaScript语言不支持多线程或SIMD。
  • 任何受益于这些功能的代码都可能比其他代码慢。
  • 您不能在WebGL中编写脚本中的线程或SIMD代码,但由于一些引擎部分是多线程或SIMD优化的,它们在WebGL上提供了较低的性能。例如,WebGL Skinning是多线程和SIMD优化的。

提示:要查看Unity在非WebGL平台上将工作分配给不同线程的情况,请参见Unity中的新时间轴分析器。

影响WebGL性能的特定设置

为获得最佳性能,在Build Player窗口中将优化级别设置为Faster,并在WebGL Player设置中将异常支持设置为None,方法是展开“Other Settings”>“Stack Trace”。

分析WebGL性能

WebGL支持Unity Profiler。请参阅Profiler文档以了解如何设置它。

后台标签中的WebGL内容

如果在 WebGL 平台的 Player 设置中启用了 Run in background,或者如果启用了 Application.runInBackground,您的内容将在画布或浏览器窗口失去焦点时继续运行。

但是,某些浏览器可能会限制在后台标签页中运行的内容。如果包含该内容的标签页不可见,在大多数浏览器中,您的内容每秒才会更新一次。请注意,这将导致 Time.time 比平常采用默认设置时更慢,因为 Time.maximumDeltaTime 的默认值小于一秒。

限制 WebGL 性能

在某些情况下,您可能希望以较低的帧率运行WebGL内容以减少CPU使用率。例如,在其他平台上,您可以使用Application.targetFrameRate API来实现此目的。

当您不想降低性能时,请将此API设置为默认值-1,而不是高值。这允许浏览器调整帧率以获得最平滑的动画,而不是Unity尝试自己进行主循环定时以匹配目标帧率,这可能会产生更好的结果。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/105606
推荐阅读
相关标签
  

闽ICP备14008679号