// Each #kernel tells which function to compile; you can have many kernels #pragma kernel CSMain #pragma kernel DebugSphere // Create a RenderTexture with enableRandomWrite flag and set it // with cs.SetTexture //RWTexture2D Result; RWTexture3D Result; int dispatchCubeSide; [numthreads(8,8,8)] void CSMain (uint3 id : SV_DispatchThreadID) { // TODO: insert actual code here! //Result[id.xy] = half4(id.x & id.y, (id.x & 15)/15.0, (id.y & 15)/15.0, 0.0); //Result[id.xy] = float4(id.x & id.y, (id.x & 15)/15.0, (id.y & 15)/15.0, 0.0); Result[id.xyz] = float(!(id.x & id.y & id.z)); } [numthreads(8, 8, 8)] void DebugSphere(uint3 id : SV_DispatchThreadID) { float3 p = half3(id)/half3(dispatchCubeSide, dispatchCubeSide, dispatchCubeSide); p *= 2; p -= 1; float d = length(p) - 0.5; if (abs(d) <= 0.05f) { //Debug[id] = float4(1.0f, 1.0f, 1.0f, 1.0f); Result[id] = 0.5f; } else { //Debug[id] = float4(0.0f, 0.0f, 0.0f, 0.0f); Result[id] = 0.5f; } }