This page has been translated automatically.
编程
Fundamentals
Setting Up Development Environment
Usage Examples
UnigineScript
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine and Tools
GUI
Double Precision Coordinates
应用程序接口
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
CIGI Client Plugin
Rendering-Related Classes
注意! 这个版本的文档是过时的,因为它描述了一个较老的SDK版本!请切换到最新SDK版本的文档。
注意! 这个版本的文档描述了一个不再受支持的旧SDK版本!请升级到最新的SDK版本。

NormalMapper(法线映射)

警告
ResourceEditor tool is deprecated and no longer supported. We can't guarantee the stable work of the tool.

法线映射是一款通用型工具,可用来一次性快速生成许多基于高度的纹理。

  • 一款高质量 法线图
    注意
    为了增加生成的精确度和灵活性,使用cage mesh来控制光线方向。
  • 一款视差图
  • 一款用于曲面细分的高度图
  • 一款额外的表面纹理用来帮助美工选择及绘制独立的表面。

基于对应的高聚模型,创建这些纹理将其用于低聚模型。渲染时被运用到低聚网格上的最终贴图会对其外貌作出极大的改善使其与高密版本相似。

NormalMapper module

与通常使用漫反射纹理的基于高度贴图的法线贴图生成器相比,主要的优势是对法线的失真进行补偿。在最终法线得到应用之后,最终的法线会与高聚模型使用的法线一样,补偿操作也会以这种方式进行。使用2D法线贴图生成器永远无法实现这种效果。

用法

要创建法线图和视差图,高度图和/或表面纹理,您需要完成以下步骤:

  1. 通过Load Low添加低聚网格。
  2. 通过Load High添加高聚网格。
  3. 在ResourceEditor窗口的右边设置法线映射选项
  4. 如果除开法线图,还要生成其它纹理,指定ParallaxHeight 和/或 Surface 选项。
  5. 若是要在一个网格上对视差高度贴图进行烘焙 :
    • Level 设置为 0 从而对真实的最大高度位移进行烘焙。
    • Clamp 设置为 0这样就不会对所有高度进行固定。
    注意
    如果数个独立的网格都为某个物体对象的一部分并且有必要将它们相对于彼此的位移进行烘焙,点击此处参看具体信息
  6. 点击 Run开始生成过程。
  7. 切换到Normal Map模式检查生成的法线图。
  8. 点击 Save 保存所有检查过的纹理。
警告
法线映射被设计为仅能在第一个UV平铺区域内进行工作(纹理坐标[0;1])。 多个UV会被忽略。

显示模式

法线贴图有两种查看窗格。可在每个窗格左上角的下拉列表中对显示模式进行切换:

  • Mesh 用于显示 低聚网格
  • Tangent 用来显示用于低聚网格顶点的切空间 (U 使用红色, V 使用绿色, 法向量使用蓝色) 。
  • Normal Map 用于显示生成的法线贴图,此法线图被应用到低聚网格中。如果不存在加载的法线贴图,那么默认情况下会显示出一个空的单通道(红色)贴图。
  • TexCoord 0 根据第一个 UV 集对生成的法线图进行显示。
  • TexCoord 1用来显示 第二个 UV 集。基于第二个UV集无法生成法线图。其仅用于观察的目的。
  • Cage Mesh 用来显示笼状网格
  • High Mesh 用来显示高聚网格

文件选项

文件选项集显示在窗口的右边:

Load Low 加载低聚网格,法线图会为此网格得到烘焙。

Low-poly mesh

低聚网格
注意
可通过 Ctrl+O组合键加载低聚网格。
Reload 重新加载网格/法线贴图。
Clear 清除网格/法线贴图。
Load High 加载高聚网格,基于此网格会对法线贴图进行烘焙。

High-poly mesh

高聚网格
注意
可通过Ctrl+H组合键加载高聚网格。
Load Cage 加载笼状网格。这种网格可以对法线贴图进行更清晰的烘焙。

如果没有笼状网格,光线会从低聚网格投射到高聚网格(沿着低聚网格法线的两个方向进行投射)。这样做能决定高聚网格中(完整几何可以对每个顶点的法线进行计算)的哪些点与低聚网格中的点相对应。无论什么点最先被横切,它都将被烘焙到贴图中。然而如果在高聚模型或重叠表面内有复杂的几何细节,那么说明首个相遇点不合适。离低聚网格最近的底面会被烘焙到贴图中,而不是对外围面进行烘焙。

可使用笼状来避免这种情况的发生。在加载时,会对来自笼状的射线进行追踪而不对来自低聚的射线进行追踪。

  • 笼状网格通常为低聚网格,显得稍微有些浮肿比其真实尺寸略大,覆盖了高聚和低聚网格(参看下图)。虽然即使是一个简单的盒子也会这样做。
  • 仅在发现的复杂几何细节面上。

Tracing of rays with and without a Cage

如果没有笼状网格,就会从低聚网格处对光线进行追踪。如果有笼状网格,就会从笼状网格处对光线进行追踪。

为上文所述进行举例说明(本节中):同时有一个低聚网格(一个简单的平面)和一个高聚网格,在高聚网格的表面有许多细节之处。我们也可以在低聚网格和高聚网格上加载一个笼子。

如果没有笼状网格,便会从低聚面(从底面开始)开始对光线进行追踪,所有的细节处会被忽略。如果有笼状网格,便会从笼状表面(从顶部开始)开始对光线进行追踪,所有的细节处会得到适当的烘焙成第一个相遇的表面。
Without a CageWith a Cage
无笼状的法线映射
有笼状的法线映射
注意
可通过Ctrl+C组合键来加载笼状网格
Normal Map 加载额外的法线图。生成的法线图会与加载的法线图结合在一起。使用此选项可很容易实现凹凸效果。额外的法线图会在High mesh模式中显示,即运用到高聚模型。

Additional normal map

额外的法线图
注意
可通过Ctrl+N组合键加载法线图。
Reload All 将所有资源重新加载。
注意
可通过 Ctrl+R组合键重新加载所有资源。

可视化选项

可视化选项集:

Info 展示当前视窗口中的网格信息。这种数据会以许多表面,顶点和三角形的形式得以显示。点击Run以后,会显示介于低聚网格和高聚网格之间的最大真正位移值。
注意
可通过I键启用此选项。
Compass 在视窗的右上角切换XYZ指南针。
注意
可通过C键启用此选项。
Triangles 切换显示基础网格的平面。
注意
可通过 T键启用此选项。

法线映射选项

法线映射选项集:

Level and Clamp

Level and Clamp

Level. 法线映射会自动将位移范围进行规范化处理,其变化范围从01 (用于8位纹理的255个层级)。单元内哪种高度等于最大值1由Level参数进行控制。此参数上的所有高度会被切断并且不会被烘焙到纹理中。
Level可用来创建用于数个网格上的纹理,相对来说这些网格具有相同的高度规模。当某个物体被表现为使用不同纹理的单独网格时,这就显得很重要。

  • 从0开始在单位内对Level进行测量(对于高度贴图为两个方向;而对于视差图则为一个方向)。所有在此范围之外的高度都将被切断。Level的变化不会影响到纹理中的 0值:
    • 在视差图中,0(数值比低聚表面高)将仍然是相同的白色。仅变化范围。
    • 在高度贴图中,0位灰色,此颜色等于128。Level不会对此颜色值进行更改。其仅影响到负位移(深灰色变化范围从0127)和正位移(浅灰色变化范围从128255)。
  • 数值为0时, 低聚网格与高聚网格之间真正的最大高度位移会被作为纯纹理使用 (或纯 ,取决于其是否在低聚网格的上面或下面)。
  • Level越高,剩下用于真实代表高度范围的层级就越少。这样最终的纹理就没有对比效果。强烈推荐将Level值设置地足够低。
  • 一旦法线映射 运行之后
  • 低聚网格与高聚网格之间真正的位移会在Info中进行显示。使用不同的纹理尺寸时,位移会发生轻微的变化,这是由于不同的采样率所造成。真实的位移值可作为参考点设置在Level上。

例如,如果高度贴图应基于采高聚合低聚网格而得以创建:

Base meshes for a height map

level的变化可导致下列情况的发生。请注意:中间图像的0level不会发生变化,仅对峰巅处进行不同的烘焙:

Seamless 对UV缝隙进行优化(推荐用于曲面细分高度贴图)。此选项对缝隙每侧上对应的像素颜色进行平衡处理。仅一个像素单位的边界会受到影响。
Use 16-bit 使用16位精度创建一副法线贴图。其具有更好的品质,但尺寸会更大。如果未勾选此选项,就使用8位精度创建法线贴图。
Two Sided 使用双面交叉点。
Parallax 创建视窗贴图(在名称中使用 _p 后缀)。基于高聚模型对视差位移进行计算。

白色代表无视差位移;黑色代表用于像素的最大减弱程度(根据设置的Level)。

Parallax map

生成的曲面细分高度贴图
Height 创建一副用于曲面细分的高度贴图(在名称中使用_h后缀)。基于高聚模型对高度位移进行计算。

黑色代表无曲面细分位移;白色代表用于顶点的最大仰角。(根据设置的Level)。

Tessellation height map

生成的曲面细分高度贴图
Surface 使用随机彩色表面创建一种纹理(在名称中使用_s 后缀)。此纹理并不会在Unigine引擎中得到使用,其仅用于美工使用。使用才纹理能很方便地在2D图形编辑器中选择单独表面的轮廓。

Surfaces texture

生成的表面纹理
Size 生成纹理的尺寸。
AA 用于法线贴图输出的抗锯齿模式。如使用此模式,会占用额外的内存。
数值越高,法线贴图就越柔软效果越模糊。

Without AAWith AA
抗锯齿 = 0x
抗锯齿 = 32x
LevelClamp参数可以控制经计算得出的位移值被烘焙到纹理中的方式。此选项对视差高度 贴图起作用。 Level
Clamp
Level = 0。真实的位移作为最大值得以使用。
High Level。
Low Level。高度被切断。

Clamp 参数可用来切断位移值,此值在指定的线上处于设定的Level 范围内。 (参看以上 说明 )。

  • 值为0时,无嵌位发生。
  • 仅当Clamp参数的值比Level值低时,Clamp参数才起作用。 相对于规范的位移值最大高度(纹理坐标内的1)会保持相同,而clamping范围外的高度会被切断。
在对纹理进行烘焙以便能用于数个网格且规范化的Level不发生变化时,可用clamp将太高的位移切断。

Clamp is lower than LevelClamp is lower that Level
Clamp 比Level低。
更低的Clamp。对更多的高度进行了切断处理。

怎样将LevelClamp 参数用于对数种网格的烘焙:

  1. 加载第一个低聚合高聚网格。
  2. 测试运行 计算 (若要测试速度更快,就选择最小的纹理尺寸)。请注意介于低聚和高聚之间的最大位移值是:

    Real maximum displacement

  3. 为其它所有网格重复相同的动作。
  4. 使用最高的位移值选择网格。
    • Level的值设置为一个靠近真实位移的值,例如 9.6个单位。
    • 设置所需的纹理尺寸
    • 点击 Run
  5. 对于其它所有网格,设置相同的Level,例如9.6
  6. 对于所有的网格而言,它们都要求夹钳不必要的高度,将Clamp的值设置为低于Level的值,例如设置为8个单位。此高度上的一切事物都不会被烘焙到纹理中。
Extrude 用于所有生成纹理像素中的驱逐绘画。此选项会在每个UV外壳的轮廓周围添加彩色像素。颜色值被简单地从附近像素中拷贝出来。其可用来在缝隙连接处对可能出现的变黑效果进行处理。
  • 纹理尺寸 越小,沿着缝隙的可见黑暗处就越多。驱逐绘画参数值的增加可在此种情况中起到帮助作用。

Extrusion

驱逐绘画

No pixel extrusionWith pixel extrusion
驱逐绘画 = 0 像素
驱逐绘画 = 4 像素
Run 创建纹理:法线图及用于检测选项的其它所有图(视差图高度图 以及 表面纹理)。应用到低聚网格上的法线图可在Normal map模式中查看。 Save 保存所创建的纹理。在文件名末尾加上_n的后缀名从而指定法线图的名称,其它纹理(已勾选的)的名称也会相应地进行命名:
注意
所有这些纹理会被保存为与法线图相同的格式

对于保存操作有数种选项:

  • ATI2 Compression - 将纹理压缩成ATI2 格式。
  • Two Component - 将法线图保存为双组件 (RG)纹理。双组件贴图并不用于将来的编辑:在对其进行保存时,可在引擎中加载及使用此贴图。双组件贴图也可被保存为.jpg 格式。

Three component normal mapTwo component normal map
三种组件的法线图
两种组件的法线图
注意
可通过 Ctrl+S组合键对网格进行保存。

支持的文件格式

支持的几何数据格式:

  • Unigine 网格(.mesh)
  • Unigine 蒙皮网格(.smesh)
  • 波前(.obj)
  • 可拉大风 (.dae)

支持的纹理格式:

  • Targa (.tga)
  • 便携式网络图像格式(.png)
  • JPEG (.jpg)
  • Photoshop 文档 (.psd)
  • 直接绘制表面 (.dds)
  • 便携式像素图 (.ppm)
  • 便携式Graymap (.pgm)
  • 高度动态范围(.hdr)
  • Silicon 图形图像 (.sgi)

热键

  • Ctrl+O — 加载一种 低聚网格
  • Ctrl+H — 加载一种 高聚网格
  • Ctrl+C — 加载一种笼状网格
  • Ctrl+N — 加载一种额外的 法线贴图
  • Ctrl+R重新加载所有资源。
  • Ctrl+S — 如果指定,保存生成的法线图和其它纹理。
  • I — 切换网格信息。
  • C — 切换XYZ指南针。
  • T — 切换基础网格,表面三角形或线框。
  • F1 — 显示帮助窗口。
最新更新: 2017-12-21
Build: ()