Added New Mods; Swapped Mods and Removed Some

Removed EGUI in favor of UI Rework by Sota

Added in GTR Optimized for higher res textures, over Zone Reality Remade and removed all files that conflicted from ZRR to save storage space.
This commit is contained in:
2024-03-30 06:43:01 -04:00
parent 48d440e14c
commit 255081e1ee
2883 changed files with 39223 additions and 61569 deletions
@@ -0,0 +1,142 @@
#define USE_TDETAIL
#include "common.h"
#define PARALLAX_NEAR_PLANE 0.01
#define PARALLAX_FAR_PLANE 35
#define PARALLAX_DEPTH 0.02
//Height maps
Texture2D s_dnE_r;
Texture2D s_dnE_g;
Texture2D s_dnE_b;
Texture2D s_dnE_a;
struct surface {
float4 base;
float3 normal;
float gloss;
};
void perform_tc_offset(inout p_bumped p, in Texture2D s_bumpX_new)
{
if ((p.position.z > PARALLAX_NEAR_PLANE) && (p.position.z < PARALLAX_FAR_PLANE))
{
float3 eye = normalize(mul(float3x3(p.M1.x, p.M2.x, p.M3.x,
p.M1.y, p.M2.y, p.M3.y,
p.M1.z, p.M2.z, p.M3.z), -p.position));
// steps minmax and refines minmax
int4 steps = int4(8, 24, 4, 8); // 3..10, 7..16
bool need_disp_lerp = true;
bool need_refine = true;
float view_angle = abs(dot(float3(0.0, 0.0, 1.0), eye));
float layer_step = rcp(lerp(steps.y, steps.x, view_angle));
float2 tc_step = layer_step * eye.xy * PARALLAX_DEPTH;
float2 displaced_tc = p.tcdbump;
float curr_disp, curr_layer = 0.0;
do
{
displaced_tc -= tc_step;
curr_disp = 1 - s_bumpX_new.SampleLevel(smp_base, displaced_tc, 0).w;
curr_layer += layer_step;
} while (curr_layer < curr_disp);
if (need_refine)
{
displaced_tc += tc_step;
curr_layer -= layer_step;
float refine_steps = lerp(steps.w, steps.z, view_angle);
tc_step /= refine_steps;
layer_step /= refine_steps;
do
{
displaced_tc -= tc_step;
curr_disp = 1.0 - s_bumpX_new.SampleLevel(smp_base, displaced_tc, 0).w;
curr_layer += layer_step;
} while (curr_layer < curr_disp);
}
if (need_disp_lerp)
{
float2 displaced_tc_prev = displaced_tc + tc_step;
float after_depth = curr_disp - curr_layer;
float before_depth = 1.0 - s_bumpX_new.SampleLevel(smp_base, displaced_tc_prev, 0).w - curr_layer + layer_step;
float weight = after_depth / (after_depth - before_depth);
displaced_tc = lerp(displaced_tc, displaced_tc_prev, weight);
}
p.tcdbump = displaced_tc;
}
}
surface fill(p_bumped p, Texture2D s_base_det, Texture2D s_bump_det, Texture2D s_bumpX_det, uint need_mask, float mask)
{
surface S;
mask = need_mask ? mask : 1;
if (mask <= 0)
{
S.base = (0.0, 0.0, 0.0, 0.0);
S.gloss = 0.0;
S.normal = (0.0, 0.0, 0.0);
return S;
}
perform_tc_offset(p, s_base_det);
S.base = s_base_det.Sample(smp_base, p.tcdbump) * mask;
float4 Nu = s_bump_det.Sample(smp_base, p.tcdbump);
S.gloss = Nu.x * mask;
S.normal = (Nu.wzy - 0.5) * mask;
return S;
}
f_deffer main(p_bumped I)
{
float4 C = s_base.Sample(smp_base, I.tcdh.xy);
float4 mask = s_mask.Sample(smp_base, I.tcdh.xy);
mask /= dot(mask, 1.0);
surface Sr = fill(I, s_dt_r, s_dn_r, s_dnE_r, 1, mask.r);
surface Sg = fill(I, s_dt_g, s_dn_g, s_dnE_g, 1, mask.g);
surface Sb = fill(I, s_dt_b, s_dn_b, s_dnE_b, 1, mask.b);
surface Sa = fill(I, s_dt_a, s_dn_a, s_dnE_a, 1, mask.a);
float4 Ne = float4(normalize(mul(float3x3(I.M1, I.M2, I.M3), Sr.normal + Sg.normal + Sb.normal + Sa.normal)), C.w);
C.xyz = (Sr.base.xyz + Sg.base.xyz + Sb.base.xyz + Sa.base.xyz) * C.xyz * 2.0;
float G = Sr.gloss + Sg.gloss + Sb.gloss + Sa.gloss;
#ifdef USE_R2_STATIC_SUN
float ms = s_lmap.Sample(smp_base, I.tcdh.xy).w;
#else
float ms = xmaterial;
#endif
return pack_gbuffer(
Ne, // normal.hemi
float4(I.position.xyz, ms), // depth.( mtl or sun )
float4(C.rgb, G * 0.6) // color.gloss
);
}

Some files were not shown because too many files have changed in this diff Show More