I’m trying to write to a RInt Texture via a compute shader. I broke it down to a very simple example, but the textue still stays black inside the inspector:
Compute Shader:
#pragma kernel CSMain
RWTexture2D<int> Result;
[numthreads(1,1,1)]
void CSMain (uint3 id : SV_DispatchThreadID)
{
Result[id.xy] = 2147483647;
}
C#:
using UnityEngine;
[ExecuteInEditMode]
public class writeToIntHost : MonoBehaviour {
public ComputeShader writeToInt;
public RenderTexture intTest;
public bool start;
void Update () {
if(start)
{
start = false;
if (intTest != null)
DestroyImmediate(intTest);
intTest = new RenderTexture(16, 16, 0, RenderTextureFormat.RInt);
intTest.enableRandomWrite = true;
intTest.Create();
int csMain_kernel = writeToInt.FindKernel("CSMain");
writeToInt.SetTexture(csMain_kernel, "Result", intTest);
Graphics.SetRandomWriteTarget(1, intTest);
writeToInt.Dispatch(csMain_kernel, intTest.width, intTest.height, 1);
Graphics.ClearRandomWriteTargets();
}
}
}
I testet the code successfully with float textures. Do I have to take care of something additionaly? Is the Inspector not capabile of displaying int textures?
Thanks in Advance!