暂时剔除物体或取消渲染来提高游戏运行效率

做手机游戏开发没有做PC那么能放得开手,虽说强大的智能机时代已近到来,但是小块头毕竟是小块头,很多东西还是抗不住的。

前不久做了一个测试,测试机有:HTC G7、三星I9000、三星I9XXX(不记得了)、HTC G10、里程碑2;

在摄像机照射三角面数这一项的测试上,如果想跑流畅(12帧以上)

HTC G7 只能跑2W面,其他几个勉强能撑到5W。当然,这跟照射器的选择也有很大的关系。

可能当你听到5W这个数字的时候,觉得它已经很大,可是在场景制作美工同学眼里,这真的太难了。

因为说是有5W个面的峰值,但是策划要摆放怪物,N个玩家可能同时出现在一个画面中,玩家还要放技能特效,等等。

把这5W个面分到美工同学手中的时候,只剩下1W-1.5W了。

靠这个数字去做一个很绚丽的3D场景,几乎没有可能,传说中的坑爹。。。


于是乎,暂时剔除物体或取消渲染就开始发挥作用了。

就像GameLoft的《混沌与秩序》一样,它们对场景做的优化处理就很好的利用到了这一点。

比如树木、房屋在50米外是不可见的,

怪物玩家在30米外是不可见的,

火把等粒子效果在20米外是不可见的,

等等。


Unity中也可以简单的实现,那就是active 和 render。

设置剔除一个物体:

gameObject.active = false;  // 不可见,可以说是不存在于场景中了

如果想让其子物体都不可见,则要这样:

gameObject.SetActiveResursively(false);


设置不渲染:

gameObject.render.enabled = false;  // 不可见,但是还存在于场景中,还可以碰撞


当然,如果直接凭空的让物体消失或出现,感觉非常突兀,这时候就要用到了apha值的变化,实现渐隐的效果。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值