cbuffer DepthMatrixBuffer { matrix worldMatrix; matrix viewMatrix; matrix projectionMatrix; }; struct VertexInput { float4 position : POSITION; float2 texCoord0 : TEXCOORD0; }; struct VS_to_PS { float4 position : SV_POSITION; float4 depthPosition : TEXTURE0; }; VS_to_PS DepthVertexShader(VertexInput input) { VS_to_PS output; input.position.w = 1.0f; output.position = mul(input.position, worldMatrix); output.position = mul(output.position, viewMatrix); output.position = mul(output.position, projectionMatrix); output.depthPosition = output.position; return output; }