获取光源处深度图
前言
如果我们要自定义阴影,通过之前的文章,我们知道我们需要知道光源处的深度图和物体在光源处的深度,然后进行对比。然而在项目中,假如我们使用了unity阴影,则说明已经有了这张深度图。如果我们重新在渲染一个光源处的深度图,就会使多出一倍的渲染消耗。
如果我们能拿到已经有的那个深度图问题就轻松多了。
将光源处深度图转化为可采样格式
通过CommandBuffer转换shadowmap的采样格式:
CommandBuffer.SetShadowSamplingMode(shadowmap, ShadowSamplingMode.RawDepth);
然后将此图复制出来,设置并设置为全局变量供shader使用。
[ExecuteInEditMode]
public class CustomLight : MonoBehaviour
{
private Light mLight;
private bool isAdd;
CommandBuffer cb;
public RenderTextureFormat format=RenderTextureFormat.Shadowmap;
public LightEvent LightEvent= LightEvent.AfterShadowMap;
private void OnDisable()
{