使用灯光在渲染中¶
使用 Gather Lights Render Pass 从节点列表中收集光节点,以便为场景中的3D节点提供照明。
收集灯光¶
Gather Lights Render Pass 收集光节点以照亮场景中的 3D 节点。
默认情况下,Gather Lights Render Pass 收集场景中的所有光节点或其最近的上级 Node List Render Pass 提供的光节点。
例如:在此渲染传递预设中,Gather Lights Render Pass 收集其父 Node List Render Pass 提供的光节点:
您可以在相同的 Render Pass Prefab 中使用任何 Node List Render Pass 来为 Gather Lights Render Pass 提供光节点。要了解如何使用过滤器将节点传递给渲染通道,请参阅 过滤器 (Filters)。
要设置您想要用于收集灯光的 Node List Render Pass:
在 Library > Rendering > Render Pass Prefabs 中选择您要使用来收集光节点的 Gather Lights Render Pass。
在 Properties 中点击 + Add Binding,并在 Binding Editor 中设置:
Property 到 Node List
将 Expression 到 Node List Render Pass 的 Output Node List 属性。
例如,要收集由 Gather Lights Render Pass 的同级 Node List Render Pass 提供的光节点,请将 Expression 设置为:
{@../Node List Render Pass/NodeListRenderPass.OutputNodeList}
单击 Save。
使用您收集的光节点渲染 3D 内容。请参阅 照明 3D 节点 (Lighting 3D nodes)。
照明 3D 节点 (Lighting 3D nodes)¶
使用 Draw Objects Render Pass 和 Draw Objects With Material Render Pass 渲染通道来绘制 3D 节点。Kanzi 默认情况下使用最近的祖先 Gather Lights Render Pass 提供的光源节点为由 Draw Objects Render Pass 或 Draw Objects With Material Render Pass 绘制的 3D 节点照明。
例如,在此渲染传递预设中,Kanzi 照亮 3D 节点,Draw Objects Render Pass 使用父 Gather Lights Render Pass 收集的光节点进行绘制:
Gather Lights Render Pass 具有输出属性,每个属性都包含由该 Gather Lights Render Pass 收集的特定类型的灯光集。您可以手动设置 Draw Objects Render Pass 或 Draw Objects With Material Render Pass 以使用同一渲染通道预设中任何 Gather Lights Render Pass 提供的灯光。
要设置您希望其输出灯光用于照亮 3D 节点的 Gather Lights Render Pass:
在 Library > Rendering > Render Pass Prefabs 中,选择您用于绘制3D内容的 Draw Objects Render Pass 或 Draw Objects With Material Render Pass。
在 Properties 中点击 + Add Binding,并在 Binding Editor 中设置:
将 Property 设置为您要使用的灯光类型:
Directional Lights 用于 Directional Light 节点。
Point Lights 用于 Point Light 节点。
Spot Lights 用于 Spot Light 节点。
将 Expression 应用于您要使用的 Gather Lights Render Pass 的输出灯光属性:
Output Directional Lights 用于 Directional Light 节点。
Output Point Lights 用于 Point Light 节点。
Output Spot Lights 用于 Spot Light 节点。
例如,要使用您添加绑定的渲染通道的同级 Gather Lights Render Pass 的 Directional Light 节点,请设置:
Property 到 Directional Lights
Expression 到
{@../Gather Lights Render Pass/GatherLightsRenderPass.OutputDirectionalLights}单击 Save。
重复上一步以添加您要使用的其他类型光节点的绑定。
使用渲染通道:
在 Node Tree 中选择包含您要渲染的3D内容的 Viewport 2D 节点。
在 Properties 中,将 Render Pass Prefab 属性设置为包含您用于收集光节点的 Gather Lights Render Pass 和用于绘制3D内容的 Draw Objects Render Pass 或 Draw Objects With Material Render Pass 的渲染通道预设。