33 lines
688 B
HLSL
33 lines
688 B
HLSL
#include "common.hlsli"
|
|
#include "sload.hlsli"
|
|
|
|
void main(p_bumped_new I, out f_deffer O)
|
|
{
|
|
XrayMaterial M;
|
|
|
|
M.Sun = I.tcdh.w;
|
|
M.Hemi = I.tcdh.z;
|
|
M.Point = I.position.xyz;
|
|
|
|
SloadNew(I, M);
|
|
|
|
#ifdef USE_AREF
|
|
clip(M.Color.w - def_aref);
|
|
#endif
|
|
|
|
M.Normal = mul(float3x3(I.M1, I.M2, I.M3), M.Normal);
|
|
M.Normal = normalize(M.Normal);
|
|
|
|
#ifdef USE_LM_HEMI
|
|
float4 lm = tex2D(s_hemi, I.tcdh.zw);
|
|
|
|
M.Sun = get_sun(lm);
|
|
M.Hemi = get_hemi(lm);
|
|
#endif
|
|
|
|
#ifndef USE_R2_STATIC_SUN
|
|
M.Sun = xmaterial;
|
|
#endif
|
|
|
|
O = pack_gbuffer(float4(M.Normal, M.Hemi), float4(M.Point, M.Sun), float4(M.Color.xyz, 1.0f - M.Roughness));
|
|
}
|