init
This commit is contained in:
commit
2fe6ca2f65
1473 changed files with 251771 additions and 0 deletions
52
gamedata/shaders/d3d11/accum_base.ps.hlsl
Normal file
52
gamedata/shaders/d3d11/accum_base.ps.hlsl
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
#include "common.hlsli"
|
||||
#include "shadow.hlsli"
|
||||
|
||||
#include "metalic_roughness_light.hlsli"
|
||||
#include "ScreenSpaceContactShadows.hlsl"
|
||||
|
||||
uniform float4 m_lmap[2];
|
||||
uniform int Ldynamic_hud;
|
||||
|
||||
//LVutner: Force early-z
|
||||
[earlydepthstencil]
|
||||
float4 main(p_volume I, float4 pos2d : SV_POSITION) : SV_Target
|
||||
{
|
||||
float2 tcProj = I.tc.xy / I.tc.w;
|
||||
|
||||
IXrayGbuffer O;
|
||||
GbufferUnpack(tcProj, pos2d.xy, O);
|
||||
|
||||
float4 Point = float4(Ldynamic_hud > 0 ? O.PointHud.xyz : O.Point.xyz, 1.0f);
|
||||
|
||||
float3 LightDirection = normalize(O.PointReal.xyz - Ldynamic_pos.xyz);
|
||||
float3 Light = DirectLight(Ldynamic_color, LightDirection, O.Normal, O.View.xyz, O.Color, O.Metalness, O.Roughness, O.F0);
|
||||
|
||||
float3 Lightmap = ComputeLightAttention(Point.xyz - Ldynamic_pos.xyz, Ldynamic_pos.w);
|
||||
Point.xyz += O.Normal * 0.025f;
|
||||
|
||||
float4 PS = mul(m_shadow, Point);
|
||||
|
||||
#ifdef USE_SHADOW
|
||||
Lightmap *= max(Ldynamic_hud, shadow(PS));
|
||||
|
||||
#ifdef USE_HUD_SHADOWS
|
||||
if (O.Depth < 0.02f && dot(Lightmap.xyz, Light.xyz) > 0.0001f)
|
||||
{
|
||||
RayTraceContactShadow(tcProj, O.PointHud, LightDirection, Lightmap);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef USE_LMAP
|
||||
#ifdef USE_LMAPXFORM
|
||||
PS.x = dot(Point, m_lmap[0]);
|
||||
PS.y = dot(Point, m_lmap[1]);
|
||||
#endif
|
||||
Lightmap *= s_lmap.SampleLevel(smp_rtlinear, PS.xy / PS.w, 0.0f).xyz;
|
||||
#endif
|
||||
|
||||
Lightmap = PushGamma(Lightmap);
|
||||
return float4(Lightmap.xyz * Light.xyz, 0.0f);
|
||||
}
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue