Unity3D技术之优化图形性能渲染统计信息窗口浅析
2015-01-27 20:40
274 查看
为优化性能建模角色
下面是一些设计人物模型的技巧,以提供最佳渲染速度。
使用一个蒙皮网格渲染器
每个角色应该只使用一个蒙皮网格渲染器 (skinned mesh renderer)。Unity 使用可见性剔除和包围体更新优化动画,并且只有在使用一个动画组件和一个蒙皮网格渲染器结合时这些优化才会激活。在单一的网格使用两个蒙皮网格时,模型渲染的时间将花费约两倍的时间,并且使用多个网格很少能带来实际的好处。
使用尽可能少的材质
应该确保每个网格尽可能使用更少的材质数量。如果角色需要一种以上材质,唯一的原因是需要在不同的部位使用不同的渲染器(如:眼睛使用特殊渲染器)。但是,每个角色使用两种或三种材质在大部分情况下都已绰绰有余。
使用尽可能少的骨骼
一般台式机游戏每个骨骼层次通常使用 15-60 个骨骼。使用的骨骼越少,获得的性能更好。使用约 30 个骨骼即可在台式机平台上获得非常好的图画质量,移动平台上获得的的图画质量也不错。理想状态下移动设备的骨骼应保证在 30 以下,而台式机游戏也不能过多超过这一数目。
多边形数量
所使用的多边形数量取决于想要的质量以及游戏针对的平台。 对于移动设备来说,每个网格 300 – 1500 个多边形将带来很好的效果,而台式机平台的理想范围为 1500 – 4000。如果在任何特定时间游戏屏幕上都有大量角色,那么需要减少每个网格中的多边形数量。例如,Half Life 2 中的每个角色使用 2500-5000 个三角片。目前在 PS3 或 Xbox 360 上运行的 AAA
游戏中,角色通常有 5000-7000 个三角片。
正向运动 (Forward Kinematics) 和反向运动 (Inverse Kinematics) 保持分离
在导入动画时,模型的反向运动 (IK) 节点将烘焙成正向运动 (FK),因此,Unity 完全不需要 IK 节点。但是,如果将它们保存在模型,即使不会影响动画,也将导致 CPU 开销。可以按照自己的需要,在 Unity 或建模工具中删除多余的 IK 节点。理想状态下,应该在建模期间保存独立的 IK 和 FK 层级,以便在必要时轻松删除 IK 节点。
统计信息 (Statistics) 包含以下信息:
更多精彩关注狗刨学习网:http://www.gopedu.com/
下面是一些设计人物模型的技巧,以提供最佳渲染速度。
使用一个蒙皮网格渲染器
每个角色应该只使用一个蒙皮网格渲染器 (skinned mesh renderer)。Unity 使用可见性剔除和包围体更新优化动画,并且只有在使用一个动画组件和一个蒙皮网格渲染器结合时这些优化才会激活。在单一的网格使用两个蒙皮网格时,模型渲染的时间将花费约两倍的时间,并且使用多个网格很少能带来实际的好处。
使用尽可能少的材质
应该确保每个网格尽可能使用更少的材质数量。如果角色需要一种以上材质,唯一的原因是需要在不同的部位使用不同的渲染器(如:眼睛使用特殊渲染器)。但是,每个角色使用两种或三种材质在大部分情况下都已绰绰有余。
使用尽可能少的骨骼
一般台式机游戏每个骨骼层次通常使用 15-60 个骨骼。使用的骨骼越少,获得的性能更好。使用约 30 个骨骼即可在台式机平台上获得非常好的图画质量,移动平台上获得的的图画质量也不错。理想状态下移动设备的骨骼应保证在 30 以下,而台式机游戏也不能过多超过这一数目。
多边形数量
所使用的多边形数量取决于想要的质量以及游戏针对的平台。 对于移动设备来说,每个网格 300 – 1500 个多边形将带来很好的效果,而台式机平台的理想范围为 1500 – 4000。如果在任何特定时间游戏屏幕上都有大量角色,那么需要减少每个网格中的多边形数量。例如,Half Life 2 中的每个角色使用 2500-5000 个三角片。目前在 PS3 或 Xbox 360 上运行的 AAA
游戏中,角色通常有 5000-7000 个三角片。
正向运动 (Forward Kinematics) 和反向运动 (Inverse Kinematics) 保持分离
在导入动画时,模型的反向运动 (IK) 节点将烘焙成正向运动 (FK),因此,Unity 完全不需要 IK 节点。但是,如果将它们保存在模型,即使不会影响动画,也将导致 CPU 开销。可以按照自己的需要,在 Unity 或建模工具中删除多余的 IK 节点。理想状态下,应该在建模期间保存独立的 IK 和 FK 层级,以便在必要时轻松删除 IK 节点。
统计信息 (Statistics) 包含以下信息:
[align=left]每帧的时间和 FPS (Time per frame and FPS)[/align] | [align=left]处理和渲染一个游戏帧所需要的时间(及其倒数,每秒帧数)。请注意:此数量只包括帧更新和渲染游戏视图的时间;不包括在编辑器中绘制场景视图、检视器和其他仅限编辑器进程的时间。[/align] |
[align=left]绘制调用 (Draw Calls)[/align] | 应用批处理后网格绘制的总数。请注意:有些对象会被多次渲染(例如,被像素灯光照亮的物体),每次渲染都会导致一个单独的描绘调用。 |
[align=left]批处理(绘制调用)(Batched (Draw Calls))[/align] | 被添加到批处理的最初单独描绘调用数量。“批处理”是引擎试图结合多个物体渲染进行一次描绘调用,以降低 CPU 开销的过程。为确保良好的批处理,应该尽可能多地在不同物体之间共享材质。 |
[align=left]三角面 (Tris) 与顶点 (Verts)[/align] | 绘制三角形和顶点的数目。这是在低端硬件优化时最重要的事项。 |
[align=left]已使用纹理 (Used Textures)[/align] | 绘制该帧使用的纹理数及其使用的内存。 |
[align=left]渲染纹理 (Render Textures)[/align] | 渲染纹理的数量及其使用的内存。同时还将显示每帧切换的活跃渲染纹理的次数。 |
[align=left]屏幕 (Screen)[/align] | 屏幕的大小,连同其抗锯齿级别和内存使用。 |
[align=left]显存使用 (VRAM usage)[/align] | 当前显存 (VRAM) 使用的大约范围。它还显示图形卡有多少显存。 |
[align=left]顶点缓冲区对象总数 (VBO total)[/align] | 上传到图形卡的唯一网格(顶点缓冲区)的数量。各种不同的模式都将导致创建新的 VBO。在某些情况下,缩放对象会导致创建额外的 VBO。在静态批处理的情况下,数个不同对象可以潜在共享相同 VBO。 |
[align=left]可见蒙皮网格 (Visible Skinned Meshes)[/align] | 渲染蒙皮网格的数量。 |
[align=left]动画 (Animations)[/align] | 正在播放的动画数量。 |
相关文章推荐
- Unity3D - 图形性能优化:渲染统计窗口
- Unity3D - 图形性能优化:渲染统计窗口
- Unity3D技术之优化图形性能绘制调用批处理浅析
- Unity3D技术之优化图形性能绘制调用批处理浅析
- [Unity3D]图形渲染优化、渲染管线优化、图形性能优化
- [Unity3D]图形渲染优化、渲染管线优化、图形性能优化
- Unity3D:图形渲染优化、渲染管线优化、图形性能优化
- [Unity3D]图形渲染优化、渲染管线优化、图形性能优化
- [Unity3D]图形渲染优化、渲染管线优化、图形性能优化
- 游戏开发优化之路 之 Unity3D 渲染统计窗口
- 游戏开发优化之路 之 Unity3D 渲染统计窗口
- 游戏开发优化之路 之 Unity3D 渲染统计窗口
- [Unity3D]图形渲染优化、渲染管线优化、图形性能优化
- 【优化】Unity3D图形渲染优化、渲染管线优化、图形性能优化
- [Unity3D]图形渲染优化、渲染管线优化、图形性能优化
- Unity3D - 图形性能优化:帧调试器
- Unity3D 渲染统计窗口
- 性能优化——统计信息——SQLServer自动更新和自动创建统计信息选项
- Unity3D - 图形性能优化:角色建模
- Unity3D - 图形性能优化:批量draw call