使用“编辑法线”修改器可以给出显式和程序性、交互式控制对象顶点法线。它主要用于指定要输出到游戏引擎以及支持指定法线的其他 3D 渲染引擎的网格对象。结果将显示在视口和渲染的图像中。
顶点法线的方向会影响相邻曲面反射光线的方式。默认情况下,会设置法线以使 3ds Max 中的光的反射遵循实际环境的物理规则:反射角度等于入射角度。不过,通过改变顶点法线的方向,可将反射角设置为任意大小。使用“编辑法线”修改器可指定顶点法线的方向、组合和分离它们、更改类型以及在法线之间复制和粘贴值。
警告:不要将“编辑法线”修改器应用于
法线凹凸投影中使用的低分辨率对象。法线凹凸投影依赖于具有标准法线的低分辨率对象,改变它们会使法线凹凸贴图出现不可预测的结果。
法线类型
在“编辑法线”修改器中可使用三种类型的法线:
注意:选定法线始终为
红色。如果未被选中,如上文所述,法线的颜色指示其类型。可在“元素”
“几何体”列表中找到这些法线类型的
可自定义颜色条目。这三个条目的名称是:
- 法线 - 显性
- 法线 - 已指定
- 法线 - 未指定
用法示例
下面给出两个实例,创建游戏引擎输出内容的 3D 设计人员可从中了解“编辑法线”修改器的实际用途:
- 一名设计人员正在创建手持铬合金盾牌的武士。铬合金盾牌上带有 DirectX 立方体贴图明暗器,以便该设计人员可在视口中查看反射。该设计人员希望使盾牌反射看上去因战斗中的打斗出现“凹痕”。于是,该设计人员对盾牌对象应用“编辑法线”修改器。然后,他可以稍微调整各条法线,并使用像素明暗器实时查看效果。之后,可使用专用于处理法线信息的自定义导出工具来导出角色。
- 一名游戏设计人员正在创建将在游戏中爆炸的对象。要实现这一点,游戏引擎要求将该对象分割为多个对象:即由爆炸引发的诸多碎片。当该对象在 3ds Max 中破碎(使用“切片”)时,法线将指向不同方向;这样,将便于查看断裂碎片之间的接缝。为修复此接缝,该设计人员选择断裂对象的所有碎片,并一次对所有碎片应用“编辑法线”修改器。然后,她选择穿过接缝的各条法线并统一它们,使它们指向相同方向。然后,该设计人员导出到游戏引擎。
使用注意事项
在使用“编辑法线”修改器时,请遵循下列注意事项和预防措施:
- “编辑法线”支持多边形对象(基于多边形)和网格对象(基于三角形)。如果对多边形对象应用“编辑法线”,结果为多边形对象。如果对任何其他对象类型应用“编辑法线”,结果为网格对象。
- 另外,“编辑法线”还支持在塌陷堆栈时和在将多边形对象转化为网格对象时嵌入已编辑法线数据,但在从网格对象转化为任何其他对象类型时不支持此嵌入。如果对基本体对象应用“编辑法线”、调整法线、然后塌陷堆栈(或转换为可编辑网格),3ds Max 会在网格对象中嵌入包括选择状态在内的所有法线更改。基本体对象基于网格,所以如果将同一对象转换为可编辑多边形,已编辑法线将丢失。另一方面,如果将基本体对象转换为可编辑多边形、应用“编辑法线”、调整法线,然后塌陷堆栈,会得到一个多边形对象,将保留法线。随后,可通过应用另一个“编辑法线”修改器,重新访问塌陷对象中嵌入的已编辑法线。
- 任何改变拓扑的修改器都移除使用“编辑法线”修改器对法线应用的更改。这类修改器包括“编辑多边形”、“网格平滑”、“细化”、“镜像”、“对称”、“挤出面”和“顶点焊接”。这还意味着可以翻转面方向的“法线”修改器不支持已编辑的法线。“转化为多边形”可通过将三角形连接到多边形来修改面拓扑,因此它还可去除已编辑的法线。
- 所有复合对象从其操作对象中去除已编辑法线。
- 好消息:所有变形和贴图修改器都保留法线。例如,如果应用“弯曲”,法线将随几何体弯曲。“展开 UVW”等贴图修改器根本不影响法线。
- 不过,少数几何体修改器不完全支持新法线。它们不会去除法线,但也不会正确变形任何显性法线。这类修改器包括“推力”和“松驰”修改器。
- “平滑”修改器可正确修改任何非已指定法线,但使已指定法线和显性法线保持原样。
- 与“网格选择”和“多边形选择”一样,“编辑法线”“继承”堆栈中它下方的属性。例如,如果创建一个长方体,应用“编辑法线”修改器,更改部分法线,然后应用第二个“编辑法线”修改器,那么顶部的“编辑法线”将从管道“继承”用户指定的法线,就像应用“网格选择”时它将采用当前选择一样。但顶部的“编辑法线”修改器将忽略对原来的“编辑法线”修改器的任何后续更改,就像应用“网格选择”后它将忽略对堆栈中它下方的选择所做的任何更改一样。
界面
“编辑法线”修改器主要用于子对象层级,法线,只要将该修改器应用于对象,此层级在默认情况下都处于活动状态。此时,在“修改”面板上,可看到网格顶点发出的线条状的法线、选择和变换法线、复制和粘贴法线以及更改法线设置。
只能通过移动和旋转法线,而不能通过缩放法线来变换法线。不过,移动法线实际上就是旋转它,所以在大多数情况下,使用“旋转”工具能够更准确地进行控制。
下列命令引用包括启用键盘快捷键覆盖切换(在工具栏上)时可用的键盘快捷键。另外,可使用 Ctrl+0(零)访问修改器的对象层级。
“选择方式”组
用于指定如何在视口中选择法线。
- 法线 (Ctrl+1):单击法线即可将其选中。
- 顶点 (Ctrl+2):单击网格顶点即可选择其全部法线。
- 边 (Ctrl+3):单击网格边可选择与相邻多边形关联的法线。
- 面 (Ctrl+4):单击网格面(或多边形)可选择关联法线。
当然,除上述所有方法以外,还可使用区域选择一次选择多条法线。
- 忽略背面
-
启用后,选择子对象将只影响朝向您的那些对象。禁用(默认值)时,无论可见性或面向方向如何,都可以选择鼠标光标下的任何子对象。如果光标下的子对象不止一个,请反复单击在其中循环切换。同样,禁用“忽略朝后部分”后,无论面对的方向如何,区域选择都包括了所有的子对象。
- 显示控制柄
-
启用控制柄的显示,控制柄就是每条法线末端的小方块。启用它将能够更容易地选择法线。
- 显示长度
-
指定每条法线的长度。这仅用于显示目的;该长度不影响法线的功能。
- 统一 (U)
-
将每个顶点处选定的所有法线组合成一条指定的法线。在默认情况下,“统一/断开为平均值”是禁用的,所以“统一”会将每条统一法线的方向设置为与该点的平均面垂直。启用“统一/断开为平均值”时,“统一”会将方向设置为每个位置的复合法线的平均值。
- 断开 (B)
-
将所有选定的、统一后的法线分割成其各自的原始成分。禁用“统一/断开为平均值”时,“断开”将每条单独法线的方向设置为与其各自的面垂直,这样,如果连接面的角度不同(如球体),各个顶点的法线将朝向各个方向。启用“统一/断开为平均值”时,每条单独法线使用原始法线的方向。
“断开”将所有未选择的法线转化为指定法线。
- 统一/断开为平均值
-
确定法线方向为“统一”或“断开”操作的结果。有关详细信息,请参见以上说明。默认设置为禁用状态。
“平均值”组
使用下列控件,可通过不同方法平均顶点法线;也就是说,将它们设置为相同的绝对角度,即它们的复合角度的平均值。
- 选定项
-
将选定的法线设置为同一绝对角度:所用角度的平均值。如果启用“使用阈值”,则只计算相互距离小于“平均阈值”微调器(位于按钮右侧)中的指定距离的法线的平均值。
- 使用阈值
-
激活“平均阈值”设置,并使“选定”仅计算相互距离小于指定值的法线的平均值。
- 目标
-
进入交互模式,从中指定要平均的多对法线。单击“目标”,然后选择法线。鼠标光标位于法线上时会变成 + 符号。单击第一条法线后,一条橡皮筋虚线将该法线与鼠标光标连接。单击第二条法线可平均两条法线的角度。
“目标”按钮右侧的像素微调器设置鼠标光标与目标法线之间的最大距离(以屏幕像素为单位)。
- 复制值 (Ctrl+C)
-
将选定法线的方向复制到复制缓冲区。仅在选定单条法线时可用。
使用“复制值”和“粘贴值”,将一条法线的方向应用于同一“编辑法线”修改器中的一条或多条其他法线。不能在修改器之间复制法线。
- 粘贴值 (Ctrl+V)
-
将粘贴缓冲区内容应用于当前选择。仅在已使用“复制值”设置副本中的法线方向,并已选择一条或多条目标法线时才可用。
- 指定 (S)
-
- 重置 (R)
-
将所有选定的法线还原为未指定状态,并将它们返回到各自的初始计算位置。另外,断开统一法线。
- 设为显式 (E)
-
- [选择显示]
-
选择一条法线时显示其 ID 编号。选择 0 条或多条法线时,显示选定法线的数量。