≡
导航
搜索
教程
插件
模型
模板
博客
交易
朋友
Unity 3D 游戏引擎吧
已关注 | 取消
+关注
关注:
46
帖子:
451
签到
05月05日 尚未签到
看帖
图片
精品
视频
共有回帖数
0
个
【交流】 发个合并网格的研究
只看楼主
收藏
回复
孤独的狼
等级:
下午研究了下,网上写的实在不靠谱,全特么是照搬的,我只好自己去看,然后,有那么一点点心得……
一般来说,使用相同材质的模型的各个子网格,可以合并为一个网格,以大大地减少DrawCall,如果一个模型中子网格很多并且使用不同材质,也可以合并,只不过是合并成一个渲染对象的子网格和材质列表,网格数量还是那么多,材质还是那么多,虽然DrawCall不见少不过据说可以稍微提高效率(没仔细对比过不做评论),对了,遇到这种情况别忘了砍死你家美工……
还有,使用合并,要注意的是,合并后的东西,都视为一个网格物体,也就是说,假如一个箱子在西边1km以外,另一个箱子在摄像机面前,如果你把两个箱子合并了网格并且理所当然的把1km以外的箱子隐藏了……别问我会出现什么情况,自己体会一下才深刻……
下面是针对SkinnedMeshRenderer的所有子网格都是使用相同一个材质(多个的不好比较,合并的适合不容匹配准确,所以告诉你家美工,材质还是只生一个好啊~)注意!必须所有需要合并的网格都共用同一个材质!另外MeshRenderer的合并,Unity有自带的CombineChildren,直接用就是了
合并成子网格列表和材质列表的,只需把
_r.materials = new Material[] {lmat[0]};改成_r.materials = lmat.ToArray ();
_r.sharedMesh.CombineMeshes (lcom.ToArray(),true,false);改成_r.sharedMesh.CombineMeshes (lcom.ToArray(),false,false);
上图片了,懒得打字,打出来还特么黑白的……
换装什么的,多个材质合并什么的,道理呢差不多,各位自己解决了,俺要继续加班去鸟,不送……
楼主 2015-10-28 21:26
回复
共有回帖数
0
个
回 帖
表情
图片
视频
欢迎来到本吧,您可以在此发帖和众多大咖交流学习.
选择或直接输入昵称
Tips:支持QQ截图直接粘贴
发表
登录直线网账号
自动登录
忘记密码
免费注册
本吧信息
查看详情
吧主:
mygameplay
本吧公告
优秀文章 【交流】Unity 脚本入门 个人经验及常用方法块 http://www.linecg.com/tieba/content_4292.html 大家可以看一下
我常逛的吧
我管理的吧
Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
意见反馈
|
关于直线
|
版权声明
|
会员须知