add game&rawdata
This commit is contained in:
parent
0133cd976c
commit
49b34b5546
45731 changed files with 709831 additions and 0 deletions
57
gamedata/shaders/d3d11/combine_1.ps.hlsl
Normal file
57
gamedata/shaders/d3d11/combine_1.ps.hlsl
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
#include "common.hlsli"
|
||||
|
||||
#if defined(USE_OFFSCREEN_REFLECTIONS) && !defined(USE_SSLR_REFLECTIONS)
|
||||
#define USE_VIEW_REFLECTIONS
|
||||
#endif
|
||||
|
||||
#include "metalic_roughness_light.hlsli"
|
||||
#include "metalic_roughness_ambient.hlsli"
|
||||
#include "reflections.hlsli"
|
||||
|
||||
Texture2D<float> s_occ;
|
||||
|
||||
struct _input
|
||||
{
|
||||
float4 tc0 : TEXCOORD0;
|
||||
float2 tcJ : TEXCOORD1;
|
||||
float4 pos2d : SV_POSITION;
|
||||
};
|
||||
|
||||
float4 main(_input I) : SV_Target
|
||||
{
|
||||
IXrayGbuffer O;
|
||||
GbufferUnpack(I.tc0.xy, I.pos2d.xy, O);
|
||||
float3 Light = s_accumulator.Load(int3(I.pos2d.xy, 0)).xyz;
|
||||
|
||||
#ifdef USE_R2_STATIC_SUN
|
||||
Light += O.SSS * DirectLight(Ldynamic_color, Ldynamic_dir.xyz, O.Normal, O.View.xyz, O.Color, O.Metalness, O.Roughness, O.F0);
|
||||
#endif
|
||||
|
||||
float Occ = O.AO * s_occ.SampleLevel(smp_rtlinear, I.tc0.xy, 0.0f).x;
|
||||
|
||||
#ifndef USE_LEGACY_LIGHT
|
||||
#ifdef USE_SSLR_REFLECTIONS
|
||||
float3 SpecularIrradance = s_refl.SampleLevel(smp_rtlinear, I.tc0, 0.0).xyz;
|
||||
SpecularIrradance *= rcp(1.00001f - SpecularIrradance);
|
||||
#else
|
||||
float3 SpecularIrradance = CompureSpecularIrradance(reflect(O.View, O.Normal), O.Hemi, O.Roughness);
|
||||
#endif
|
||||
|
||||
float3 DiffuseIrradance = CompureDiffuseIrradance(O.Normal, O.Hemi) + L_ambient.xyz;
|
||||
float3 Ambient = AmbientLighting(DiffuseIrradance, SpecularIrradance, max(0.0, dot(O.Normal, -O.View.xyz)), O.Color, O.Metalness, O.Roughness, O.F0);
|
||||
#else
|
||||
float3 Ambient = AmbientLighting(O.View, O.Normal, O.Color, O.Metalness, O.Roughness, O.Hemi, O.F0);
|
||||
#endif
|
||||
|
||||
float3 Color = Occ * Ambient + Light;
|
||||
|
||||
float Fog = PushGamma(saturate(O.ViewDist * fog_params.w + fog_params.x));
|
||||
Color = lerp(Color, PushGamma(fog_color.xyz), Fog);
|
||||
|
||||
#ifdef USE_LEGACY_LIGHT
|
||||
Fog *= Fog;
|
||||
#endif
|
||||
|
||||
return float4(Color, Fog);
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue