fix missing vertex color. fix particles showing through block entities. improve sampling shape of ssao, ambient SSS, and shadow filtering. remade ambient SSS. temporary patch on DH water SSR. add updated zh_cn translation

This commit is contained in:
Xonk
2024-05-09 18:24:29 -04:00
parent f11e4cd4fa
commit e1787e4355
18 changed files with 431 additions and 230 deletions

View File

@ -269,9 +269,8 @@ vec3 ToneMap_AgX( vec3 color ) {
color = AgXInsetMatrix * color;
// Log2 encoding
color = max( color, 1e-10 ); // avoid 0 or negative numbers for log2
color = log2( color );
color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );
color = clamp(log2(color), AgxMinEv, AgxMaxEv);
color = (color - AgxMinEv) / (AgxMaxEv - AgxMinEv);
// Apply sigmoid
color = agxDefaultContrastApprox( color );
@ -282,7 +281,7 @@ vec3 ToneMap_AgX( vec3 color ) {
color = AgXOutsetMatrix * color;
// Linearize
color = pow(color, vec3(2.2));
color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );
// Gamut mapping. Simple clamp for now.
color = clamp( color, 0.0, 1.0 );
@ -310,9 +309,8 @@ vec3 ToneMap_AgX_minimal( vec3 color ) {
color = AgXInsetMatrix * color;
// Log2 encoding
color = max( color, 1e-10 ); // avoid 0 or negative numbers for log2
color = log2( color );
color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );
color = clamp(log2(color), AgxMinEv, AgxMaxEv);
color = (color - AgxMinEv) / (AgxMaxEv - AgxMinEv);
// Apply sigmoid
color = agxDefaultContrastApprox( color );

View File

@ -50,7 +50,7 @@ vec3 DoAmbientLightColor(
// i gotchu
float fadeLength = 10.0; // in blocks
vec3 cubicRadius = clamp( min(((LpvSize3-1.0) - lpvPos)/fadeLength, lpvPos/fadeLength) ,0.0,1.0);
vec3 cubicRadius = clamp( min(((LpvSize3-1.0) - lpvPos)/fadeLength, lpvPos/fadeLength) ,0.0,1.0);
float LpvFadeF = cubicRadius.x*cubicRadius.y*cubicRadius.z;
LpvFadeF = 1.0 - pow(1.0-pow(LpvFadeF,1.5),3.0); // make it nice and soft :)

View File

@ -4,13 +4,18 @@ const float LpvBlockPower = 4.0;
// LPV block brightness scale
const float LpvBlockBrightness = 2.0;
float lpvCurve(float values){
// return pow(values, LpvBlockPower) ;
return pow(1.0-sqrt(1.0-values),2.0);
// return values;
}
vec4 SampleLpvNearest(const in ivec3 lpvPos) {
vec4 lpvSample = (frameCounter % 2) == 0
? texelFetch(texLpv1, lpvPos, 0)
: texelFetch(texLpv2, lpvPos, 0);
lpvSample.b = pow(lpvSample.b, LpvBlockPower) * LpvBlockSkyRange.x;
lpvSample.b = lpvCurve(lpvSample.b) * LpvBlockSkyRange.x;
lpvSample.rgb = HsvToRgb(lpvSample.rgb);
return lpvSample;

View File

@ -125,7 +125,7 @@ const float sunPathRotation = -35; //[-90 -89 -88 -87 -86 -85 -84 -83 -82 -81 -8
const int shadowMapResolution = 2048; // [512 768 1024 1536 2048 3172 4096 8192]
const float shadowDistance = 128.0; // [32.0 48.0 64.0 80.0 96.0 112.0 128.0 144.0 160.0 176.0 192.0 208.0 224.0 240.0 256.0 272.0 288.0 304.0 320.0 336.0 352.0 368.0 384.0 512.0 768.0 1024.0 1536.0 2048.0 4096.0 8192.0]
#define OPTIMIZED_SHADOW_DISTANCE -1.0 // [-1.0 1.0]
#define OPTIMIZED_SHADOW_DISTANCE 1.0 // [-1.0 1.0]
const float shadowDistanceRenderMul = OPTIMIZED_SHADOW_DISTANCE;
const float entityShadowDistanceMul = 0.25; // [0.01 0.02 0.03 0.04 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.75 1.00]
@ -655,6 +655,12 @@ const vec3 aerochrome_color = mix(vec3(1.0, 0.0, 0.0), vec3(0.715, 0.303, 0.631)
#define DENOISE_SSS_AND_SSAO
// #define HYPER_DETAILED_WAVES
// #define DISABLE_ENCHANT_GLINT
// #define DISABLE_VANILLA_EMISSIVES
#define PARTICLE_RENDERING_FIX
///////////////////////////////////////////
// ----- DISTANT HORIZONS SETTINGS ----- //
///////////////////////////////////////////
@ -739,3 +745,5 @@ const vec3 aerochrome_color = mix(vec3(1.0, 0.0, 0.0), vec3(0.715, 0.303, 0.631)
#endif
#if DH_KNOWN_ISSUES == 0
#endif
#ifdef PARTICLE_RENDERING_FIX
#endif