Graphics Performance:CPU 优化

渲染一个物体到屏幕上,CPU 需要处理很多工作:规划灯光影响的游戏对象,设立着色器(Shader)和着色参数(Shader Parameters),

   发送绘制命令(drawing commands)到显卡驱动,准备绘制命令送到显卡。

   所有这些对象都是资源密集的使用 CPU,所以,如果有很多可见对象,例如,有 1000 个三角面。那么在 CPU 上共用一个网格体将更容易渲染,

   而不是每个网格体一个面(增加到 1000 个网格体),在 GPU 上这两种情景的成本是相似的,但在 CPU 上渲染 1000 个对象(相对于1个)极其昂贵。

   通过减少可见游戏对象的数量,去减少 CPU 的工作量:

      1.手动或者使用 Unity 的 Draw Call Batching 合并(Combine)临近物体对象到一起。

      2.通过将纹理贴图(textures )分隔到更大的纹理图集(texture atlas)中,并使用更少的材质球(materials ),以减少材质数量。

      3.少使用一些导致被多次渲染的物体,如反射(reflections),阴影(shadows ),像素光(per-pixel lights)。

   合并物体到一起,每个物体至少有几百个三角面,并为整个网格体使用一个材质球(Material )。

   注意:合并两个不共材质的对象不会带来性能上的提升。

   两个网格体不共用纹理贴图时才会要求多个材质,为了优化 CPU 的性能,确保你所合并的对象共享同一纹理贴图。

   当在正向渲染路径(Forward rendering path)中使用大量像素光,有时合并物体并不能起作用,参见光照性能优化(Lighting performance)。

猜你喜欢

转载自avi.iteye.com/blog/2345108