e4s-sdk/gamedata/shaders/r3/deffer_base_flat.vs
2026-06-17 23:06:51 +03:00

42 lines
898 B
GLSL

#include "common.h"
#if defined(USE_R2_STATIC_SUN) && !defined(USE_LM_HEMI)
#define v_in v_static_color
#else
#define v_in v_static
#endif
v2p_flat main ( v_in I )
{
I.Nh = unpack_D3DCOLOR(I.Nh);
I.T = unpack_D3DCOLOR(I.T);
I.B = unpack_D3DCOLOR(I.B);
// Eye-space pos/normal
v2p_flat O;
float4 Pp = mul( m_WVP, I.P );
O.hpos = Pp;
O.N = mul( (float3x3)m_WV, unpack_bx2(I.Nh) );
float3 Pe = mul( m_WV, I.P );
float2 tc = unpack_tc_base( I.tc, I.T.w, I.B.w); // copy tc
O.tcdh = float4( tc.xyyy );
O.position = float4( Pe, I.Nh.w );
#if defined(USE_R2_STATIC_SUN) && !defined(USE_LM_HEMI)
float s = I.color.w ; // (r,g,b,dir-occlusion)
O.tcdh.w = s;
#endif
#ifdef USE_TDETAIL
O.tcdbump = O.tcdh * dt_params; // dt tc
#endif
#ifdef USE_LM_HEMI
O.lmh = unpack_tc_lmap( I.lmh );
#endif
return O;
}
FXVS;