#include "common.hlsli" struct vv { float4 P : POSITION; float2 tc : TEXCOORD0; float4 c : COLOR0; }; struct v2p { float2 tc : TEXCOORD0; float4 c : COLOR0; // Igor: for additional depth dest #ifdef USE_SOFT_PARTICLES float4 tctexgen : TEXCOORD1; #endif // USE_SOFT_PARTICLES float4 hpos : SV_POSITION; float fog : FOG; }; uniform float4x4 mVPTexgen; v2p main(vv v) { v2p o; o.hpos = mul(m_WVP, v.P); // xform, input in world coords // o.hpos = mul (m_VP, v.P); // xform, input in world coords o.tc = v.tc; // copy tc o.c = unpack_D3DCOLOR(v.c); // copy color o.hpos.xy += m_taa_jitter.xy * o.hpos.w; // Igor: for additional depth dest #ifdef USE_SOFT_PARTICLES o.tctexgen = mul(mVPTexgen, v.P); o.tctexgen.z = mul(m_WV, v.P).z; #endif // USE_SOFT_PARTICLES o.fog = 1.0f - calc_fogging(v.P.xyz); // fog, input in world coords return o; }