|
属性
说明
Imposter Static Mesh这是您要为其创建 imposter 的静态网格物体。Imposter Material Array
这是一个阵列,以便您可以为具有超过一个材质 ID 的网格物体的各个索引指定材质。
您需要针对 imposter 材质阵列中的材质,在法线贴图输入上使用设置为 “Tangent to Local” 的 Transform 节点。因为我们想要以摄像机 可能 朝向的方向视角来呈现世界法线,而非全部使用该自顶向下方法强制采用的相同摄像机。如果没有法线贴图,则只需使用 0,0,1 转换的 Tangent->World。
Frames around Z此设置决定 imposter 将存储多少个围绕 Z 轴的帧。数值越高,运动期间最终效果中的“跳帧”越少,但会导致贴图分辨率降低或需要使用更大的纹理尺寸。Mesh Scale如果最终的 imposter sprite 材质中存在任何边缘 bleeding 问题,此项允许您稍微缩小网格物体。此项仅在少数情况中必要,即网格物体与其球体边界极其匹配,从而导致网格物体紧贴各个网格单元的边缘。仅在必要时调整,因为缩放比例越小,损失的分辨率越多。Aspect Ratio 1 by此设置允许您创建不一致的贴图。处于默认 1 状态时,imposter 网格为正方形。如果设置为 2,则宽高比为 2:1;如果设置为 4,则为 4:1,以此类推。建议为 “Full 3D Imposters” 保留正方形的宽高比,仅在使用 “Single Rotation Axis” 模式时修改。注意:我在键入本文档时才发现此设置资源文件名称不正确。不久将为此设置提供更加贴切的资源文件名称。Imposter Enum一个下拉列表,可让您从两种不同的 Imposter 预制类型中选择其一:“Full 3D Imposters” 和 “Single Rotation Axis”。“Full 3D Imposters” 显示包括上下方向的所有角度。“Single Rotation Axis” 只围绕 Z 轴旋转网格物体,特别适合位于水平面上的物体的远景 LOD,如树木、大型建筑或一般的天空盒元素。“Single Rotation Axis” 可让您更好地利用贴图记忆库,因为没有必要存储许多内容。Single Rotation Axis rotation此设置是仅在选择了 “Single Rotation Axis” 选项时使用的起始旋转设置。该设置可让您确定与摄像机相关的网格物体的方向。
网格物体法线
若通过网格物体创建 imposter,则网格物体上的材质将需要进行微调。
1.打开要从其中创建 imposter 的静态网格物体的材质。1.选择材质节点。1.禁用 Tangent Space Normal。1.在法线贴图/计算和材质节点上的 “Normal” 输入针之间,将 Transform 节点添加到材质图表中。
如果没有法线贴图或法线计算,则添加设置为 0,0,1 (Blue) 的向量 3 并改用该项。
1.在 “Transform” 节点上,将 “Source” 属性设置为 “Tangent”。1.在 “Transform” 节点上,将 “Destination” 属性设置为 “Local”。
渲染 Imposter
使用所需数量的帧配置了 imposter 之后,渲染 imposter 贴图的步骤与最初的“贴砖材质”步骤相同。
在 Capture Settings 设置下选择所需的缓冲目标;确保已打开 高分辨率屏幕截图 窗口并启用了 包含缓冲器可视化目标 选项;在 新窗口 中 运行 游戏,使用 ~ 键调出 控制台 并在控制台中键入“ke * rendertextures”,然后按回车键。
您将收到一条弹出消息,表示图像已保存,该消息其实是指向文件夹位置的可单击链接。如果您不能及时单击该链接,则可以在以下路径中找到保存的纹理:
\YourProject\Saved\Screenshots\Windows\
如果法线贴图由大部分蓝色和部分亮红色/绿色构成,则可能在将静态网格物体材质的设置从 “Tangent” 更改为 “Local” 空间法线时,跳过了其中某个步骤。
导入 Imposter
使用虚幻引擎 4 中的 “High Resolution Screen Shot” 功能导出 .bmp 文件后,您需要将其加载到图像编辑工具中,并将其另存为 .tga 文件,然后即可像其他贴图一样将其导入。
调整法线贴图纹理
您需要更改法线贴图纹理上的一些属性:
在 内容浏览器 中,双击 法线贴图即可打开它。
禁用 “sRGB” 属性。
将 Compression Settings 设置为 TC_Default</code>。
保存纹理。
创建 Imposter 材质
现在有了一系列经过渲染的 imposter 图像。要利用这些贴图,您需要创建采用 “ImposterUVs” 材质函数的材质,方法是单击函数并将其从 内容浏览器 拖入 Imposter 材质图表:
此函数设置材质的 UV、法线和 WorldPositionOffset。您需要定义一些参数,以匹配您的 Imposter 设置:
输入针
说明
Frames X (S)此项为 imposter 在 X 轴上的帧数。例如,如果您指定围绕 Z 轴的旋转为 16 个,则 X 轴上具有 16 帧。Fixed Z (B)使用设置为 “Single Rotation Axis” 的 imposter 时,只应设置为 True 的 Boolean 选项。这使计算的成本更低。Frames Y (S)此项为 Y 轴上的帧数。对于正方形宽高比,此项应始终与 Y 轴的帧匹配。如果您输入的宽高比为 2:1,则 Y 轴帧数应为 X 轴帧数的一半。SpriteWidth (S)生成的 sprite 的宽度。SpriteHeight (S)生成的 sprite 的高度。Position (V3)默认为 “AbsoluteWorldPosition”,而且大部分情况下不应更改。如果要使函数以怪异的角度显示 imposter 或要使用自定义数据表示位置,则可使用该项。VertexShaderZrotation (S)该项为仅限调试设置。其效果是将 sprite 的 Z 轴旋转分解成一组不相连的步骤,而非在整个范围内流畅地插入。可以防止因 imposter 的预制方式而使跳帧更严重。若采用流畅的精灵插入,imposter 在每一帧过渡时似乎旋转过度。当值等于 1 时,此问题得到修正。您可以将值设置为 0,以查看禁用时的外观形态。上述 imposter 网格物体的大部分区域显而易见。Rotation (S)Imposter sprite 可以围绕指定轴旋转。可以让您在世界中随机旋转同一 imposter 的多个副本,从而使其外观不一样。Rotation Axis (V3)此设置目前已禁用。旋转轴始终默认为 0,0,1 或围绕 Z 轴。对任何旋转轴的支持尝试存在某些问题,但会在未来增加此类支持。Normals (V3)即法线贴图。其效果是旋转法线,以使其匹配指定的旋转值。
输出针
说明
TransformedNormals包含已变形的法线贴图,连接至材质 “Normal” 输入。WorldPositionOffset包含正对着精灵的摄像机的 WPO,连接至 “World Position Offset” 输入。UVsImposter 纹理的 UV。放置在材质中的任何 imposter 纹理应将此输出作为 UV。其中包含将要出现的法线贴图,以循环回 “Normals” 输入中的函数。Phase2UVs该尚试验性功能未完全实现。该功能可以在前一相位和/或后一相位具有两个或更多贴图查找,并在贴图查找之间进行淡化/溶解以减少跳帧。
您的材质如下所示:
您可能会注意到连接法线贴图输入针的 Constant Bias Scale 节点。该节点用于重新平衡世界空间法线的颜色。
完整 Imposter 示例:
<img alt="11.jpg[/img] src="https://docs.unrealengine.com/latest/images/Engine/Content/Tools/RenderToTextureTools/3/11.jpg[/img]
单一旋转轴 Imposter 示例:
<img alt="13.jpg[/img] src="https://docs.unrealengine.com/latest/images/Engine/Content/Tools/RenderToTextureTools/3/13.jpg[/img]
|
|