111
This commit is contained in:
47
Assets/Scripts/Test/Light/ShadowCapture.cs
Normal file
47
Assets/Scripts/Test/Light/ShadowCapture.cs
Normal file
@@ -0,0 +1,47 @@
|
||||
// ShadowCapture.cs
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
|
||||
public class ShadowCapture : MonoBehaviour
|
||||
{
|
||||
public Light mainLight;
|
||||
public Camera shadowCamera;
|
||||
public RenderTexture shadowTexture;
|
||||
|
||||
private CommandBuffer commandBuffer;
|
||||
|
||||
void Start()
|
||||
{
|
||||
commandBuffer = new CommandBuffer();
|
||||
commandBuffer.name = "Shadow Capture";
|
||||
|
||||
//// <20><><EFBFBD><EFBFBD>Render Texture
|
||||
//shadowTexture = new RenderTexture(1024, 1024, 0, RenderTextureFormat.ARGB32);
|
||||
//shadowTexture.name = "Shadow Map";
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>Command Buffer
|
||||
commandBuffer.SetRenderTarget(shadowTexture);
|
||||
commandBuffer.ClearRenderTarget(true, true, Color.clear);
|
||||
|
||||
// ֻ<><D6BB>Ⱦ<EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
commandBuffer.SetGlobalColor("_ShadowColor", Color.black);
|
||||
|
||||
// <20><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
shadowCamera.AddCommandBuffer(CameraEvent.BeforeForwardOpaque, commandBuffer);
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><D3B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Shader
|
||||
Shader.SetGlobalTexture("_CustomShadowMap", shadowTexture);
|
||||
}
|
||||
|
||||
void OnDestroy()
|
||||
{
|
||||
if (commandBuffer != null)
|
||||
{
|
||||
shadowCamera.RemoveCommandBuffer(CameraEvent.BeforeForwardOpaque, commandBuffer);
|
||||
commandBuffer.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user