unity手机游戏开发上的着色器优化策略

1. 将部分计算从片元着色器移到顶点着色器来计算

如果你的游戏需要在配置非常低的平台上进行流畅运行,你可以考虑牺牲一定的效果精度将部分片元着色器的内容放到顶点着色器计算。比如你可以将镜面反射的计算放到顶点着色器阶段进行计算,在在片元阶段对其进行插值。虽然会损失一定的精度,不过能带来明显的效果提升。

2. 为你的着色器增加对Vertex-lit的支持

不是所有的光照都需要进行完整的光照计算。比如一些氛围灯。你可以在主Pass的顶点阶段使用

o.vertexLights = ShadeVertexLights (v.vertex, v.normal);

这一行代码来完成对VertexLight的支持

3. 完整的使用Frame debugger来检查一遍你场景的绘制流程

你需要观察你绘制一个物体的所需的pass数量已经你的场景网格是否正确的进行了批处理batching。

还有一些外部工具可以用来检查你的渲染流程。iOS上的Xcode就自带了非常方便的frame profiler。可以极大程度的准确的让你了解你的应用的渲染耗时。



PC上有Intel GPA可以帮助我们进行检查。

需要主要的是,针对Android手机的性能检查,需要根据针对平台的硬件使用不同的检测器。

比如Android上GPU就分为了ARM Mali之类的。

7个简单的优化方法。

1. 尽量使用常数运算减少超越运算。

2. 先计算浮点型的乘法,再进行向量型的乘法。

3. 尽量不要使用discard这个指令,特别是手游上,这会打断手机上的tile based render。

4. 将不重要的计算内容放到顶点着色器上。

5. 如果不是一整个float3或者float4都参与计算,请多多使用特定的分量来计算

6. 避免在shader中根据外部数值导致的分支计算(少用if-else)

7. 根据你的render model(OpenGL 2, OpenGL 3, OpenGL ES, etc.),检查你在着色器的指令。比如ddx,ddy, discard, floor之类的指令


我们是设计师、工程师、梦想者,是您扬帆出海的私人顾问专家


相关内容:
[亚马逊开店深圳办事处地址在哪里]
[亚马逊开店深圳办事处地址在哪里]
亚马逊开店深圳办事处地址揭秘:一站式开店服务,轻松拥抱财富!各位亲爱的创业者们,你们好!今天要给大家带来一个好消息——亚马逊开店深圳办事处地址终于揭开了神秘面纱!在这里,
亚马逊开店卖翡翠怎么样?
亚马逊开店卖翡翠怎么样?
亚马逊开店卖翡翠:珠宝行业的巨大商机等你来挖掘!在炎热的夏季,一杯清凉的饮料、一本好书和一个精美的翡翠饰品,想必是很多人的首选。翡翠作为中国传统文化中的瑰宝之一,以其晶莹

TG客服:@SSjiejie — 官方频道:@SSwangluo

三生网络 © 2009-2023 超15年出海经验,跨境项目专家