05_投影追加
投影追加GooEngine
一般的Blender版本只能在后期处理中获取深度图,但这里需要再材质面板中获取,只有GooEngine版本才行,但是GooEngine的描边只能使用几何节点构造,材质面板没有置换选项 一般版本获取深度:找到层设置,开启passes选项中的Z
合成面板这里就有了Depth节点了 
灯光向量转换到观察空间
光向量转换到观察空间得到偏移方向,因为是做屏幕投影,那么只要XY的方向信息即可,所以乘上(1,1,0) 
计算偏移量
这里乘上5是经验值,除以100应该是以百分制来控制偏移强度 
计算采样的屏幕深度UV
GooEngine特有的节点,这里可以看到输入是观察空间下的Position。
那么基于原UV进行偏移就可以得到新的UV,将当前位置转换到观察空间进行相加即可。注意这里不需要要进行透视除法,ScreenspaceInfo内部应该做了这一步,在Unity和UE中采用深度缓冲都要做透视除法 
采样深度缓冲获得投影
**将偏移后的UV采样获得新的深度,新深度减去原深度即可获得投影,这里为了防止自投影所以原深度需要减去一个较小阈值,可以理解为去除面部,鼻子的阴影所做的处理,后面乘上一个应该是经验值的50,在使用FadeOut参数控制衰减程度,最后Clamp钳制到0~1*
输出测试可以看到投影正常生成了 
将ShadowAttenuation融入之前的分段
对应代码操作
重映射为两个分段 

投影混合后的效果

Enjoy Reading This Article?
Here are some more articles you might like to read next: