• 他山之石_1


    一。粒子
    1. 池化粒子发射器:了解粒子发射器的原理
    2. 缩放 + Color(不用色彩图片,动态更换色彩)
    ETC1(RGB) + ETC1(A) + Color + 缩放
    3. Mesh代替粒子特效: 动态合批,优化DrawCall
    4. 材质合并(atlas对应数据放到顶点数据中)
    5. 粒子特效也可以做 LOD group
    6. 在效果差不多的情况下,以最优方式实现

    7. 设置粒子特效的 render中的order in layer: 便于动态合批,但缺点是,order不同粒子重叠时可能前后关系错乱。

    http://blog.csdn.net/meegomeego/article/details/42060389

    [好1]: 粒子系统的消耗 > 粒子数的消耗:尽量减少粒子系统的个数。(在粒子总数一定的情况下,粒子系统的个数越少越好)


    需要注意的:
    a. 透明片的屏幕占比+堆叠层数
    b. 粒子上的动画
    c. 粒子上的顶点数据
    d. Mesh


    二。设置
    1. 模型反锯齿设置:Editor--->Quality--->Anti Aliasing=Dissbled
    2. 多线程渲染:开
    3. 重直同步:关
    4. Quality中的:最多像素灯个数 + BlendWeights
    5. 贴图的: readable/writeable mipMap
    6. Mesh: readable/writeable 是否支持法线
    7. 是否支持网格优化


    三。压力分频处理
    1. 大量的Create可以分帧处理。
    2. 计算量大的分帧处理,或缓存,或预计算。
    3. 看CPU来做还是GPU来做。


    四。异步
    1. 场景分块加载:
    2. ReSoure加载是同步操作,会卡。

    五。GameObject数担
    1. 分类管理
    2. 分layer管理

    3. 对象池:可以给prefab设置对象池上限,超出部分用默认preab. 来控制内存。

    六。 CPU GPU分工
    CPU--->叠多个材质,
    GPU--->shader着色
    1. Cpu: 善长串行:if else 合批 渲染队列
    2. Gpu: 带宽 顶点处理 片元处理
    3. InStaince: 需要OpenGL3.0(2.0貌似可以通过某些方式实现)


    七。 物理
    1. Time: Fixupdate调用间隔时间
    2. 物理碰撞:a. 设置 b.碰撞体


    八。MipMap
    深入了解下:影响mipMap的距离具体是多少


    九。UI
    1. NGUI: UIDrawCall
    2. UIPanel: 不要嵌套(??)
    3. 使用完DestroyUI. (重新加载不会太卡)
    4. UI上的模型异步加载

    十. 动画

    1。动画消隐被禁用 - 即使物体在屏幕外也动画。

    objAnimation.cullingType != AnimationCullingType.AlwaysAnimate;

    2. 减少骨胳数量 + AnimationClip数量。

       动画(影响因素) = Clip的动画曲线 * 骨数 * Clip数量

    3.勾选,动画导入设置里的:Optimize Game Objects

    十一。协程

    十二。耗电

          一般都是CPU的问题。

    十三。光

    1. 可以不用灯,全靠shader实现,避免实时光照

    2. 环境光 + 自发光 + 漫反射 + 高光

    3. CubMap: 套在人物模型上

    十四。规范(有规有距,方便管理和维护。特别是到了项目后期)

    1. 命名规范+代码规范: 貌似腾讯有标准,也有专业检测工具。

        --多用组合,少用继承。

        --字典少用enmu做key

        --loading时加载+instance,避免运行时Instance

        --物体出屏幕外不可见+取消逻辑更新

        --不用Tween插件,自已Update中来做。(可能看情况,比较适用于Tween实现不了的动画,或自已简单封装缓动函数)

    十五:配置化:

    1. 方例发挥策划及美术的想像力。结省开发成本。

    2. 迟可能达到最优化

    十六:分辨率

    1.  将游戏渲染在一个小的 RenderTexture 上,之后绘制在屏幕上,减少像素填充率。 (貌似通过设置屏幕分辨率实现)

    十七:Shader工具

    1. Shader Forge  

    2. ASE ??


    一百。其它
    1. SetActive(bool) ---->变更为设置 位置

    优化方法:多协调 是策划 + 美术 + 程序 共同的结果

    策划:效果可接受
    美术:效果可接受 + 实现方法
    程序:性能限制 + 实现方法

  • 相关阅读:
    Typora的使用
    selenium中webdriver提供的八大定位元素方法
    JAVA的Data和Timestamp的相互转换
    Jmeter设置参数作为断言依据
    Springboot +Poi 导入Excel表格
    window.location.reload();
    带参数的链接跳转
    Layui结束时间不能小于开始时间
    后台返回数据渲染Layui表格
    Layui中layedit模板的使用
  • 原文地址:https://www.cnblogs.com/javalzy/p/6943768.html
Copyright © 2020-2023  润新知