您当前的位置: 首页 >  unity

果冻喜之郎

暂无认证

  • 3浏览

    0关注

    79博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

UnityShader入门精要——Unity中的渲染优化技术(四)

果冻喜之郎 发布时间:2022-06-22 14:26:46 ,浏览量:3

节省带宽

1 减少纹理大小

  • 所有纹理的长宽比最好是正方形,且长宽值最好是2的整数幂。
  • 使用多级渐远纹理技术。

通过把纹理类型设置为Advanced, 就可以自定义许多选项,例如,是否生成多级渐远纹理(mipmaps), 当勾选了Generate Mip Maps选项后,Unity就会为同一张纹理创建出很多不同大小的小纹理,构成一个纹理金字塔。而在游戏运行中就可以根据距离物体的远近,来动态选择使用哪一个纹理。

  • 纹理压缩。

纹理压缩icon-default.png?t=M5H6http://t.csdn.cn/zK5632        利用分辨率缩放

过高的屏幕分辨率也是造成性能下降的原因之一,尤其是对于很多低端手机,除了分辨率高其他硬件条件并不尽如人意,而这恰恰是游戏性能的两个瓶颈:过大的屏幕分辨率和糟糕的GPU。因此,我们可能需要对于特定机器进行分辨率的放缩。当然,这样可能会造成游戏效果的下降,但性能和画面之间永远是个需要权衡的话题。

在Unity中设置屏幕分辨率可以直接调用Screen. SetResolution。

减少计算复杂度

1        shader的LOD技术

和模型的LOD技术类似,Shader 的LOD技术可以控制使用的Shader等级。它的原理是,只有Shader的LOD值小于某个设定的值,这个Shader才会被使用,而使用了那些超过设定值的Shader的物体将不会被渲染。

SubShader {
    Tags { 个"RenderType "="Opaque" }
    LOD 200
}

我们也可以在Unity Shader 的导入面板上看到该Shader使用的LOD值。在默认情况下,允许的LOD等级是无限大的。这意味着,任何被当前显卡支持的Shader都可以被使用。但是,在某些情况下我们可能需要去掉一些使用了复杂计算的Shader 渲染。这时,我们可以使用Shader.maximumLOD或Shader.globalMaximumLOD来设置允许的最大LOD值。Unity内置的Shader使用了不同的LOD值,例如,Diffuse的LOD为200,而Bumped Specular的LOD为400。

2        代码优化

在实现游戏效果时,我们可以选择在哪里进行某些特定的运算。通常来讲,游戏需要计算的对象、顶点和像素的数目排序是对象数

关注
打赏
1655963140
查看更多评论
立即登录/注册

微信扫码登录

0.0807s