我目前在渲染 ThreeJS 应用程序的第一帧时对其性能产生了很大的影响。这会导致 Edge 和 IE 11 浏览器冻结 5 秒钟,并弹出一个指示“此窗口未响应”的弹出窗口,可能会吓到我的用户。
使用 Chrome 的性能分析器,似乎问题来自于几个 ThreeJS 函数,您可以在下面的截图中清楚地识别。
我能否在多个帧上创建程序?或上传制服?
我的3D模型中材料的数量会影响这些函数吗?
我试图隐藏场景中的所有模型并逐个显示它们,似乎可以防止冻结,但每个模型需要500毫秒才能显示,这对用户体验来说并不完美。也许这是唯一的出路。
谢谢您的时间。
编辑:材料的数量或其性质(WebGLStandardMaterial?)似乎会影响性能。
使用 Chrome 的性能分析器,似乎问题来自于几个 ThreeJS 函数,您可以在下面的截图中清楚地识别。
WebGLUniforms.upload
:425ms(50.7%帧渲染时间)WebGLProgram.constructor
:327ms(38.9%帧渲染时间)
我能否在多个帧上创建程序?或上传制服?
我的3D模型中材料的数量会影响这些函数吗?
我试图隐藏场景中的所有模型并逐个显示它们,似乎可以防止冻结,但每个模型需要500毫秒才能显示,这对用户体验来说并不完美。也许这是唯一的出路。
谢谢您的时间。
编辑:材料的数量或其性质(WebGLStandardMaterial?)似乎会影响性能。
renderer.compile
以查看效果。 - undefinedrenderer.render
函数,效果与隐藏所有模型然后逐个显示它们相同。顺便说一下,我还没有能够调用renderer.compile
函数,因为ThreeJS找不到顶点着色器,我应该有时间的时候去看一下这个问题。 - undefined