struct Input { float3 Position : TEXCOORD0; uint Instance : SV_InstanceID; }; cbuffer Uniforms : register(b0, space1) { float4x4 ViewProjection : packoffset(c0); }; struct Output { float3 UVW : TEXCOORD0; float4 Position : SV_Position; }; Output main(Input input) { Output output; float4 pos = float4(input.Position, 1.0); output.Position = mul(ViewProjection, pos); output.UVW = input.Position; return output; }