private void BakeMap(int3 index) { float3 left = transform.position - transform.lossyScale * 0.5f; float3 right = transform.position + transform.lossyScale * 0.5f; float3 position = lerp(left, right, ((float3)index + 0.5f) / probeCount); SceneController.DrawGIBuffer(rt, float4(position, considerRange), resources.shaders.gpuFrustumCulling, cbuffer); }
private void BakeMap(int3 index) { RenderTexture depthBuffer = RenderTexture.GetTemporary(RESOLUTION, RESOLUTION, 32, RenderTextureFormat.Depth, RenderTextureReadWrite.Linear); float3 left = transform.position - transform.lossyScale * 0.5f; float3 right = transform.position + transform.lossyScale * 0.5f; float3 position = lerp(left, right, ((float3)index + 0.5f) / probeCount); SceneController.DrawGIBuffer(renderBuffers, depthBuffer.depthBuffer, float4(position, considerRange), resources.gpuFrustumCulling); for (int i = 0; i < 6; ++i) { decodeShader.SetBuffer(0, "_ResultBuffer", resultbuffer); decodeShader.SetTexture(0, "_GBuffer0", prepareRenderTexture[i][0]); decodeShader.SetTexture(0, "_GBuffer1", prepareRenderTexture[i][1]); decodeShader.SetInt(ShaderIDs._OffsetIndex, i * RESOLUTION * RESOLUTION); decodeShader.Dispatch(0, RESOLUTION / 32, RESOLUTION / 32, 1); } RenderTexture.ReleaseTemporary(depthBuffer); resultbuffer.GetData(colorResults); }