NormalMapper(法线映射)
法线映射是一款通用型工具,可用来一次性快速生成许多基于高度的纹理。
基于对应的高聚模型,创建这些纹理将其用于低聚模型。渲染时被运用到低聚网格上的最终贴图会对其外貌作出极大的改善使其与高密版本相似。
与通常使用漫反射纹理的基于高度贴图的法线贴图生成器相比,主要的优势是对法线的失真进行补偿。在最终法线得到应用之后,最终的法线会与高聚模型使用的法线一样,补偿操作也会以这种方式进行。使用2D法线贴图生成器永远无法实现这种效果。
用法#
要创建法线图和视差图,高度图和/或表面纹理,您需要完成以下步骤:
- 通过Load Low添加低聚网格。
- 通过Load High添加高聚网格。
- 在ResourceEditor窗口的右边设置法线映射选项 。
- 如果除开法线图,还要生成其它纹理,指定Parallax, Height 和/或 Surface 选项。
- 若是要在一个网格上对视差 和 高度贴图进行烘焙 :
如果数个独立的网格都为某个物体对象的一部分并且有必要将它们相对于彼此的位移进行烘焙,点击此处参看具体信息。
- 点击 Run开始生成过程。
- 切换到Normal Map模式检查生成的法线图。
- 点击 Save 保存所有检查过的纹理。
显示模式#
法线贴图有两种查看窗格。可在每个窗格左上角的下拉列表中对显示模式进行切换:
文件选项#
文件选项集显示在窗口的右边:
Load Low | 加载低聚网格,法线图会为此网格得到烘焙。
低聚网格 可通过 Ctrl+O组合键加载低聚网格。 |
||||||
---|---|---|---|---|---|---|---|
Reload | 重新加载网格/法线贴图。 | ||||||
Clear | 清除网格/法线贴图。 | ||||||
Load High | 加载高聚网格,基于此网格会对法线贴图进行烘焙。
高聚网格 可通过Ctrl+H组合键加载高聚网格。 |
||||||
Load Cage | 加载笼状网格。这种网格可以对法线贴图进行更清晰的烘焙。
如果没有笼状网格,光线会从低聚网格投射到高聚网格(沿着低聚网格法线的两个方向进行投射)。这样做能决定高聚网格中(完整几何可以对每个顶点的法线进行计算)的哪些点与低聚网格中的点相对应。无论什么点最先被横切,它都将被烘焙到贴图中。然而如果在高聚模型或重叠表面内有复杂的几何细节,那么说明首个相遇点不合适。离低聚网格最近的底面会被烘焙到贴图中,而不是对外围面进行烘焙。 可使用笼状来避免这种情况的发生。在加载时,会对来自笼状的射线进行追踪而不对来自低聚的射线进行追踪。
如果没有笼状网格,就会从低聚网格处对光线进行追踪。如果有笼状网格,就会从笼状网格处对光线进行追踪。 为上文所述进行举例说明(本节中):同时有一个低聚网格(一个简单的平面)和一个高聚网格,在高聚网格的表面有许多细节之处。我们也可以在低聚网格和高聚网格上加载一个笼子。
可通过Ctrl+C组合键来加载笼状网格 |
||||||
Normal Map | 加载额外的法线图。生成的法线图会与加载的法线图结合在一起。使用此选项可很容易实现凹凸效果。额外的法线图会在High mesh模式中显示,即运用到高聚模型。
额外的法线图 可通过Ctrl+N组合键加载法线图。 |
||||||
Reload All | 将所有资源重新加载。
可通过 Ctrl+R组合键重新加载所有资源。 |
可视化选项#
可视化选项集:
Info | 展示当前视窗口中的网格信息。这种数据会以许多表面,顶点和三角形的形式得以显示。点击Run以后,会显示介于低聚网格和高聚网格之间的最大真正位移值。
可通过I键启用此选项。 |
---|---|
Compass | 在视窗的右上角切换XYZ指南针。
可通过C键启用此选项。 |
Triangles | 切换显示基础网格的平面。
可通过 T键启用此选项。 |
法线映射选项#
法线映射选项集:
Seamless | 对UV缝隙进行优化(推荐用于曲面细分高度贴图)。此选项对缝隙每侧上对应的像素颜色进行平衡处理。仅一个像素单位的边界会受到影响。 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Use 16-bit | 使用16位精度创建一副法线贴图。其具有更好的品质,但尺寸会更大。如果未勾选此选项,就使用8位精度创建法线贴图。 | ||||||||||
Two Sided | 使用双面交叉点。 | ||||||||||
Parallax | 创建视窗贴图(在名称中使用 _p 后缀)。基于高聚模型对视差位移进行计算。
白色代表无视差位移;黑色代表用于像素的最大减弱程度(根据设置的Level)。 生成的曲面细分高度贴图 |
||||||||||
Height | 创建一副用于曲面细分的高度贴图(在名称中使用_h后缀)。基于高聚模型对高度位移进行计算。
黑色代表无曲面细分位移;白色代表用于顶点的最大仰角。(根据设置的Level)。 生成的曲面细分高度贴图 |
||||||||||
Surface | 使用随机彩色表面创建一种纹理(在名称中使用_s 后缀)。此纹理并不会在Unigine引擎中得到使用,其仅用于美工使用。使用才纹理能很方便地在2D图形编辑器中选择单独表面的轮廓。
生成的表面纹理 |
||||||||||
Size | 生成纹理的尺寸。 | ||||||||||
AA | 用于法线贴图输出的抗锯齿模式。如使用此模式,会占用额外的内存。 数值越高,法线贴图就越柔软效果越模糊。
|
||||||||||
Level 和 Clamp参数可以控制经计算得出的位移值被烘焙到纹理中的方式。此选项对视差 和 高度 贴图起作用。 | Level Clamp |
Level = 0。真实的位移作为最大值得以使用。 | High Level。 | Low Level。高度被切断。 |
Clamp 参数可用来切断位移值,此值在指定的线上处于设定的Level 范围内。 (参看以上 说明 )。
- 值为0时,无嵌位发生。
- 仅当Clamp参数的值比Level值低时,Clamp参数才起作用。 相对于规范的位移值最大高度(纹理坐标内的1)会保持相同,而clamping范围外的高度会被切断。
Clamp 比Level低。 | 更低的Clamp。对更多的高度进行了切断处理。 |
- 加载第一个低聚合高聚网格。
- 测试运行 计算 (若要测试速度更快,就选择最小的纹理尺寸)。请注意介于低聚和高聚之间的最大位移值是:
- 为其它所有网格重复相同的动作。
- 使用最高的位移值选择网格。
- 将Level的值设置为一个靠近真实位移的值,例如 9.6个单位。
- 设置所需的纹理尺寸
- 点击 Run。
- 对于其它所有网格,设置相同的Level,例如9.6。
- 对于所有的网格而言,它们都要求夹钳不必要的高度,将Clamp的值设置为低于Level的值,例如设置为8个单位。此高度上的一切事物都不会被烘焙到纹理中。
- 纹理尺寸 越小,沿着缝隙的可见黑暗处就越多。驱逐绘画参数值的增加可在此种情况中起到帮助作用。
驱逐绘画 = 0 像素 | 驱逐绘画 = 4 像素 |
对于保存操作有数种选项:
- ATI2 Compression - 将纹理压缩成ATI2 格式。
- Two Component - 将法线图保存为双组件 (RG)纹理。双组件贴图并不用于将来的编辑:在对其进行保存时,可在引擎中加载及使用此贴图。双组件贴图也可被保存为.jpg 格式。
三种组件的法线图 | 两种组件的法线图 |
支持的文件格式#
支持的几何数据格式:
- Unigine 网格(.mesh)
- Unigine 蒙皮网格(.smesh)
- 波前(.obj)
- 可拉大风 (.dae)
支持的纹理格式:
- Targa (.tga)
- 便携式网络图像格式(.png)
- JPEG (.jpg)
- Photoshop 文档 (.psd)
- 直接绘制表面 (.dds)
- 便携式像素图 (.ppm)
- 便携式Graymap (.pgm)
- 高度动态范围(.hdr)
- Silicon 图形图像 (.sgi)
热键#