35 lines
817 B
HLSL
35 lines
817 B
HLSL
#include "common.hlsli"
|
|
|
|
struct v2p
|
|
{
|
|
float2 tc0 : TEXCOORD0; // base
|
|
float2 tc1 : TEXCOORD1; // lmap
|
|
float2 tc2 : TEXCOORD2; // detail
|
|
};
|
|
uniform sampler2D s_mask; //
|
|
|
|
uniform sampler2D s_dt_r; //
|
|
uniform sampler2D s_dt_g; //
|
|
uniform sampler2D s_dt_b; //
|
|
uniform sampler2D s_dt_a; //
|
|
|
|
// Pixel
|
|
float4 main(v2p I) : COLOR
|
|
{
|
|
float4 t_base = tex2D(s_base, I.tc0);
|
|
|
|
float4 mask = tex2D(s_mask, I.tc0);
|
|
float mag = dot(mask, 1);
|
|
mask = mask / mag;
|
|
|
|
float3 d_R = tex2D(s_dt_r, I.tc2) * mask.r;
|
|
float3 d_G = tex2D(s_dt_g, I.tc2) * mask.g;
|
|
float3 d_B = tex2D(s_dt_b, I.tc2) * mask.b;
|
|
float3 d_A = tex2D(s_dt_a, I.tc2) * mask.a;
|
|
float3 dt = d_R + d_G + d_B + d_A;
|
|
t_base.xyz *= 2.0f * dt;
|
|
|
|
// out
|
|
return float4(t_base.xyz, 1);
|
|
}
|
|
|