init
This commit is contained in:
commit
2fe6ca2f65
1473 changed files with 251771 additions and 0 deletions
68
gamedata/shaders/d3d11/accum_volumetric.ps.hlsl
Normal file
68
gamedata/shaders/d3d11/accum_volumetric.ps.hlsl
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
#include "common.hlsli"
|
||||
#include "shadow.hlsli"
|
||||
|
||||
struct v2p
|
||||
{
|
||||
float3 lightToPos : TEXCOORD0; // light center to plane vector
|
||||
float3 vPos : TEXCOORD1; // position in camera space
|
||||
float fDensity : TEXCOORD2; // plane density along Z axis
|
||||
};
|
||||
|
||||
uniform float4 m_lmap[2];
|
||||
Texture2D s_noise;
|
||||
|
||||
#define USE_LMAP
|
||||
#define USE_LMAPXFORM
|
||||
#define USE_SHADOW
|
||||
|
||||
// Pixel
|
||||
float4 main(v2p I) : SV_Target
|
||||
{
|
||||
// ----- shadow
|
||||
float4 P4 = float4(I.vPos, 1);
|
||||
float4 PS = mul(m_shadow, P4);
|
||||
float s = 1.0f;
|
||||
|
||||
#ifdef USE_SHADOW
|
||||
s = shadow(PS);
|
||||
#endif
|
||||
|
||||
// ----- lightmap
|
||||
float4 lightmap = 1.0f;
|
||||
|
||||
#ifdef USE_LMAP
|
||||
#ifdef USE_LMAPXFORM
|
||||
PS.x = dot(P4, m_lmap[0]);
|
||||
PS.y = dot(P4, m_lmap[1]);
|
||||
#endif
|
||||
lightmap = s_lmap.Sample(smp_rtlinear, PS.xy / PS.w);
|
||||
#endif
|
||||
|
||||
// ----- attenuate
|
||||
float rsqr = dot(I.lightToPos, I.lightToPos); // distance 2 light (squared)
|
||||
float att = saturate(1 - rsqr * Ldynamic_pos.w); // q-linear attenuate
|
||||
|
||||
// ----- noise
|
||||
PS.xy /= PS.w;
|
||||
PS.xy *= 0.3333;
|
||||
float time = timers.z * 0.1;
|
||||
PS.x += time;
|
||||
|
||||
float4 t_noise = s_noise.SampleLevel(smp_linear, PS.xy, 0);
|
||||
|
||||
PS.x -= time;
|
||||
PS.y -= time * 0.70091;
|
||||
|
||||
t_noise *= s_noise.SampleLevel(smp_linear, PS.xy, 0);
|
||||
t_noise = t_noise * 0.5 + 0.5;
|
||||
|
||||
// out
|
||||
float maxIntens = I.fDensity;
|
||||
float3 result = maxIntens * s * att;
|
||||
|
||||
result *= lightmap.xyz;
|
||||
result *= Ldynamic_color.xyz * t_noise.xyz;
|
||||
|
||||
return float4(PushGamma(result), 0);
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue