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

WebGL性能接近本地应用,但受限于JavaScript的单线程和无SIMD支持。Unity的WebGL构建应设为Faster优化级别和无异常支持。浏览器可能限制后台标签页的性能,导致帧率下降。Application.targetFrameRateAPI可用于控制帧率。
摘要由CSDN通过智能技术生成

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尝试自己进行主循环定时以匹配目标帧率,这可能会产生更好的结果。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值