Maya 分析衰减深度帖图阴影(2)
Maya 分析衰减深度帖图阴影Section5
然后把聚光灯到两个 locator 的距离连接到 plusMinusAverage Utility 节点上 . 并将此节点设为 Subtract 方式 . 这是一个将聚光灯到两个 locator 的距离相减的工具 . 我们可以了解到两个距离之差 ( 注意这里是遵循矢量加减法则 )
这个距离上的差值将决定两个 Ramp texture 节点如何影响 dmap shadow 的 Filter Size 和 Shadow Color.
Section6
为了确定聚光灯到某个点的距离 , 必须使用 Light Info Utility 节点 . 和 Sampler Info 节点相似 ,Light Info 节点与其他节点连接时能提供某个被渲染点的信息 .
Light Info 与 Sampler Info 不同之处在于需要将一个灯光信息连接到 Light Info 上 . 你会注意到在渲染网络中 dmapSoftShadow 聚光灯的 worldMatrix[0] 属性连接到了 Light Info 节点的 worldMatrix 属性上 . 它告诉了 Light Info 从场景中的什么地方计算输出属性 Sample Distance.
Sample Distance 是从聚光灯中心到某个被渲染点的距离 .
注意 :Light Info 节点在确定 Sample Distance 时十分有用 .
Section7 和 section5 的方法类似 , 我们用另一个 plusMinusAverage 节点来确定 Sample Distance 和聚光灯到 startShadow locator 的距离差 . 为方便起见 , 这个差值命名为 sample point difference.
Section8
上一步中得到的 sample point difference 是用来调整阴影的 . 如果这个值比较小 , 那么被渲染的点就离 startShadow locator 比较近 . 如果这个值比较大 , 那么被渲染的点就离 startShadow locator 比较远 .
但是这个 sample point difference 地值可以是从 0 到一个很大的数 . 这个无限的范围不太适合用于 Ramp 节点 .Ramp 节点适合于 0-1 的范围 . 为了解决这个问题 , 需要使用一些数学手段来把这个距离差值转化到 0-1 的范围内 .
我们把 Section5 中得到的聚光灯到 startShadow locator 和 endShadow locator 的距离之差称为 total difference.
使用 Multiply Divid 节点 , 计算出 sample point difference 与 total difference 的比值 . 即 sample point difference 在 total difference 所占百分比 . 这样就把 sample point difference 转换到了 0-1 范围内 .
注意 : 对于位预 startShadow locator 与聚光灯之间和 endShadow locator 之外的点的返回值将不在 0-1 之间 . 我们将在下一个节点 Clamp 中调整 . 因此 locator 的位置并不需要十分精确的位于阴影开始和结束的地方 . 我们可以以后在做调整 .