美文网首页
threejs性能优化手段

threejs性能优化手段

作者: videring | 来源:发表于2020-03-22 14:35 被阅读0次
    • Three.js控制渲染帧率(FPS)
    • 如果场景有动画效果,就必须周期性执行.render()更新canvas画布图像,如果场景默认是静态的,没有动画,比如展示一个产品、建筑或机械零件的三维模型,只需要在鼠标旋转缩放三维模型,触发.render()执行即可,在没有发生鼠标事件的时候,可以不执行.render()
    • 周期性渲染函数中代码尽量简洁,不要参杂过多业务逻辑
    • 适当减面,例如绘制方形图时;对于曲面而言,减面过多,可能会影响显示效果,所以减面程度要控制好
    • 对于曲面模型,使用法线贴图可以在不影响显示质量的情况下有效减少模型面数,法线贴图会通过图片像素值记录模型表面的几何细节,只需要3D美术对模型表面很多几何细节进行减面后,然后导出法线贴图,提供给程序员加载即可。简单地说就是通过法线贴图可以表达三维模型表面的丰富几何细节
    • 不同的网格模型如果可以共享几何体或材质,最好采用共享的方式,如果两个网格模型无法共享几何体或材质,自然不需要共享,比如两个网格模型的材质颜色不同,这种情况下,一般要分别为网格模型创建一个材质对象
    • 多细节层次:根据场景不同,可以把同一个模型进行分级,比如远距离观看该模型使用1万面数的模型,如果距离更近,需要使用更精细的模型,比如2万面数
    • 生成geometry时适当调参;material不同材料适合场景不同,性能也不同
    • 可通过requestIdleCallback及deadline.timeRemaining()来合理安排密集渲染,防止页面卡死

    相关文章

      网友评论

          本文标题:threejs性能优化手段

          本文链接:https://www.haomeiwen.com/subject/qsxvyhtx.html