zoukankan      html  css  js  c++  java
  • unity 合并skinnedMeshRenderer中遇到的一个大坑

    将多个skinnedMeshRenderer合并成一个skinnedMeshRenderer,主要涉及的mesh合并、骨骼列表合并、重定向顶点骨骼索引。其中重定向顶点骨骼索引只是通过加偏值即可完成,所以总体来说并无耗时操作。但合并一个由十几个skinnedMeshRenderer组成,总顶点数不足一万,总骨骼数150的人物模型,在PC上却花费一秒多,而在普通安卓手机上花费7秒多。

    经过下面一步非常简单的优化以后,合并同样的模型在同样手机上则可瞬间完成。

        for(int x=0;x<smrenderer.sharedMesh.boneWeights.Length ;x++)
                {   。。。}

    改成

        BoneWeight [] boneWs = smrenderer.sharedMesh.boneWeights;
                int bl = boneWs.Length;
                for(int x=0;x<bl; x++)
                {   。。。}

    以及

        for(int x=0;x<smrenderer.bones.Length;x++)
                {。。。}

    改成

        int mbl = myBons.Length;
                for(int x=0;x<mbl;x++)
                {。。。}

    第一处改动是主要的。

  • 相关阅读:
    深入理解 RPC
    Redis 深度历险
    tomcat性能优化
    高性能IO之Reactor模式
    常用sql语句整理[SQL Server]
    SQLite遇到的关于x64、x86问题
    C#和Javascript的try…catch…finally的一点差别
    C#写Windows服务
    Windows_7_休眠按钮没有了_如何找回?
    XmlReader读取XML
  • 原文地址:https://www.cnblogs.com/wantnon/p/5509805.html
Copyright © 2011-2022 走看看