Unity_Shader高级篇_16_Unity Shader入门精要_节省带宽

本文探讨了如何在Unity中节省带宽,包括减少纹理大小和利用分辨率缩放。建议使用正方形且边长为2的整数幂的纹理,并启用mipmapping以根据距离动态选择纹理。此外,利用纹理压缩可以进一步节省带宽,但需要注意不同GPU架构的兼容性。对于性能较低的设备,考虑降低屏幕分辨率也是提升性能的有效手段。
摘要由CSDN通过智能技术生成

16.7 节省带宽
大量使用未经压缩的纹理以及使用过大的分辨率都会造成由于带宽而引发的性能瓶颈。
16.7.1 减少纹理的大小
之前提过,使用纹理图集可以帮我们减少draw call的数目,而这些纹理的大小同样是一个需要考虑的问题。需要注意的是,所有纹理的长宽比最好是正方形,而且长宽值最好是2的整数幂。这是因为有很多优化策略只有在这种时候才可以发挥最大效用。在Unity5中,即便我们导入的纹理长宽值并不是2的整数幂,Unity也会自动把长宽转换到离他最近的2的整数幂值。但我们仍然应该在制作美术资源时就把这条规则谨记在心,防止由于缩放而造成不好的影响。
除此之外,我们还应该尽可能使用多级渐远纹理技术(mipmapping)和纹理压缩。在Unity中,我们可以通过纹理导入面板来查看纹理各个导入属性。通过把纹理类型设置为Advanced,就可以自定义许多选项,例如,是否生成多级渐远纹理(mipmaps),如下图所示,当勾选了Generate Mip Maps选项后,Unity就会为同一张纹理创建出很多不同大小的小纹理,构成一个纹理金字塔。而在游戏运行中就可以根据离物体的远近,来动态选择使用哪一个纹理。这是因为,在距离物体很远的时候,就算使用精细的纹理,但肉眼也是分辨不出来的。这种时候,我们完全可以使用更小、更模糊的纹理来代替,这可以让GPU使用分辨率更小的纹理,大量节省访问的像素数目。在某些设备上,关闭多级渐远纹理往往会造成严重的性能问题。因此,除非我们确定该纹理不会发生缩放。
纹理压缩同样可以节省带宽。但对于像Android这样的平台,有很多不同架构的GPU,纹理压缩就变得有点复杂,因为不

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值