使用逐实例 UV 集
尽管始终可以将某个特定形状的不同实例与不同的材质相关联,现在可以将不同的 UV 集与不同的实例相关联。在对象的实例上烘焙阴影(例如,照明游戏级别)时,或使用不同的纹理创建单个形状的实例(例如,一堆箱子,其中一些在不同的位置处有孔,等等)时,这非常有用。
如果 UV 集是逐实例的,那么术语 UV 集系列指的就是应用于不同实例的关联 UV 集。在某个给定系列内,可能会将单个 UV 集应用到一个或多个实例。
创建逐实例 UV 贴图
1.选择形状。
2.选择“创建 UV > 创建空 UV 集(Create UVs > Create Empty UV Set) > ”。
可以选择共享该 UV 集(每个实例都有该 UV 集)、“逐共享实例”(Per Instance Shared)(所有选定实例都共享新的 UV 集)或“逐非共享实例”(Per Instance Unshared)(所有选定实例都获得一个唯一的 UV 集)。
3.根据需要命名 UV 集。
4.选择形状的另一个实例。
5.在实例上单击鼠标右键,选择 UV 集,并使所创建的逐实例 UV 集成为选定集。
6.在“创建 UV”(Create UVs)菜单下选择一种 UV 映射类型(如“平面”(Planar)、“圆柱形”(Cylindrical)或“球形”(Spherical))。确保在映射的选项窗口中已禁用“创建新 UV 集”(Create New UV Set)。
会为共享当前集的名称的选定实例创建一个新 UV 贴图。
7.将着色器指定给网格的所有实例。
8.在实例上单击鼠标右键,然后选择“UV 集 > UV 链接…”(UV Sets > UV Linking)。使用“关系编辑器”(Relationship Editor)将任一逐实例集连接到着色器的颜色。
使用硬件纹理在“场景视图”(Scene view)中渲染或显示不同的(逐实例)UV 映射时,现在应该会在实例化对象上显示这些映射。
示例:使用逐实例 UV 集烘焙单个阴影贴图
在下面的示例中,我们会使用逐实例 UV 集将阴影烘焙到单个贴图。此时,可以在场景中删除灯光。为游戏级别在对象上创建纹理贴图时,该工作流很有用。
有关烘焙的更多详细信息,请参见“照明/着色 > 批烘焙(mental ray)(Lighting/shading > Batch Bake (mental ray))。
在该简单场景中,有一个用于投射阴影的长圆柱体、一束平行光、一个包含 16 x 16 细分的小平面,以及平面的两个附加实例。
设置场景
1.创建一个长细条状多边形圆柱体,其底面位于地平面上。
2.在地平面上创建一个较小的多边形平面,然后从 polyPlane 节点中,将“宽度细分数”(Subdivisions Width)和“高度细分数”(Subdivisions Height)都设定为 16。
3.选择该多边形平面,然后选择“编辑 > 特殊复制(Edit > Duplicate Special) > ”。
4.将“几何体类型”(Geometry Type)设定为“实例”(Instance),并选择“应用”(Apply)两次以创建小多边形平面的两个实例(这两个实例将显示在原始实例的上方)。
5.一个接一个地定位平面,就像一条人行道一样。
6.创建平行光(“创建 > 灯光 > 平行光”(Create > Lights > Directional Light)),并在放置它时使其稍微向下指并朝向圆柱体和平面。
7.在“属性编辑器”(Attribute editor)中,将灯光的“强度”(Intensity)更改为 4.5。
8.打开“阴影”(Shadows)区域,然后启用“使用深度贴图阴影”(Use Depth Map Shadows)。
9.将阴影颜色更改为蓝色。
10.使用 mental ray 渲染器渲染场景。渲染应看起来如下所示:
可能需要调整灯光的方向,然后重新渲染,从而使阴影落在某个不同的位置处的每个多边形实例上,就像在上面的渲染中一样。
现在,我们可以在平面上逐实例创建 UV 集了。
创建逐实例 UV 集
1.选择三个多边形平面实例,然后在“多边形”(Polygons)菜单集中,选择“创建 UV > 创建空 UV 集(Create UVs > Create Empty UV Set) > ”。
2.在“创建 UV 集选项”(Create UV Set Options)对话框中,创建一个名为 Sidewalk 的 UV 集,并选择“逐非共享实例”(Per Instance Unshared)。然后单击“创建”(Create)。
3.在其中一个多边形平面实例上单击鼠标右键,并通过选择“UV 集(UV Sets)> Sidewalk (n)”使 Sidewalk 成为选定 UV 集。
4.选择所有多边形平面实例,并创建 UV,方法是选择“创建 UV > 平面映射(Create UVs > Planar Mapping) > ”并进行下列选择:•适配投影到(Fit Projection to):边界框(Bounding Box)
•投影源(Project from):Y 轴(Y axis)
确保禁用“创建新 UV 集”(Create new UV Set)。
5.单击“投影”(Project)。
现在已经创建了一个逐实例 UV 集,其 UV 在 UV 空间中不重叠(如有必要,可以使用“UV 纹理编辑器”(UV Texture Editor)来确认这一点并移动 UV)。
现在,我们将阴影烘焙到单个 UV 贴图。
烘焙到逐实例 UV 集
1.选择三个多边形平面实例。
2.在“渲染”(Rendering)菜单集中,选择“照明/着色 > 批烘焙(mental ray)(Lighting/shading > Batch Bake (mental ray)) > ”。
3.进行下列设定:•要烘焙的对象(Objects to bake):选定(Selected)
•烘焙到(Bake to):纹理(Texture)
•“烘焙阴影”(Bake shadows):启用
•“使用烘焙集覆盖”(Use bake set override):启用
•颜色模式(Color mode):仅灯光(Only light)
•“烘焙到一个贴图”(Bake to one map):启用
4.单击“转化并关闭”(Convert and Close)。
在烘焙阴影时,现在必须将烘焙集连接到 UV 贴图。
5.在其中一个实例上单击鼠标右键,然后选择“UV 集 > UV 链接”(UV Sets > UV Linking)。
6.在关系编辑器中,将 Sidewalk(0) 贴图链接到 baked_inBake1。
会烘焙阴影并正确链接阴影。如果处于着色模式(热键:6)或高质量渲染模式下,则可以在场景视图中看到这一切。
7.此时,可以在场景中删除该灯光,因为已将其阴影烘焙到多边形实例上的 UV 纹理。
删除逐实例 UV 集
由于可能会有在实例之间共享的 UV 集系列,因此删除 UV 集的方式会略有不同。
例如,名为 myMap 的逐实例集系列有两个子集。一个应用于多个实例(实例 a、b 和 c),另一个仅应用于实例 d。它是当前 UV 集。如果选择实例 d,然后选择“删除当前 UV 集”(Delete Current UV Set),那么仅会删除实例 d 上的贴图(另一个 UV 贴图由未选定实例使用,不会被删除)。
如果选择实例 a,然后选择“删除当前 UV 集”(Delete Current UV Set),那么不会从实例 a 共享该 UV 集,但该 UV 集仍存在于实例 b 和 c 上。若要完全删除它,可以选择实例 b 和 c,然后选择“删除当前 UV 集”(Delete Current UV Set)。
限制
逐实例 UV 集不支持颜色集或绘制效果。
请将您关于此页内容的评论发送给我们