玩大了! 阿里工程师的年会竟然这样搞?(6)

客观因素如:大屏分辨率、设备显卡等不考虑,但需要更多从可控条件来解决部分性能问题。一般衡量动画是否卡顿用fps衡量,如果在30-60帧之内肉眼基本无感知,再往下,会感受到很明显的卡顿。第一版开发完成之后,在mac上的帧率只有20+到40。肯定达不到标准,所以从以下几个方面开始优化。

[原创文章:www.11jj.com]


[本文来自:www.11jj.com]

1.尽量重用MaterialGeometry,或者缓存模型;


BufferGeometry 会缓存网格模型,性能要高效点。网格模型生成原理。


  • Geometry 生成的模型是这样的 (代码)-> (CUP 进行数据处理,转化成虚拟3D数据) -> (GPU 进行数据组装,转化成像素点,准备渲染) -> 显示器第二次操作时重复走这些流程。


  • BufferGeometry 生成模型流程 (代码) -> (CUP 进行数据处理,转化成虚拟3D数据) -> (GPU 进行数据组装,转化成像素点,准备渲染) -> (丢入缓存区) -> 显示器第二次修改时,通过API直接修改缓存区数据,流程就变成了这样(代码) -> (CUP 进行数据处理,转化成虚拟3D数据) -> (修改缓存区数据) -> 显示器。


  • 2.减少渲染的对象,或者渲染的时候让对象不可见:渲染过不再需要的对象可以设置visible = false,或者直接从scene中remove,两者的区别可以参考Three.js scene.remove vs. visible=false;


    3.谨慎地在render()中操作:一般FPS为60也就意味着一秒会执行60次如果render()中有有实例化或是赋值操作很容易会崩溃;


    4.选择合适的对象:粒子我就是用Sprite代替Mesh实现的;


    5.考虑光源的影响:会影响场景中对象的渲染;


    6.渲染的对象时side属性尽量用FrontSide,DoubleSide会导致更多的渲染,也是减少渲染的方法;


    7.可以用着色器来渲染,用更底层的glsl来实现。


    优化完之后的状态:在mac上基本上都是60fps。保证了最终效果的实现:

     

    自媒体 微信号:11jj 扫描二维码关注公众号
    爱八卦,爱爆料。

    小编推荐

    1. 1

      双色球中奖结果(双色球中奖结果图表查询)

      大家好,小美今天来为大家解答双色球中奖结果以下问题,双色球中奖结果图表查询很多人还不知道,现在让我们一起来看看吧!1、双色球开奖规则

    2. 2

      我的世界流体管道怎么做(我的世界流体储罐怎么做)

      大家好,小豪今天来为大家解答我的世界流体管道怎么做以下问题,我的世界流体储罐怎么做很多人还不知道,现在让我们一起来看看吧!1、流体管

    3. 3

      最富有深意的字(富有深意的汉子)

      大家好,小乐今天来为大家解答最富有深意的字以下问题,富有深意的汉子很多人还不知道,现在让我们一起来看看吧!1、蕴含深意的单字:渠 、轩

    4. 4

      房屋建筑工程包括哪些项目(房屋建筑类工程)

      大家好,小娟今天来为大家解答房屋建筑工程包括哪些项目以下问题,房屋建筑类工程很多人还不知道,现在让我们一起来看看吧!1、房屋建筑工程

    5. 5

      汉译英翻译器(汉译英翻译器高级)

      大家好,小乐今天来为大家解答汉译英翻译器以下问题,汉译英翻译器高级很多人还不知道,现在让我们一起来看看吧!1、网络翻译:网络翻译app是

    6. 6

      槐树图片(洋槐树图片)

      大家好,小娟今天来为大家解答槐树图片以下问题,洋槐树图片很多人还不知道,现在让我们一起来看看吧!1、用于绿化苗木,一般3~4年才能出圃,

    7. 7

      爱奇艺会员怎么取消自动续费(腾讯会员怎么取消自动续费)

      大家好,小乐今天来为大家解答爱奇艺会员怎么取消自动续费以下问题,腾讯会员怎么取消自动续费很多人还不知道,现在让我们一起来看看吧!1、

    8. 8

      psd文件(psd文件用什么编辑)

      大家好,小豪今天来为大家解答psd文件以下问题,psd文件用什么编辑很多人还不知道,现在让我们一起来看看吧!1、Psd文件是Photoshop自身的图像格式

    Copyright 2024.依依自媒体,让大家了解更多图文资讯!