UDN
Search public documentation:

DesigningForMobileCH
English Translation
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3主页 > 移动设备主页 >设计针对移动设备平台的内容
UE3主页 > 粒子 & 特效 >雾特效 >设计针对移动设备平台的内容
UE3 主页 > 角色美工人员 / 环境美工人员 > 设计针对移动设备平台的内容

设计针对移动设备平台的内容


概述


本页面介绍了设计可以很好地在当代移动设备硬件上运行的内容的技巧。

性能注意事项


  • 骨架网格物体
    • 角色网格物体的多边形数量应该尽可能少,Infinity Blade的角色具有大约8千个多边形、3千个顶点。
    • 我们发现要想降低帧频率,第一个需要优化的事情就是骨架网格物体上的顶点数量。
    • 默认情况下,骨骼个数限制是75。如果您有骨骼限制,那么您可以通过使用Engine.ini文件中 [SystemSettings] 部分的 MobileBoneCount 来降低这个值。这将会降低内存使用量和CPU性能消耗。
    • 最大顶点影响数量默认是2。如果您真的需要更多,那么您可以通过修改 Engine.ini文件中 [SystemSettings] 部分的 MobileBoneWeightCount 设置来增加这个值。增加这个值将会对渲染速度造成影响。如果您把该值减小为1(可能是机器人游戏?),然后你就会看到速度的提升。
  • 描画函数调用
    • 描画函数调用的次数是非常重要的。每个材质是一个单独的描画函数调用,所以如果一个网格物体具有4个材质,那么它就有4个描画函数调用。
    • 每个网格物体也是一个单独的描画函数调用,所以要尽量地组合您的网格物体,但不要使整个网格物体尺寸太大。
    • 在移动设备上启用预计算可见性功能是非常重要的,从而降低渲染的网格物体的数量。请确保为您的所有关卡添加任何需要的预计算可见性体积。

基于每个关卡的渲染设置


雾和凸凹偏移是由一些WorldInfo(世界信息)控制的。在 View | World Properties(视图|世界属性)中,跳转到Mobile(移动设备)部分:

WorldInfo.png

从长远来看,启用雾可以改进视觉效果,但是这也会花费和其相应的渲染时间。在Fog Start (雾开始处)和End(结束处)之间的范围内网格物体的渲染速度将会降低,所以缩小这两个值的范围是有帮助的。位于那个范围内的任何网格物体,即时网格物体的一部分子那个范围内,都会在整个网格物体上运行完全的雾计算,所以一定小心注意大的网格物体(在世界空间内)。

一般,不会对比Fog Start(雾开始处)近的网格物体应用雾,Fog End(雾结束处)之后的任何对象将应用完全的雾。Fog Color(雾颜色)的Alpha(透明度)是非常重要的,因为它控制如何在Fog End之外的地方如何应用雾颜色(Alpha值为255意味着给网格物体应用纯色雾)。

Bump Offset(凸凹偏移)设置和Fog(雾)类似。要想给在移动设备属性中启用了凸凹偏移的任何材质应用偏移量,必须选中Bump Offset Enabled(凸凹偏移启用)设置项。但是,距离Bump End(凸凹结束处)很远的网格物体 不会 应用偏移。

主要区别


  • Vertex lightmaps(顶点光照贴图). 目前在移动设备平台上还不支持顶点光照贴图。
  • Gamma. 注意您的硬件计算光照所使用的空间(参照下文)。
  • Toggleable lights(可切换的光源). 不支持可切换光源的静态光照。大多数情况下都可以切换动态光源。除非您非常细心,否则您千万不要把静态光照亮的对象上的 Force Direct Light Map(强制动态光照贴图) 设置为False,因为这会导致在移动设备上产生光照失真。
  • Point Sprites(点粒子). 仅在移动设备平台上支持点粒子,其他游戏机平台或PC上还不支持。点粒子可以改进渲染性能,但是会引入各种限制(没有旋转、没有子UV)。在Cascade中,可以通过设置 "Use Mobile Point Sprite(使用移动设备点粒子)" 属性来给予每个粒子系统(而不是每个发射器)启用点粒子。

其他注意事项


  • 确保向关卡中添加lightmass重要体积。这将会加速重新构建光照的时间。

贴图


  • 移动设备上仅用了贴图动态载入功能。引用的贴图将总是完全加载的。
  • 当创建世界贴图时,您可以至多可以使用2048x2048的分辨率,但是要节约地使用它。
  • 非正方形的压缩贴图会被转换为针对iOS设备的正方形贴图。这会浪费内存,所以您应该把非-正方形贴图打包到正方形贴图中,您可以减少多出的部分,从而节约内存。
    • 如果您在游戏的DefaultLightmass.ini文件中设置bRepackLightAndShadowMapTextures为True,那么光照贴图将会重新烘焙为更加像正方形的贴图,从而节约内存。
  • 目前仅用贴图区间化功能。当所有贴图的UVs超出0..1范围,它们将卷起来。
  • 移动设备上贴图的大小必须是2的幂数。尺寸不是2的幂数的贴图将会被自动转换,然后继续使用。
  • 因为移动设备上不使用贴图图表网络,所以材质可以自动地平铺到贴图上,来保持复杂材质图表的一般外观。请参照材质平整的这个部分来获得更多信息。
  • 移动设备使用SimpleLightmaps(简单的光照贴图)(其内部没有烘焙定向光照)。简单的光照贴图具有固定的颜色缩放比例2.0,这意味着光照贴图亮度不能高于满反射贴图亮度的2倍。
    • 如果您启用了World Properties(世界属性)中 Lightmass Settings(Lightmass 设置)部分中的 "Use Normal Maps For Simple Light Maps(为简单光照贴图应用法线贴图)"项,网格物体的法线贴图将会融合到简单的光照贴图中。这将会产改进的光照贴图,但是这会当值较慢的光照构建周期,因为他必须处理额外的贴图。

Kismet


Kismet中添加了几个针对移动设备的 游戏/关卡 的功能。请参照以下的其他部分获得更加详细的介绍:

Gamma


* 移动设备平台上支持Gamma校正功能,但由于大部分移动设备的硬件限制,该功能可能会导致性能问题。当不使用gamma校正时,创建内容时可以考虑一些特殊的注意事项以补救这些缺点。

当禁用gamma校正(默认情况)时,移动设备在gamma空间内计算它们的光照而不是在线性空间中。在这个区别的背后涉及很多数学问题,但是从艺术表现上来讲这意味着当光源和贴图开始变暗时它们会变得非常暗,并且当光源和贴图开始变亮时,则变得非常亮。这也意味着颜色饱和过程非常快。

  • 这个现象的一个很好的示例是Infinity Blade中的太阳光。它几乎不是橘黄色的,但是当它射到稍微有点暗淡桃色的boss角色时,角色开始变成红色和橘黄色。为了中和这个效果,我们使得光源再变淡一些,并使得角色皮肤变成蓝色,以便最终呈现出暗淡苍白的感觉。
  • 由于移动设备硬件上的颜色饱和过程很快,所以可以使用一些技巧来时的光照变得更好。在以下屏幕截图中,当从比如Z正面向的最大极限处渲染时使用了一些技巧。
ZFacing.png
  • Epic的产品中使用的一些技巧是变换色调或应用一个颜色渐变映射及为它设置柔和光照。