What I tried:
public class ComputeUAVTexture : MonoBehaviour
{
public ComputeShader shader;
private int _kernel;
public Material _mat;
void Start ()
{
_kernel = shader.FindKernel ("CSMain");
RenderTexture tex = new RenderTexture (1011, 514, 0);
tex.enableRandomWrite = true;
tex.Create ();
_mat.SetTexture ("_MainTex", tex);
//shader.SetTextureFromGlobal(_kernel, "_DepthTexture", "_CameraDepthTexture");
shader.SetTexture(_kernel, "Result", tex);
}
void Update()
{
shader.SetTextureFromGlobal(_kernel, "_DepthTexture", "_CameraDepthTexture");
shader.Dispatch (_kernel, Mathf.CeilToInt(1011f / 8f), Mathf.CeilToInt(514f / 8f), 1);
}
}
#pragma kernel CSMain
Texture2D<half> _DepthTexture;
RWTexture2D<float4> Result;
[numthreads(8,8,1)]
void CSMain (uint3 id : SV_DispatchThreadID)
{
Result[id.xy] = _DepthTexture[id.xy];
}
Results:
Compute shader (ComputeUAVTexture): Property (_DepthTexture) at kernel index (0) is not set
UnityEngine.StackTraceUtility:ExtractStackTrace ()
ComputeUAVTexture:Update () (at Assets/Scripts/ComputeUAVTexture/ComputeUAVTexture.cs:29)
The depth texture seems to be working, but I always get this error on startup.