#ifndef WRITE_VELOCITY #define WRITE_VELOCITY 0 #endif #if WRITE_VELOCITY #define CLIP_POS 1 #define PREV_CLIP_POS 1 #else #define CLIP_POS 0 #define PREV_CLIP_POS 0 #endif #include "$ENGINE$\PerCameraData.bslinc" #include "$ENGINE$\PerObjectData.bslinc" #include "$ENGINE$\VertexInput.bslinc" mixin BasePass { mixin PerCameraData; mixin PerObjectData; mixin VertexInput; code { VStoFS vsmain(VertexInput input) { VStoFS output; VertexIntermediate intermediate = getVertexIntermediate(input); float4 worldPosition = getVertexWorldPosition(input, intermediate); output.worldPosition = worldPosition.xyz; output.position = mul(gMatViewProj, worldPosition); #if PREV_CLIP_POS float4 prevWorldPosition = getPrevVertexWorldPosition(input, intermediate); output.prevClipPos = mul(gMatPrevViewProj, prevWorldPosition); #endif populateVertexOutput(input, intermediate, output); return output; } }; };