不明确的情况
如果渲染目标节点连接到两个渲染层之间共享的渲染过程,合成图则变得不明确。当遇到渲染目标应从哪个层获取其渲染过程结果时,就会出现问题。
默认行为:
在“渲染视图”(Render View)中:渲染目标对活动层使用渲染过程的结果。
批渲染:渲染目标对主层(不论活动层)使用渲染过程的结果。
如果渲染过程由两个或更多渲染层之间共享,这些层均不是主层,并且渲染目标的 renderLayer 输入未连接到任何层,渲染目标渲染为黑色。此类情况的示例,如下所示。
可按如下所示方法避免该不明确的情况:
如果渲染层没有共享渲染过程。
通过将渲染层的消息输出连接到渲染目标的 renderLayer 输入。
通过将渲染图像源节点连接到渲染目标,以强制从连接层获得渲染过程。
自定义合成图,以便渲染目标强制从特定层获得渲染过程
方法 1
使用鼠标中键 (
) 单击渲染层节点以渲染目标节点。“连接编辑器”(Connection Editor)出现。将 layer1.message 连接到 renderTarget1.renderLayer。
提示如果在“连接编辑器”(Connection Editor)中未看到“消息”(message)和“renderLayer”属性,请选择“左侧显示 > 显示隐藏项”(Left Display > Show Hidden)和“右侧显示 > 显示隐藏项”(Right Display > Show Hidden),以显示它们。
方法 2
通过使用该 MEL 脚本创建“renderedImageSource”节点:
shadingNode -asRendering renderedImageSource;
使用鼠标中键 (
) 单击渲染层节点到“renderedImageSource”节点。“连接编辑器”(Connection Editor)出现。将 layer1.message 连接到 renderedImageSource1.renderLayer。
使用鼠标中键 (
) 单击渲染过程节点到“renderedImageSource”节点。“连接编辑器”(Connection Editor)出现。将 <pass>.message 连接到 renderedImageSource1.imageSource。
按住
键并单击鼠标中键 (
) 以连接“renderedImageSource”节点和“renderTarget”节点。
使用渲染层覆盖渲染设置
如果渲染目标没有连接到特定渲染层,默认情况下,将在主层中使用主层的渲染设置进行渲染。通过创建渲染层并将其连接到渲染目标可以覆盖这些渲染设置。这样,渲染目标在渲染层的上下文环境中渲染。
通过将渲染层的消息输出连接到渲染目标的 renderLayer 输入,可以在“Hypershade”中执行此操作。
注意:渲染渲染目标:当渲染渲染目标时,当前不支持渲染多个可渲染摄影机。这也适用于可渲染摄影机上的逐层覆盖。
组合不同摄影机的 3D 输出
通过将摄影机连接到渲染目标的摄影机输入,可以创建摄影机覆盖。对渲染目标,这意味着合成图中的所有上游连接将使用该 3D 摄影机。这样,可以在预合成中组合不同摄影机的 3D 输出。
,