• unity 静态合批


    想做这样一个优化

    因为cmd drawcall太多 materials太多导致 实际上只是贴图不一样

    想用texture2DArray把他们合起来

    texArray这步功能倒是很快就好了

    但是从framedebugger看一直没有合起来 报的error是objects belong to different static batches

    unity有一个枚举会把不能合批的原因列出来 这是其中之一

    我就跟进去看。。。。看的我就很lost

    代码里的意思是 smallMeshIndex不一样不能合并 这个东西其实就是meshID

    但我从编辑器里能看到他俩已经是一个Mesh了 顶点数都是合过的 

    后来意识到 是我做的另一件事情导致他们不能合批的 一测确实如此

    unity 静态合批 功能是好的 前提是mesh必须静态的 不能运行时对mesh有更改

    我为了做texArray的测试 在运行时 拿了mesh 改了uv  加了对texArray的索引 导致不能合批 去掉就变成一个drawcall了

    而修正uv 这步 正确的工作流也应该是 编辑时 而不是运行时 所以目测这条路可行 开心

    想了一下 我准备写个编辑器 解决objects have different materials(shader一样 只有贴图不一样 其它ubo不一样的 用一块buffer用instance也能解决 这个后期迭代了)

    顺便其实能把mesh一起合了 不然unity运行时做静态合批 有这部分新建geometry的memory开销 好棒

    https://i.cnblogs.com/EditPosts.aspx?postid=10557793&update=1

    做出来了能出来lightmap没啥问题 建议location 局部使用

  • 相关阅读:
    webpack初体验
    Sql server 数据库 单用户切换为多用户
    JAVA加密
    TransactionScrope 2
    TransactionScrope
    ORA-14450
    C#.NET 各种连接字符串
    如何获取得到新浪的授权?
    加载JSON文件,Plist文件
    屏幕截图
  • 原文地址:https://www.cnblogs.com/minggoddess/p/10521754.html
Copyright © 2020-2023  润新知