ADD mob hit glow, RGB curve sliders, better rough reflections. FIX world border, enchant glint, unmatched lighting on translucents and solids. TWEAK a bunch of stuff all over the place i cant remember

This commit is contained in:
Xonk 2023-07-12 19:29:20 -04:00
parent 7618c0abba
commit 0b4bf8e7c6
31 changed files with 1013 additions and 361 deletions

View File

@ -158,7 +158,6 @@ void main() {
/* DRAWBUFFERS:3 */
vec2 texcoord = gl_FragCoord.xy*texelSize;
float z = texture2D(depthtex1,texcoord).x;
vec2 tempOffset=TAA_Offset;
@ -184,6 +183,10 @@ void main() {
float NdotL = clamp(dot(normal,WsunVec),0.0,1.0);
// vec4 normalAndAO = texture2D(colortex15,texcoord);
// vec3 FlatNormals = normalAndAO.rgb * 2.0 - 1.0;
// float vanillAO = clamp(normalAndAO.a,0.0,1.0) ;
float vanillAO = clamp(texture2D(colortex15,texcoord).a,0.0,1.0) ;
if(lightmap.y < 0.1 && !entities){
@ -193,7 +196,7 @@ void main() {
float SpecularTex = texture2D(colortex8,texcoord).z;
float LabSSS = clamp((-65.0 + SpecularTex * 255.0) / 190.0 ,0.0,1.0);
float LabSSS = clamp((-64.0 + SpecularTex * 255.0) / 191.0 ,0.0,1.0);
#ifndef Variable_Penumbra_Shadows
if (LabSSS > 0.0 && !hand && NdotL < 0.001) minshadowfilt += 50;
@ -201,14 +204,9 @@ void main() {
gl_FragData[0] = vec4(minshadowfilt, 0.1, 0.0, 0.0);
if (z < 1.0){
if (z < 1.0 && !hand){
// if( translucent || translucent2)
if (!hand){
vec3 fragpos = toScreenSpace(vec3(texcoord/RENDER_SCALE-vec2(tempOffset)*texelSize*0.5,z));
vec3 fragpos = toScreenSpace(vec3(texcoord/RENDER_SCALE-vec2(tempOffset)*texelSize*0.5,z));
#ifdef Variable_Penumbra_Shadows
@ -216,6 +214,8 @@ void main() {
vec3 p3 = mat3(gbufferModelViewInverse) * fragpos + gbufferModelViewInverse[3].xyz;
// GriAndEminShadowFix(p3, viewToWorld(FlatNormals), vanillAO, lightmap.y, entities);
vec3 projectedShadowPosition = mat3(shadowModelView) * p3 + shadowModelView[3].xyz;
projectedShadowPosition = diagonal3(shadowProjection) * projectedShadowPosition + shadowProjection[3].xyz;
@ -247,7 +247,10 @@ void main() {
vec2 offsetS = tapLocation_alternate(i, 0.0, 7, 20, randomDir);
float weight = 3.0 + (i+blueNoise() ) *rdMul/SHADOW_FILTER_SAMPLE_COUNT*shadowMapResolution*distortFactor/2.7;
// float d = texelFetch2D( shadow, ivec2((projectedShadowPosition.xy+offsetS*rdMul)*shadowMapResolution),0).x;
float d = texelFetch2D( shadow, ivec2((projectedShadowPosition.xy+offsetS*rdMul)*shadowMapResolution),0).x;
float b = smoothstep(weight*diffthresh/2.0, weight*diffthresh, projectedShadowPosition.z - d);
blockerCount += b;
@ -265,7 +268,5 @@ void main() {
}
}
#endif
}
}
}

View File

@ -12,7 +12,6 @@ const bool shadowHardwareFiltering = true;
flat varying vec3 averageSkyCol_Clouds;
flat varying vec4 lightCol;
flat varying vec2 rodExposureDepth;
flat varying vec3 WsunVec;
flat varying vec2 TAA_Offset;
@ -44,7 +43,6 @@ uniform sampler2DShadow shadow;
varying vec4 normalMat;
uniform int heldBlockLightValue;
uniform int frameCounter;
uniform float screenBrightness;
uniform int isEyeInWater;
uniform float far;
uniform float near;
@ -69,6 +67,9 @@ uniform vec3 sunVec;
uniform ivec2 eyeBrightnessSmooth;
uniform ivec2 eyeBrightness;
uniform float screenBrightness;
flat varying vec2 rodExposureDepth;
flat varying float WinterTimeForSnow;
// uniform int worldTime;
@ -607,6 +608,7 @@ vec3 SubsurfaceScattering_sun(vec3 albedo, float Scattering, float Density, floa
scatter *= 0.5 + CustomPhase(lightPos, 1.0,30.0)*20;
return scatter;
}
vec3 SubsurfaceScattering_sky(vec3 albedo, float Scattering, float Density){
@ -614,7 +616,8 @@ vec3 SubsurfaceScattering_sky(vec3 albedo, float Scattering, float Density){
vec3 absorbed = max(luma(albedo) - albedo,0.0);
vec3 scatter = sqrt(exp(-(absorbed * Scattering * 15))) * (1.0 - Scattering);
scatter *= pow(Density,LabSSS_Curve);
// scatter *= pow(Density,LabSSS_Curve);
scatter *= clamp(1 - exp(Density * -10),0,1);
return scatter;
}
@ -804,7 +807,9 @@ void main() {
////// --------------- UNPACK MISC --------------- //////
vec4 SpecularTex = texture2D(colortex8,texcoord);
float LabSSS = clamp((-65.0 + SpecularTex.z * 255.0) / 190.0 ,0.0,1.0);
// float LabSSS = clamp((-65.0 + SpecularTex.z * 255.0) / 190.0 ,0.0,1.0);
float LabSSS = clamp((-64.0 + SpecularTex.z * 255.0) / 191.0 ,0.0,1.0);
vec4 normalAndAO = texture2D(colortex15,texcoord);
vec3 FlatNormals = normalAndAO.rgb * 2.0 - 1.0;
@ -835,7 +840,6 @@ void main() {
vec3 ambientCoefs = normal/dot(abs(normal),vec3(1.));
float lightleakfix = clamp(pow(eyeBrightnessSmooth.y/240. + lightmap.y,2) ,0.0,1.0);
vec3 DirectLightColor = (lightCol.rgb/80.0);
// DirectLightColor *= clamp(abs(WsunVec.y)*2,0.,1.);
@ -946,13 +950,13 @@ void main() {
//////////////////////////////// SUN SSS ////////////////////////////////
vec3 SSS = vec3(0.0);
#ifndef Variable_Penumbra_Shadows
if(LabSSS > 0 ) {
SHADOWBLOCKERDEPTBH = pow(1.0 - Shadows,2);
}
#endif
#if SSS_TYPE != 0
#ifndef Variable_Penumbra_Shadows
if(LabSSS > 0 ) {
SHADOWBLOCKERDEPTBH = pow(1.0 - Shadows,2);
}
#endif
if (outsideShadowMap) SHADOWBLOCKERDEPTBH = 0.0;
@ -966,7 +970,7 @@ void main() {
SSS = SubsurfaceScattering_sun(albedo, SHADOWBLOCKERDEPTBH, sunSSS_density, clamp(dot(np3, WsunVec),0.0,1.0)) ;
SSS *= DirectLightColor;
if (isEyeInWater == 0) SSS *= lightleakfix; // light leak fix
if (isEyeInWater == 0) SSS *= clamp(pow(eyeBrightnessSmooth.y/240. + lightmap.y,2.0) ,0.0,1.0); // light leak fix
#endif
if (!hand){
@ -999,12 +1003,17 @@ void main() {
vec3 Indirect_lighting = vec3(1.0);
// float skylight = clamp(abs(ambientCoefs.y + 1.0),0.35,2.0);
float skylight = clamp(ambientCoefs.y + 0.5,0.25,2.0);
float skylight = clamp(ambientCoefs.y + 0.5,0.25,2.0) * 1.35;
// skylight *= skylight;
// if(texcoord.x >0.5) skylight = clamp(abs(ambientCoefs.y + 1.0),0.35,2.0);
#if indirect_effect == 2 || indirect_effect == 3 || indirect_effect == 4
if (!hand) skylight = 1.0;
#endif
AmbientLightColor += (lightningEffect * 10) * skylight * pow(lightmap.y,2);
// do this to make underwater shading easier.
vec2 newLightmap = lightmap.xy;
if((isEyeInWater == 0 && iswater) || (isEyeInWater == 1 && !iswater)) newLightmap.y = clamp(newLightmap.y,0,1);
@ -1060,7 +1069,7 @@ void main() {
ScreenSpace_SSS(SkySSS, fragpos, blueNoise(gl_FragCoord.xy).rg, FlatNormals, isLeaf);
#endif
vec3 ambientColor = ((AmbientLightColor * 2.0 * ambient_brightness) * 8./150./3.) * 1.5;
vec3 ambientColor = ((AmbientLightColor * ambient_brightness) / 30.0 ) * 1.5;
float lightmap = pow(newLightmap.y,3);
float uplimit = clamp(1.0-pow(clamp(ambientCoefs.y + 0.5,0.0,1.0),2),0,1);
@ -1182,9 +1191,10 @@ void main() {
float estimatedDepth = Vdiff * abs(VdotU) ; //assuming water plane
float estimatedSunDepth = estimatedDepth/abs(WsunVec.y); //assuming water plane
float custom_lightmap_T = pow(texture2D(colortex14, texcoord).a,3.0);
float custom_lightmap_T = clamp(pow(texture2D(colortex14, texcoord).a,3.0),0.0,1.0);
vec3 ambientColVol = (averageSkyCol_Clouds*8./150./2.) * max(custom_lightmap_T,MIN_LIGHT_AMOUNT*0.0015);
vec3 lightningColor = (lightningEffect / 3) * (max(eyeBrightnessSmooth.y,0)/240.);
vec3 ambientColVol = max((averageSkyCol_Clouds / 30.) * custom_lightmap_T, vec3(0.2,0.4,1.0) * (MIN_LIGHT_AMOUNT*0.01 + nightVision)) + lightningColor;
vec3 lightColVol = DirectLightColor;
if (isEyeInWater == 0) waterVolumetrics(gl_FragData[0].rgb, fragpos0, fragpos, estimatedDepth , estimatedSunDepth, Vdiff, noise, totEpsilon, scatterCoef, ambientColVol, lightColVol, dot(np3, WsunVec));

View File

@ -4,6 +4,7 @@
flat varying vec3 averageSkyCol_Clouds;
flat varying vec4 lightCol;
flat varying vec2 rodExposureDepth;
flat varying vec3 WsunVec;
@ -70,6 +71,8 @@ void main() {
WsunVec = lightCol.a*normalize(mat3(gbufferModelViewInverse) *sunPosition);
zMults = vec3((far * near)*2.0,far+near,far-near);
rodExposureDepth = texelFetch2D(colortex4,ivec2(14,37),0).rg;
rodExposureDepth.y = sqrt(rodExposureDepth.y/65000.0);
WinterTimeForSnow = 0.0;
@ -82,10 +85,6 @@ void main() {
#endif
rodExposureDepth = texelFetch2D(colortex4,ivec2(14,37),0).rg;
rodExposureDepth.y = sqrt(rodExposureDepth.y/65000.0);
TAA_Offset = offsets[frameCounter%8];
#ifndef TAA

View File

@ -279,7 +279,7 @@ void main() {
#ifdef Cumulus
#ifdef Cloud_Fog
vec4 VL_CLOUDFOG = InsideACloudFog(fragpos, vec2(R2_dither(),blueNoise()), lightCol.rgb/80., moonColor/150., (averageSkyCol*2.0) * 8./150./3.);
vec4 VL_CLOUDFOG = InsideACloudFog(fragpos, vec2(R2_dither(),blueNoise()), lightCol.rgb/80., moonColor/150., averageSkyCol/30.);
// vec4 rays = vec4(0.0);
// if(rainStrength > 0.0){
@ -323,7 +323,8 @@ void main() {
estEyeDepth *= estEyeDepth*estEyeDepth*34.0;
vec3 ambientColVol = averageSkyCol_Clouds*8./150./2.0;
vec3 lightningColor = (lightningEffect / 3) * (max(eyeBrightnessSmooth.y,0)/240.);
vec3 ambientColVol = (averageSkyCol_Clouds/30.0) + lightningColor;
vec3 lightColVol = (lightCol.rgb / 80.);
estEyeDepth = max(Water_Top_Layer - cameraPosition.y,0.0);

View File

@ -254,7 +254,7 @@ void main() {
vec4 vl = BilateralUpscale(colortex0, depthtex1, gl_FragCoord.xy, frDepth, vec2(0.0));
if (TranslucentShader.a > 0.0 && !hand){
if (TranslucentShader.a > 0.0){
#ifdef Glass_Tint
if(albedo.a > 0.2) color = color*albedo.rgb + color * clamp(pow(1.0-luma(albedo.rgb),20.),0.0,1.0);
#endif
@ -333,10 +333,6 @@ void main() {
gl_FragData[0].r = vl.a; // pass fog alpha so bloom can do bloomy fog
// applyContrast(color.rgb,CONTRAST);
gl_FragData[1].rgb = clamp(color.rgb,0.0,68000.0);
// gl_FragData[1].rgb = vec3(tangentNormals,0.0);
}

View File

@ -77,12 +77,13 @@ uniform vec2 texelSize;
uniform float frameTimeCounter;
uniform float viewHeight;
uniform float viewWidth;
uniform int hideGUI;
uniform int frameCounter;
uniform int framemod8;
uniform vec3 previousCameraPosition;
uniform mat4 gbufferPreviousModelView;
uniform int hideGUI;
#define fsign(a) (clamp((a)*1e35,0.,1.)*2.-1.)
#include "/lib/projections.glsl"

View File

@ -43,6 +43,8 @@ uniform vec3 cameraPosition;
uniform float far;
uniform ivec2 eyeBrightnessSmooth;
uniform float lightningFlash;
#include "/lib/Shadow_Params.glsl"
#include "/lib/util.glsl"
#include "/lib/ROBOBO_sky.glsl"
@ -104,6 +106,7 @@ const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.),
vec2(3,7.)/8.,
vec2(7.,-7.)/8.);
void main() {
/* DRAWBUFFERS:4 */
gl_FragData[0] = vec4(0.0);
@ -166,7 +169,10 @@ if (gl_FragCoord.x > 18.+257. && gl_FragCoord.y > 1. && gl_FragCoord.x < 18+257+
//Temporally accumulate sky and light values
vec3 temp = texelFetch2D(colortex4,ivec2(gl_FragCoord.xy),0).rgb;
vec3 curr = gl_FragData[0].rgb*150.;
gl_FragData[0].rgb = clamp(mix(temp,curr,0.07),0.0,65000.);
float flashtiming = pow(clamp((0.01-lightningFlash)*100,0,1),25);
gl_FragData[0].rgb = clamp(mix(temp,curr, 0.07 * flashtiming),0.0,65000.);
//Exposure values
if (gl_FragCoord.x > 10. && gl_FragCoord.x < 11. && gl_FragCoord.y > 19.+18. && gl_FragCoord.y < 19.+18.+1 )

View File

@ -96,7 +96,7 @@ void main() {
vec3 fragpos = toScreenSpace(vec3(halfResTC*texelSize,1));
vec4 currentClouds = renderClouds(fragpos,vec2(R2_dither(),blueNoise2()), sunColor/80., moonColor/150., (averageSkyCol_Clouds*2.0)* 8./150./3.);
vec4 currentClouds = renderClouds(fragpos,vec2(R2_dither(),blueNoise2()), sunColor/80., moonColor/150., averageSkyCol_Clouds/30.0);
gl_FragData[0] = currentClouds;

View File

@ -3,7 +3,7 @@
### all the different strengths of subsurface scattering and what entities to put them on.
#medium sss (same as strong sss for blocks)
entity.1100 = slime giant ghast
entity.1100 = slime giant ghast elder_guardian
#weak sss (same as weak sss for blocks)
entity.1200 = ender_dragon player sheep frog chicken snow_golem polar_bear zombie_horse armor_stand arrow squid bat cat cod cow donkey fox horse mooshroom mule ocelot parrot pig piglin polar_bear pufferfish rabbit salmon strider tropical_fish turtle villager wandering_trader bee cave_spider dolphin enderman llama panda spider wolf zombified_piglin blaze creeper drowned endermite evoker guardian hoglin husk magma_cube phantom piglin_brute pillager ravager silverfish stray vex vindicator witch zoglin zombie zombie_villager wither trader_llama

View File

@ -11,6 +11,7 @@ uniform sampler2D colortex7;
uniform vec2 texelSize;
uniform float viewWidth;
uniform float viewHeight;
uniform float aspectRatio;
uniform float frameTimeCounter;
uniform int frameCounter;
uniform int isEyeInWater;
@ -19,6 +20,7 @@ uniform int isEyeInWater;
#include "/lib/color_transforms.glsl"
#include "/lib/color_dither.glsl"
#include "/lib/res_params.glsl"
vec4 SampleTextureCatmullRom(sampler2D tex, vec2 uv, vec2 texSize )
{
// We're going to sample a a 4x4 grid of texels surrounding the target UV coordinate. We'll do this by rounding
@ -84,14 +86,23 @@ float upperCurve(float x) {
}
void applyLuminanceCurve(inout vec3 color, float darks, float brights){
// color.r = color.r < 0.5 ? pow(2.0 * color.r, darks) / 2.0 : 1.0 - (pow(2.0 - 2.0 * color.r, brights) / 2.0);
// color.r = color.r < 0.5 ? pow(2.0 * color.r, darks) / 2.0 : 1.0 - (pow(2.0 - 2.0 * color.r, brights) / 2.0);
// color.g = color.g < 0.5 ? pow(2.0 * color.g, darks) / 2.0 : 1.0 - (pow(2.0 - 2.0 * color.g, brights) / 2.0);
// color.b = color.b < 0.5 ? pow(2.0 * color.b, darks) / 2.0 : 1.0 - (pow(2.0 - 2.0 * color.b, brights) / 2.0);
color.r += darks * lowerCurve(color.r) + brights * upperCurve(color.r);
color.g += darks * lowerCurve(color.g) + brights * upperCurve(color.g);
color.b += darks * lowerCurve(color.b) + brights * upperCurve(color.b);
}
void applyColorCurve(inout vec3 color, vec4 darks, vec4 brights){
color.r += (darks.r + darks.a) * lowerCurve(color.r) + (brights.r + brights.a) * upperCurve(color.r);
color.g += (darks.g + darks.a) * lowerCurve(color.g) + (brights.g + brights.a) * upperCurve(color.g);
color.b += (darks.b + darks.a) * lowerCurve(color.b) + (brights.b + brights.a) * upperCurve(color.b);
}
void main() {
#ifdef BICUBIC_UPSCALING
vec3 col = SampleTextureCatmullRom(colortex7,texcoord,1.0/texelSize).rgb;
@ -122,8 +133,8 @@ void main() {
vec3 FINAL_COLOR = clamp(int8Dither(col,texcoord),0.0,1.0);
#ifdef LUMINANCE_CURVE
applyLuminanceCurve(FINAL_COLOR, LOWER_CURVE, UPPER_CURVE);
#ifdef COLOR_CURVE
applyColorCurve(FINAL_COLOR, vec4(R_LOWER_CURVE, G_LOWER_CURVE, B_LOWER_CURVE, LOWER_CURVE), vec4(R_UPPER_CURVE, G_UPPER_CURVE, B_UPPER_CURVE, UPPER_CURVE));
#endif
applyContrast(FINAL_COLOR, CONTRAST); // for fun

View File

@ -100,7 +100,7 @@ vec3 normVec (vec3 vec){
/* DRAWBUFFERS:29 */
void main() {
vec4 TEXTURE = texture2D(texture, lmtexcoord.xy)*color;
vec4 TEXTURE = texture2D(texture, lmtexcoord.xy) * color;
vec2 tempOffset = offsets[framemod8];
vec3 fragpos = toScreenSpace(gl_FragCoord.xyz*vec3(texelSize/RENDER_SCALE,1.0)-vec3(vec2(tempOffset)*texelSize*0.5,0.0));
@ -109,12 +109,16 @@ void main() {
float cloudOcclusion = 0.0;
if(TEXTURE.a > 0.0) cloudOcclusion = 1.0 - GetCloudSkyOcclusion(p3 + cameraPosition)*0.9;
if(TEXTURE.a > 0.0) cloudOcclusion = 1.0 - GetCloudSkyOcclusion(p3 + cameraPosition)*0.8;
gl_FragData[1].a = TEXTURE.a * cloudOcclusion ; // for bloomy rain and stuff
#ifndef WEATHER
gl_FragData[1].a = 1.0 - TEXTURE.a;
#ifdef LIT
gl_FragData[1].a = 0.0;
#endif
gl_FragData[0].a = TEXTURE.a;
vec3 Albedo = toLinear(TEXTURE.rgb);
@ -123,6 +127,7 @@ void main() {
if(TEXTURE.a > 0.0){
float Shadows = 1.0;
vec3 p3_shadow = mat3(gbufferModelViewInverse) * fragpos + gbufferModelViewInverse[3].xyz;
vec3 projectedShadowPosition = mat3(shadowModelView) * p3_shadow + shadowModelView[3].xyz;
projectedShadowPosition = diagonal3(shadowProjection) * projectedShadowPosition + shadowProjection[3].xyz;
@ -147,15 +152,21 @@ void main() {
Shadows *= GetCloudShadow(p3);
#endif
vec3 AmbientLightColor = averageSkyCol_Clouds;
vec3 DirectLightColor = lightCol.rgb/80.0;
AmbientLightColor += (lightningEffect * 10) * pow(lmtexcoord.w,2);
float lightleakfix = clamp(eyeBrightnessSmooth.y/240.0,0.0,1.0);
float phase = phaseg(clamp(dot(np3, WsunVec),0.0,1.0),(1.0-gl_FragData[0].a) * 0.8 + 0.1) + 1.0 ;
vec3 Direct_lighting = DoDirectLighting(lightCol.rgb/80., Shadows, 1.0, 0.0) * phase * lightleakfix;
vec3 Direct_lighting = DoDirectLighting(DirectLightColor, Shadows, 1.0, 0.0) * phase * lightleakfix;
vec3 Indirect_lighting = DoAmbientLighting(AmbientLightColor, vec3(TORCH_R,TORCH_G,TORCH_B), clamp(lmtexcoord.zw,0.0,1.0), 5.0);
vec3 Indirect_lighting = DoAmbientLighting(averageSkyCol_Clouds, vec3(TORCH_R,TORCH_G,TORCH_B), lmtexcoord.zw, 5.0);
// gl_FragData[0].a = TEXTURE.a;
gl_FragData[0].rgb = (Direct_lighting + Indirect_lighting) * Albedo;
}
#endif
}

View File

@ -76,6 +76,8 @@ uniform float rainStrength;
uniform sampler2D noisetex;//depth
uniform sampler2D depthtex0;
uniform vec4 entityColor;
in vec3 velocity;
flat varying int PHYSICSMOD_SNOW;
@ -415,6 +417,8 @@ void main() {
vec4 Albedo = texture2D_POMSwitch(texture, adjustedTexCoord.xy, vec4(dcdx,dcdy), ifPOM) * color;
if(LIGHTNING > 0) Albedo = vec4(1);
float ENDPORTAL_EFFECT = PORTAL > 0 ? EndPortalEffect(Albedo, fragpos, worldpos, tbnMatrix) : 0;
@ -526,6 +530,11 @@ void main() {
}
#endif
// hit glow effect...
#ifdef ENTITIES
Albedo.rgb = mix(Albedo.rgb, entityColor.rgb, entityColor.a);
gl_FragData[2].a = mix(gl_FragData[2].a, 0.5, entityColor.a);;
#endif
//////////////////////////////// ////////////////////////////////
//////////////////////////////// FINALIZE ////////////////////////////////
@ -534,7 +543,7 @@ void main() {
#ifdef WORLD
#ifdef Puddles
float porosity = 0.35;
float porosity = 0.4;
#ifdef Porosity
porosity = SpecularTex.z >= 64.5/255.0 ? 0.0 : (SpecularTex.z*255.0/64.0)*0.65;
#endif

View File

@ -401,7 +401,7 @@ if (gl_FragCoord.x * texelSize.x < RENDER_SCALE.x && gl_FragCoord.y * texelSize
Shadows += shadow2D(shadow,vec3(projectedShadowPosition + vec3(rdMul*offsetS,-diffthresh*weight))).x/9.0;
}
#else
Shadows = shadow2D(shadow, projectedShadowPosition).x;
Shadows = shadow2D(shadow, projectedShadowPosition + vec3(0.0,0.0,-0.0001)).x;
#endif
shadowmapindicator = 1;
@ -414,6 +414,9 @@ if (gl_FragCoord.x * texelSize.x < RENDER_SCALE.x && gl_FragCoord.y * texelSize
Shadows *= GetCloudShadow(p3);
#endif
vec3 AmbientLightColor = averageSkyCol_Clouds;
vec3 DirectLightColor = lightCol.rgb/80.0;
vec3 WS_normal = viewToWorld(normal);
vec3 ambientCoefs = WS_normal/dot(abs(WS_normal),vec3(1.));
float skylight = clamp(ambientCoefs.y + 0.5,0.25,2.0);
@ -423,8 +426,10 @@ if (gl_FragCoord.x * texelSize.x < RENDER_SCALE.x && gl_FragCoord.y * texelSize
float lightleakfix = clamp(pow(eyeBrightnessSmooth.y/240. + lightmaps2.y,2) ,0.0,1.0);
vec3 Indirect_lighting = DoAmbientLighting(averageSkyCol_Clouds, vec3(TORCH_R,TORCH_G,TORCH_B), lightmaps2, skylight);
vec3 Direct_lighting = DoDirectLighting(lightCol.rgb/80.0, Shadows, NdotL, 0.0);
AmbientLightColor += (lightningEffect * 10) * skylight * pow(lightmaps2.y,2);
vec3 Indirect_lighting = DoAmbientLighting(AmbientLightColor, vec3(TORCH_R,TORCH_G,TORCH_B), lightmaps2, skylight);
vec3 Direct_lighting = DoDirectLighting(DirectLightColor, Shadows, NdotL, 0.0);
vec3 FinalColor = (Direct_lighting + Indirect_lighting) * Albedo;
@ -469,7 +474,7 @@ if (gl_FragCoord.x * texelSize.x < RENDER_SCALE.x && gl_FragCoord.y * texelSize
// SSR, Sky, and Sun reflections
#ifdef WATER_BACKGROUND_SPECULAR
SkyReflection = skyCloudsFromTex(wrefl,colortex4).rgb / 150. * 5.;
SkyReflection = skyCloudsFromTex(wrefl,colortex4).rgb / 30.0;
// SkyReflection = vec3(CaveFogColor_R,CaveFogColor_G,CaveFogColor_B)/
#endif
#ifdef WATER_SUN_SPECULAR

View File

@ -0,0 +1,5 @@
#version 120
void main() {
gl_Position.xyz = vec3(-1.0);
}

View File

@ -40,16 +40,11 @@ void main() {
vec4 Albedo = texture2D(texture, texcoord);
// if (Albedo.a > 0.1) Albedo.a = 1.0;
// else Albedo.a = 0.0;
// vec4 data1 = vec4(1);
// gl_FragData[0] = vec4(encodeVec2(Albedo.x,data1.x), encodeVec2(Albedo.y,data1.y), encodeVec2(Albedo.z,data1.z), encodeVec2(data1.w,Albedo.w));
Albedo *= color;
Albedo.rgb = toLinear(Albedo.rgb);
gl_FragData[0] = Albedo;
if (gl_FragData[0].r > 65000.) gl_FragData[0].rgba = vec4(0.);
gl_FragData[1] = vec4(0.0,0.0,0.0,0.5);
gl_FragData[1] = vec4(0.0,0.0,0.0,0.5);
}

View File

@ -34,7 +34,7 @@ void main() {
gl_Position = ftransform();
// if(gl_Color.a < 0.1 ) gl_Position = vec4(10,10,10,1);
// gl_Position = vec4(10,10,10,1);
texcoord = (gl_MultiTexCoord0).xy;
color = gl_Color;

View File

@ -1,5 +1,6 @@
#version 120
#define LIT
// #define WEATHER
#define PARTICLES
#include "gbuffers_all_particles.fsh"

View File

@ -243,7 +243,7 @@ option.DOF_QUALITY=Depth Of Field
value.DOF_QUALITY.5=Jitter
option.MANUAL_FOCUS=Focus
option.DOF_ANAMORPHIC_RATIO=Anamorphic Ratio
value.MANUAL_FOCUS.-2=Autofocus
value.MANUAL_FOCUS.-2=Autofocus
value.MANUAL_FOCUS.-1=Brightness Slider
value.FOCUS_LASER_COLOR.0=Red
value.FOCUS_LASER_COLOR.1=Green

View File

@ -16,7 +16,7 @@ screen.lightning_color=Relâmpago
option.Lightning_G=Relâmpago Verde
option.Lightning_B=Relâmpago Azul
option.WhiteWorld=MundoBranco
option.WhiteWorld=Mundo Branco
option.ambientLight_only=Apenas Luz Ambiente
option.Glass_Tint=Tintura de Vidro
option.display_LUT=Mostrar LUT
@ -48,6 +48,7 @@ screen.Direct_Light = Luz Direta
option.SHADOW_FILTER_SAMPLE_COUNT=Amostragem do Filtro de Sombra
option.SCREENSPACE_CONTACT_SHADOWS = Sombras de Contato
option.RENDER_ENTITY_SHADOWS = Sombras para Entidades
option.Stochastic_Transparent_Shadows=Sombras Transparentes Estocásticas
option.SHADOW_FRUSTRUM_CULLING= Redução de Sombras Fora de Vista
option.SHADOW_FRUSTRUM_CULLING.comment= Essa opção não funciona nas versões 1.17+. Pode aumentar o desempenho, mas cria gráficos incorretos nas sombras distantes.
@ -57,13 +58,15 @@ screen.Direct_Light = Luz Direta
screen.Subsurface_Scattering = Espalhamento de Subsuperfície (SSS)
option.LabSSS_Curve = Curva LabSSS
option.MISC_BLOCK_SSS = SSS para blocos aleatórios
option.MOB_SSS = SSS para mobs
option.Ambient_SSS = SSS vindo do Céu
option.ambientsss_brightness = Brilho do SSS vindo do Céu
option.SSS_TYPE = Modo
option.SSS_TYPE.comment = Hardcoded significa que os shaders definem o que recebe SSS. LabSSS significa que o resourcepack define o que recebe SSS. RTX é sem nenhum SSS lol. Eu tive que roubar esse formato, RRe36
option.SSS_TYPE.comment = Rígido significa que os shaders definem o que recebe SSS. LabSSS significa que o pacote de textura define o que recebe SSS. RTX é sem nenhum SSS. Eu tive que roubar esse formato, RRe36
value.SSS_TYPE.0 = RTX
value.SSS_TYPE.1 = Somente Hardcoded
value.SSS_TYPE.2 = Hardcoded + LabSSS
value.SSS_TYPE.1 = Somente Rígido
value.SSS_TYPE.2 = Rígido + LabSSS
value.SSS_TYPE.3 = Somente LabSSS
@ -156,7 +159,7 @@ screen.Climate = Configurações de Clima
option.Summer_R = Quantidade de Vermelho
option.Summer_G = Quantidade de Verde
option.Summer_B = Quantidade de Azul
option.Summer_Leaf_R = Quantidade de Verelho (para Folhas)
option.Summer_Leaf_R = Quantidade de Vermelho (para Folhas)
option.Summer_Leaf_G = Quantidade de Verde (para Folhas))
option.Summer_Leaf_B = Quantidade de Azul (para Folhas))
@ -219,7 +222,7 @@ screen.Post_Processing = Pós-Pocessamento
option.SCREENSHOT_MODE = Modo Screenshot
option.TAA = TAA
option.BLEND_FACTOR = Coeficiente de Mistura
option.TAA_UPSCALING = Upscale Temporal
option.TAA_UPSCALING = Ampliação Temporal
option.SCALE_FACTOR = Coeficiente de Escala
screen.Tonemapping=Mapeamento de Tons/Cor
@ -259,10 +262,10 @@ screen.LabPBR = Lab PBR
option.Emissive_Brightness = Multiplicador de Emissão
option.Emissive_Curve = Curva de Emissão
option.EMISSIVE_TYPE = Modo
option.EMISSIVE_TYPE.comment = Hardcoded significa que o shaders define o que tem emissão. Emissão Lab significa que o resourcepack define o que tem emissão.
option.EMISSIVE_TYPE.comment = Rígido significa que o shaders define o que tem emissão. Emissão Lab significa que o pacote de textura define o que tem emissão.
value.EMISSIVE_TYPE.0 = Sem emissão
value.EMISSIVE_TYPE.1 = Somente Hardcoded
value.EMISSIVE_TYPE.2 = Hardcoded + Emissão Lab
value.EMISSIVE_TYPE.1 = Somente Rígido
value.EMISSIVE_TYPE.2 = Rígido + Emissão Lab
value.EMISSIVE_TYPE.3 = Somente Emissão Lab
@ -315,3 +318,154 @@ option.AEROCHROME_PINKNESS=Aerochrome Vermelho:Quociente Rosa
option.AEROCHROME_PINKNESS.comment=Maior = Rosa. Menor = Vermelho
option.AEROCHROME_WOOL_ENABLED=Lã em Aerochrome
option.AEROCHROME_WOOL_ENABLED.comment=Tecnicamente, coisas feitas de lã deveriam ser afetadas, mas isso arruína muitas construções. Habilite para ser mais tecnicamente correto.
screen.Misc_Settings.comment = Configurações aleatórias para DEPURAÇÃO (Debugging) ou outras modificações divertidas.
screen.Sun_and_Moon_Colors.comment = Ajustar da cor do sol ou da lua.
option.sunPathRotation.comment = Ajustar o ângulo do sol ou da lua
option.sun_illuminance.comment = Ajustar o brilho do sol
option.moon_illuminance.comment = Ajustar o brilho da lua
screen.Direct_Light.comment = Ajuste configurações referentes ao sol e as sombras.
screen.Shadows.comment = Ajuste as sombras do sol ao seu gosto.
option.SCREENSPACE_CONTACT_SHADOWS.comment = Sombras de Contato no Espaço de Tela. §bO Que é Isso?§r Essas são pequenas sombras para coisas que estão distantes, e também em pequenos detalhes próximos. §aCUSTO DE DESEMPENHO:§r baixo para médio; é mais pesado em resoluções mais altas.
option.RENDER_ENTITY_SHADOWS.comment = §bO Que é Isso?§r São sombras presentes em todos os tipos de entidades como mobs, baús, banners e placas. §aCUSTO DE DESEMPENHO:§r baixo para alto; é bastante pesado quando se tem muitas entidades por perto.
option.shadowMapResolution.comment = A qualidade das sombras do sol projetada por coisas no mundo. §aCUSTO DE DESEMPENHO:§r médio para muito alto; As sombras precisam renderizar o mundo 3D uma segunda vez da perspectiva do sol, é por isso que reduz o desempenho pela metade.
option.shadowDistance.comment = Distância máxima que o mapeamento de sombras consegue renderizar (não é uma distância linear). Eu recomendo a distância de sombra padrão, pois as sombras de contato conseguem lidar com as sombras distantes. §aCUSTO DE DESEMPENHO:§r médio para muito alto; Se a distância de renderização dos chunks for longa, as sombras se tornarão mais pesadas.
screen.Filtering.comment = Ajuste os efeitos de filtragem aplicados às sombras.
option.SHADOW_FILTER_SAMPLE_COUNT.comment = A qualidade do filtro básico para as sombras. Esse filtro apenas suaviza as sombras. §aCUSTO DE DESEMPENHO:§r baixo para médio; Aumentar isso pode reduzir alguns dos ruídos presentes na borda das sombras.
option.Min_Shadow_Filter_Radius.comment = A suavização máxima do filtro básico para as sombras.
option.Variable_Penumbra_Shadows.comment = Esse efeito suaviza as sombras à medida que elas se afastam da fonte de projeção. Esse efeito é usado para criar sombras de alta qualidade e o Espalhamento de Subsuperfície. §aCUSTO DE DESEMPENHO:§r baixo para alto;
option.VPS_Search_Samples.comment = A qualidade de filtragem das sombras de penumbra váriavel. §aCUSTO DE DESEMPENHO:§r baixo para alto; Aumentar isso deve reduzir alguns ruídos do Espalhamento de Subsuperfície e de sombras muito suavizadas.
option.Max_Shadow_Filter_Radius.comment = A suavização máxima que as sombras podem alcançar quando longe da fonte de projeção.
option.Max_Filter_Depth = Fator do tamanho do sol.
screen.Ambient_light.comment = Ajuste as configurações referentes a iluminação das áreas sombreadas
option.AO_Strength.comment = Ajusta a força da oclusão de ambiente criada pelo SSAO, GTAO, RTAO, e SSGI. §bO Que é Isso?§r Oclusão de ambiente é uma suave e pequena sombra no canto das coisas.
option.GI_Strength.comment = Ajusta a força da iluminação global criada pelo SSGI. §bO Que é Isso?§r Iluminação global, nessa situação em especifíco, é o ressalto da luz de uma superfície em outra.
option.HQ_SSGI.comment = Habilita uma iluminação global no espaço de tela de longo alcance . §aCUSTO DE DESEMPENHO:§r muito alto
option.Hand_Held_lights.comment = Habilita a iluminação vindo da mão própria do shaders. §aCUSTO DE DESEMPENHO:§r muito baixo
option.ambientOcclusionLevel.comment = Ajusta a força da oclusão de ambiente vanilla do minecraft. §bO Que é Isso?§r Essa é uma oclusão de ambiente existente no Minecraft mesmo sem um shaders.
option.ambient_brightness.comment = Ajusta o brilho da iluminação em áreas que estão sombreadas.
option.MIN_LIGHT_AMOUNT.comment = Ajusta a quantidade mínima de luz que pode aparecer em áreas sombreadas
option.indirect_effect.comment = Habilita diferentes tipos de efeitos para conseguir uma iluminação de alta qualidade em áreas sombreadas. §aCUSTO DE DESEMPENHO:§r. AO Vanilla: muito baixo. SSAO: baixo para médio. GTAO: médio para alto. RTAO ou SSGI: alto para muito alto.
screen.Ambient_Colors.comment = Ajusta a coloração da luz em áreas sombreadas.
screen.Torch_Colors.comment = Ajuste a coloração da luz de tochas ou outras fontes de luz colocadas.
screen.LabPBR.comment = Um punhado de efeitos que usam informações fornecidas por um pacote de textura de formato LabPBR.
screen.Reflections.comment = Ajusta os reflexos que usam informações providas por um pacote de textura LabPBR.
option.Specular_Reflections.comment = Habilita todos os reflexos para pacotes LabPBR. Isso habilita o reflexo do sol, também permite habilitar outros ajustes abaixo. §aCUSTO DE DESEMPENHO:§r baixo
option.Screen_Space_Reflections.comment = Habilita reflexos no espaço de tela. §aCUSTO DE DESEMPENHO:§r médio
option.Rough_reflections.comment = Habilita uma rugosidade mais detalhada para criar reflexos de alta qualidade. Causa uma quantidade alta de ruídos vísiveis. §aCUSTO DE DESEMPENHO:§r médio para alto
option.Sky_reflection.comment = Habilita reflexos do céu e da névoa. §aCUSTO DE DESEMPENHO:§r baixo para médio.
option.Dynamic_SSR_quality.comment = Isso diminui a qualidade dos reflexos no espaço de tela com base em sua visibilidade. Pode aumentar o desempenho à custa da qualidade.
option.Roughness_Threshold.comment = Se a rugosidade chegar nesse limite, todos os reflexos exceto o do sol, não serão renderizados. Pode aumentar o desempenho.
option.Sun_specular_Strength.comment = Ajuste intensidade do brilho do reflexo do sol.
option.reflection_quality.comment = Ajuste a qualidade dos reflexos no espaço de tela.
screen.Subsurface_Scattering.comment = §bO Que é Isso?§r O Espalhamento de Subsuperfície é o que acontece quando você coloca uma luz na sua mão e ela começa a brilhar. O sol na verdade realiza a mesma coisa em plantas, tecidos, pele e outras coisas.
option.SSS_TYPE.comment = Ajusta como o espalhamento de subsuperfície é aplicado ao mundo. §bRígido:§r O shaders decide o que vai receber. §bLabSSS:§r O pacote de textura decide o que vai receber. §aCUSTO DE DESEMPENHO:§r muito baixo
option.MOB_SSS.comment = Habilita o espalhamento de subsuperfície em mobs. Jogadores são inclusos. §aCUSTO DE DESEMPENHO:§r muito baixo
option.MISC_BLOCK_SSS.comment = Habilita o espalhamento de subsuperfície para blocos aleatórios que talvez não se encaixem. Isso é sobretudo para a areia e grama. §aCUSTO DE DESEMPENHO:§r muito baixo
option.Ambient_SSS.comment = §bO Que é Isso?§r espalhamento de subsuperfície da luz vindo do céu, em vez do sol. §aCUSTO DE DESEMPENHO:§r muito baixo para médio; se o SSAO estiver habilitado isso tem um custo muito baixo, mas vai custar mais se o SSAO estiver DESLIGADO
option.ambientsss_brightness.comment = Ajuste o brilho do espalhamento de subsuperfície vindo da luz do céu.
screen.Emissives.comment = §bO Que é Isso?§r Emissividade é quantidade de luz que algo está exaltando ou o quanto algo está brilhando.
option.Emissive_Brightness.comment = Ajuste o quão brilhante a emissão da textura deve ser.
option.EMISSIVE_TYPE.comment = Ajuste como a emissão de textura é aplicadas ao mundo. §bRígido:§r O shaders decide o que recebe. §bLabSSS:§r O pacote de textura decide o que recebe. §aCUSTO DE DESEMPENHO:§r muito baixo
option.Emissive_Curve.comment = Isso determina o quão rapidamente a textura emissiva atinge seu ponto mais brilhante. 1.0 é linear.
screen.POM.comment = Ajuste as configurações referentes ao mapeamento de oclusão paralaxe, que usam informações providas por um pacote de textura.
option.POM.comment = §bO Que é Isso?§r Esse efeito tenta criar geometria 3D onde anteriormente não existia nenhuma, usando uma imagem especial de um pacote de textura. Basicamente, esse efeito empurra a textura para dentro, então pode ocorrer alguns artefatos visuais ao olhar por um ângulo íngreme. §aCUSTO DE DESEMPENHO:§r médio para alto
option.MAX_ITERATIONS.comment = Ajuste a qualidade do efeito de mapeamento de oclusão de paralaxe. Caso você perceber camadas individuais ao olhar de perto, aumentar isso criará mais camadas, tornando difícil a visualização delas. §aCUSTO DE DESEMPENHO:§r alto
option.POM_DEPTH.comment = O quão profundo o efeito de mapeamento de oclusão de paralaxe pode ir em uma superfície. §aCUSTO DE DESEMPENHO:§r muito baixo
option.MAX_DIST.comment = Distância máxima da câmera que o efeito de mapeamento de oclusão de paralaxe pode ser renderizado. §aCUSTO DE DESEMPENHO:§r alto
option.Adaptive_Step_length.comment = Isso aumentará a qualidade visual sem realmente aumentar a qualidade real. Isso pode causar alguns artefatos se observado de perto ou se houver um mapa de altura muito detalhado e com váriações intensas de altura .
option.Horrible_slope_normals.comment = Esta é uma implementação mal feita para dar superfície para os lados do mapeamento de oclusão de paralaxe. Eu não recomendo usar isso. §aCUSTO DE DESEMPENHO:§r baixo
screen.Porosity.comment = Ajuste as configurações referentes a umidade e poças
option.Porosity.comment = §bO Que é Isso?§r Porosidade é a descrição do quão poroso algum material é, ou essencialmente quanta aguá ele pode ter dentro dele. Por exemplo, esponjas são bastante porosas; a água é contida dentro dela, deixando-a mais escura como resultado. §aPERFORMANCE COST:§r low
option.Puddles.comment = Habilitar poças quando chover. §aCUSTO DE DESEMPENHO:§r baixo
option.Puddle_Size.comment = Ajuste o tamanho das poças.
screen.Fog.comment = Ajuste as configurações referentes à névoa volumétrica raymarched ou à névoa baseada em distância.
option.VL_RENDER_RESOLUTION.comment = Ajuste a resolução da névoa volumétrica. §aCUSTO DE DESEMPENHO:§r alto
option.VL_SAMPLES.comment = Ajuste a qualidade da névoa volumétrica. §aCUSTO DE DESEMPENHO:§r alto
option.BLOOMY_FOG.comment = Ajuste a força do bloom que é aplicado a névoa. §bO Que é Isso?§r Esse efeito faz a névoa parecer suave, ajuda a mitigar um pouco do ruído também. Pode causar um pouco de tremulação em bordas detalhadas. §aCUSTO DE DESEMPENHO:§r muito baixo
option.Haze_amount.comment = Ajuste quão densa é a atmosféra ao seu redor. §bO Que é Isso?§r É aquela neblina azul que você vê na distância.
option.RainFog_amount.comment = Ajusta quão densa a névoa fica quando chove.
option.Cloud_Fog.comment = Habilita uma névoa detalhada quando você estiver dentro ou ao redor de uma nuvem. §aCUSTO DE DESEMPENHO:§r baixo para médio
option.BorderFog.comment = Habilita uma névoa que esconde os chunks não carregados.
screen.TOD_fog.comment = Ajuste a densidade da névoa que aparece em tempos especifícos do dia.
option.TOD_Fog_mult.comment = Ajustar quanta névoa total aparece em tempos especifícos do dia. Isso não afeta a neblina atmosférica.
screen.Biome_Fog.comment = Ajuste as configurações para a névoa que aparece apenas em biomas especifícos.
option.Biome_specific_environment.comment = Habilita névoa que apenas aparece em biomas especifícos. §aCUSTO DE DESEMPENHO:§r baixo
screen.Cave_Fog.comment = Ajuste configurações para névoa que aparece quando você está em lugares muito escuros como cavernas.
option.Cave_Fog.comment = Habilita a névoa que aparece quando você está em lugares escuros. É impossível para um shaders dizer de forma exata se você está em uma caverna, então essa névoa pode aparecer em lugares que não são exatamente uma caverna. §aCUSTO DE DESEMPENHO:§r baixo
option.CaveFogFallOff.comment = Ajustar o quão rápido o gradiante da névoa chega no seu brilho máximo.
screen.Clouds.comment = Ajuste as configurações referentes às nuvens volumétricas raymarched.
option.VOLUMETRIC_CLOUDS.comment = Habilitar as nuvens. §aCUSTO DE DESEMPENHO:§r médio para alto
option.CLOUDS_QUALITY.comment = Ajuste a resolução das nuvens volumétricas. §aCUSTO DE DESEMPENHO:§r alto
option.CLOUDS_SHADOWS.comment = Habilite sombras que são projetadas pelas nuvens no solo, e a névoa abaixo delas. §aCUSTO DE DESEMPENHO:§r baixo para médio
option.Daily_Weather.comment = Habilite o clima diário. Eu coloquei 8 perfis climáticos, onde o shaders passa por eles todos os dias. Não é possível alterar nenhuma das opções de cobertura de nuvens quando isso está habilitado. §aCUSTO DE DESEMPENHO:§r baixo
option.Cloud_Speed.comment = Ajusta o quão rapidamente as nuvens se movem ao passar do dia.
option.Rain_coverage.comment = Ajuste o quanto as nuvens cobrem o céu durante a chuva.
option.Cumulus.comment = Habilite as camadas inferiores de nuvens. §aCUSTO DE DESEMPENHO:§r médio
option.Cumulus_coverage.comment = Ajuste o quanto do céu as nuvens inferiores cobrem. Essa opção não funciona enquanto o clima diário estiver ativado.
option.Cumulus_density.comment = Ajuste o quão densa as camadas inferiores de nuvens são.
option.Cumulus_height.comment = Ajuste a altura à qual as camadas de nuvens inferiores voam.
option.Altostratus.comment = Habilite as camadas superiores de nuvens. §aCUSTO DE DESEMPENHO:§r baixo
option.Alto_coverage.comment = Ajuste o quanto do céu as nuvens superiores cobrem. Essa opção não funciona enquanto o clima diário estiver ativado.
option.Alto_density.comment = Ajuste o quão densa as camadas superiores de nuvens são.
screen.World.comment = Ajuste as configurações para várias coisas que acontecem no mundo, desde o balançar das plantas até o comportamento da água.
screen.Water.comment = Ajuste configurações referentes a água.
option.WATER_REFLECTIONS.comments = Habilita todos os reflexos para coisas translúcidas. Isso permite que outras configurçaões abaixo sejam ativadas. §aCUSTO DE DESEMPENHO:§r baixo
option.SCREENSPACE_REFLECTIONS.comment = Habilita o reflexos no espaço de tela em coisas translúcidas. §aCUSTO DE DESEMPENHO:§r médio
option.SSR_STEPS.comment = Ajusta a qualidade do reflexo no espaço de tela em coisas trasnlúcidas. §aCUSTO DE DESEMPENHO:§r médio para alto
option.WATER_SUN_SPECULAR.comment = Habilita o reflexo do sol e da lua em coisas translúcidas. §aCUSTO DE DESEMPENHO:§r baixo
option.WATER_BACKGROUND_SPECULAR.comment = Habilita o reflexo do céu e da névoa para coisas translúcidas. §aCUSTO DE DESEMPENHO:§r baixo para médio
option.Refraction.comment = Habilita a refração em coisas translúcidas. §bO Que é Isso?§r Se você olhar para a água, é possível ver a refração da luz distorcendo o que está dentro dela. §aCUSTO DE DESEMPENHO:§r baixo
option.Dirt_Amount.comment = Ajusta a quantidade de sujeira na água. Isso controla a quantidade de névoa presente na água.
option.Water_Top_Layer.comment = Ajuste a coordenada Y em que o oceano deve ser posicionado no mundo.
screen.Water_fog_color.comment = Ajuste a coloração da névoa da água.
screen.Climate.comment = Ajuste as configurações referentes ao clima, como a cor das estações, clima diário e névoa especifíca de bioma.
screen.Seasons.comment = Cores sazonais que se alternam, verão, outono, inverno e primavera.
option.Seasons.comment = Cores sazonais que se alternam, verão, outono, inverno e primavera. §aCUSTO DE DESEMPENHO:§r baixo
option.Season_Length.comment = Controla quão longo uma única estação dura, em dias do minecraft.
option.Snowy_Winter.comment = Habilita neve durante o inverno. §aCUSTO DE DESEMPENHO:§r baixo
screen.Summer_colors.comment = Ajuste as cores da vegetação durante o verão.
screen.Fall_colors.comment = Ajuste as cores da vegetação durante o outono.
screen.Winter_colors.comment = Ajuste as cores da vegetação durante o inverno.
screen.Spring_colors.comment = Ajuste as cores da vegetação durante a primavera.
screen.Waving_Stuff.comment = Ajuste as configurações referentes ao balançar das coisas .
option.WAVY_PLANTS.comment = Habilita o balançar das plantas. §aCUSTO DE DESEMPENHO:§r muito baixo
option.WAVY_STRENGTH.comment = Ajuste a quantidade com que as plantas balançam.
option.WAVY_SPEED.comment = Ajuste a velocidade com que as plantas balançam.
screen.Post_Processing.comment = Ajuste configurações para todos os pós-processamentos, como antisserrilhamento e mapeamento de tons.
screen.Exposure.comment = Ajuste configurações referentes à exposição.
screen.DepthOfField.comment = Ajuste configurações referentes ao campo de profundidade.
screen.Purkinje_effect.comment = Ajuste configurações referentes ao efeito purkinje.
option.SHARPENING.comment = Ajuste a quantidade de nitidez adaptativa de contraste aplicada à imagem. Isso pode realçar detalhes perdidos pelo antisserrilhamento ou ampliação.
option.BLOOM_STRENGTH.comment = Ajustar a quantidade de bloom que é aplicado à imagem. §bO Que é Isso?§r Bloom ou incandescência é o suave brilho em tudo, usado para descrever se algo está brilhante ou não.
screen.TAA_OPTIONS.comment = Ajuste configurações referentes ao antisserrilhamento.
option.SCREENSHOT_MODE.comment = Habilita a acumulação de quadros ou frames para obter uma imagem de alta qualidade, sem ruídos. §bO Que é Isso?§r Ele combina quadros de imagens que já aconteceram no próximo quadro que está sendo gerado, semelhante a uma foto de longa exposição.
option.TAA.comment = Habilita o antisserrilhamento temporal. Isso remove todas as bordas serrilhadas das coisas, suaviza a imagem e ajuda a reduzir o ruído de vários efeitos. No entanto, ele pode causar um efeito de ghosting ou efeito de rastro, pois ele utiliza quadros passados para obter informações adicionais do mundo. §aCUSTO DE DESEMPENHO:§r baixo
option.BLEND_FACTOR.comment = Ajusta a qauntidade de histórico de quadros utilizado. Valores altos significam que há menos dependência do histórico de quadros, o que pode resultar em uma imagem irregular e com ruído. Valores baixos dependem mais do histórico de quadros, o que pode resultar em uma imagem borrada e com efeito de rastro.
option.TAA_UPSCALING.comment = Habilita ampliação temporal. Isso conserva uma boa quantidade de qualidade de uma imagem de resolução mais baixa quando ela é ampliada. Assim, você mantém uma aparência de boa resolução em comporação a ampliação típica e ainda continua com um desempenho melhor.
option.SCALE_FACTOR.comment = Ajuste a partir de qual fração da sua resolução realizar a ampliação. Abaixo de 0.5 não é nem um pouco recomendado, e eu apenas tenho como opção porque é engraçado :P

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +1,7 @@
// in this here file im doing all the lighting for sunlight, ambient light, torches, for solids and translucents.
#ifndef OVERWORLD
uniform float lightningFlash;
#endif
uniform float nightVision;
//// OVERWORLD ////
#ifdef OVERWORLD
vec3 DoAmbientLighting (vec3 SkyColor, vec3 TorchColor, vec2 Lightmap, float skyLightDir){
@ -18,9 +13,7 @@ vec3 DoAmbientLighting (vec3 SkyColor, vec3 TorchColor, vec2 Lightmap, float sky
vec3 TorchLight = TorchColor * TorchLM * 0.75;
TorchLight *= TORCH_AMOUNT;
SkyColor = (SkyColor * 2.0 * ambient_brightness) * 8./150./3.;
SkyColor += vec3(Lightning_R,Lightning_G,Lightning_B) * 25.0 * skyLightDir * lightningFlash ;
SkyColor = (SkyColor * ambient_brightness) / 30.0;
float skyLM = (pow(Lightmap.y,15.0)*2.0 + pow(Lightmap.y,2.5))*0.5;
vec3 SkyLight = max(SkyColor * skyLM, vec3(0.2,0.4,1.0) * (MIN_LIGHT_AMOUNT*0.01 + nightVision) );

View File

@ -72,7 +72,7 @@
// ----- INDIRECT LIGHT RELATED SETTINGS ----- //
/////////////////////////////////////////////////
#define MIN_LIGHT_AMOUNT 1.0 // [0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.0 4.0 5.0]
#define MIN_LIGHT_AMOUNT 1.0 // [0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0]
#define ambient_brightness 1.0 // [0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.0 ]
#define ambient_colortype 0 // [0 1]
@ -330,6 +330,7 @@ uniform int moonPhase;
#define aperture 0.8 // [0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1.0 1.05 1.1 1.15 1.2 1.25 1.3 1.35 1.4 1.45 1.5 1.55 1.6 1.65 1.7 1.75 1.8 1.85 1.9 1.95 2.0 2.05 2.1 2.15 2.2 2.25 2.3 2.35 2.4 2.45 2.5 2.55 2.6 2.65 2.7 2.75 2.8 2.85 2.9 2.95 3.0 3.05 3.1 3.15 3.2 3.25 3.3 3.35 3.4 3.45 3.5 3.55 3.6 3.65 3.7 3.75 3.8 3.85 3.9 3.95 4.0 4.05 4.1 4.15 4.2 4.25 4.3 4.35 4.4 4.45 4.5 4.55 4.6 4.65 4.7 4.75 4.8 4.85 4.9 4.95 5.0 5.05 5.1 5.15 5.2 5.25 5.3 5.35 5.4 5.45 5.5 5.55 5.6 5.65 5.7 5.75 5.8 5.85 5.9 5.95 6.0 6.05 6.1 6.15 6.2 6.25 6.3 6.35 6.4 6.45 6.5 6.55 6.6 6.65 6.7 6.75 6.8 6.85 6.9 6.95 7.0 7.05 7.1 7.15 7.2 7.25 7.3 7.35 7.4 7.45 7.5 7.55 7.6 7.65 7.7 7.75 7.8 7.85 7.9 7.95 8.0 8.05 8.1 8.15 8.2 8.25 8.3 8.35 8.4 8.45 8.5 8.55 8.6 8.65 8.7 8.75 8.8 8.85 8.9 8.95 9.0 9.05 9.1 9.15 9.2 9.25 9.3 9.35 9.4 9.45 9.5 9.55 9.6 9.65 9.7 9.75 9.8 9.85 9.9 9.95 ]
#define MANUAL_FOCUS -2 // [-2 -1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 20 21 22 24 25 26 28 29 30 32 33 35 36 38 40 41 43 45 47 48 50 52 54 56 58 60 63 65 67 70 72 75 77 80 83 85 88 91 94 98 101 104 108 111 115 119 123 127 132 136 141 146 151 156 161 167 173 179 186 193 200 207 215 224 232 242 251 262 273 284 297 310 324 339 355 372 391 411 433 457 483 512]
#define DoF_Adaptation_Speed 1.00 // [0.20 0.21 0.23 0.24 0.25 0.27 0.29 0.30 0.32 0.34 0.36 0.39 0.41 0.43 0.46 0.49 0.52 0.55 0.59 0.62 0.66 0.70 0.74 0.79 0.84 0.89 0.94 1.00 1.06 1.13 1.20 1.27 1.35 1.43 1.52 1.61 1.71 1.82 1.93 2.05 2.18 2.31 2.45 2.60 2.76 2.93 3.11 3.30 3.51 3.72 3.95 4.19 4.45 4.73 5.02 5.33 5.65 6.00]
// #define DOF_JITTER_SHADOW
// // #define DOF_JITTER_FOCUS 32 // [-1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 20 21 22 24 25 26 28 29 30 32 33 35 36 38 40 41 43 45 47 48 50 52 54 56 58 60 63 65 67 70 72 75 77 80 83 85 88 91 94 98 101 104 108 111 115 119 123 127 132 136 141 146 151 156 161 167 173 179 186 193 200 207 215 224 232 242 251 262 273 284 297 310 324 339 355 372 391 411 433 457 483 512]
#define JITTER_STRENGTH 1.0 // sorry [0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 2.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0]
@ -348,10 +349,20 @@ uniform int moonPhase;
#define SATURATION 0.00 // [-1.0 -0.98 -0.96 -0.94 -0.92 -0.9 -0.88 -0.86 -0.84 -0.82 -0.8 -0.78 -0.76 -0.74 -0.72 -0.7 -0.68 -0.66 -0.64 -0.62 -0.6 -0.58 -0.56 -0.54 -0.52 -0.5 -0.48 -0.46 -0.44 -0.42 -0.4 -0.38 -0.36 -0.34 -0.32 -0.3 -0.28 -0.26 -0.24 -0.22 -0.2 -0.18 -0.16 -0.14 -0.12 -0.1 -0.08 -0.06 -0.04 -0.02 0.0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 0.22 0.24 0.26 0.28 0.3 0.32 0.34 0.36 0.38 0.4 0.42 0.44 0.46 0.48 0.5 0.52 0.54 0.56 0.58 0.6 0.62 0.64 0.66 0.68 0.7 0.72 0.74 0.76 0.78 0.8 0.82 0.84 0.86 0.88 0.9 0.92 0.94 0.96 0.98 1.0 ]
#define CROSSTALK 0.0 // [-1.0 -0.98 -0.96 -0.94 -0.92 -0.9 -0.88 -0.86 -0.84 -0.82 -0.8 -0.78 -0.76 -0.74 -0.72 -0.7 -0.68 -0.66 -0.64 -0.62 -0.6 -0.58 -0.56 -0.54 -0.52 -0.5 -0.48 -0.46 -0.44 -0.42 -0.4 -0.38 -0.36 -0.34 -0.32 -0.3 -0.28 -0.26 -0.24 -0.22 -0.2 -0.18 -0.16 -0.14 -0.12 -0.1 -0.08 -0.06 -0.04 -0.02 0.0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 0.22 0.24 0.26 0.28 0.3 0.32 0.34 0.36 0.38 0.4 0.42 0.44 0.46 0.48 0.5 0.52 0.54 0.56 0.58 0.6 0.62 0.64 0.66 0.68 0.7 0.72 0.74 0.76 0.78 0.8 0.82 0.84 0.86 0.88 0.9 0.92 0.94 0.96 0.98 1.0 ]
// #define LUMINANCE_CURVE
// #define COLOR_CURVE
#define UPPER_CURVE 0.0 // [-1.0 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0]
#define LOWER_CURVE 0.0 // [-1.0 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0]
#define R_UPPER_CURVE 0.0 // [-1.0 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0]
#define R_LOWER_CURVE 0.0 // [-1.0 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0]
#define G_UPPER_CURVE 0.0 // [-1.0 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0]
#define G_LOWER_CURVE 0.0 // [-1.0 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0]
#define B_UPPER_CURVE 0.0 // [-1.0 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0]
#define B_LOWER_CURVE 0.0 // [-1.0 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0]
#define CONTRAST 1.0 // [0.0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.11 0.12 0.13 0.14 0.15 0.16 0.17 0.18 0.19 0.2 0.21 0.22 0.23 0.24 0.25 0.26 0.27 0.28 0.29 0.3 0.31 0.32 0.33 0.34 0.35 0.36 0.37 0.38 0.39 0.4 0.41 0.42 0.43 0.44 0.45 0.46 0.47 0.48 0.49 0.5 0.51 0.52 0.53 0.54 0.55 0.56 0.57 0.58 0.59 0.6 0.61 0.62 0.63 0.64 0.65 0.66 0.67 0.68 0.69 0.7 0.71 0.72 0.73 0.74 0.75 0.76 0.77 0.78 0.79 0.8 0.81 0.82 0.83 0.84 0.85 0.86 0.87 0.88 0.89 0.9 0.91 0.92 0.93 0.94 0.95 0.96 0.97 0.98 0.99 1.0 1.0 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.2 1.21 1.22 1.23 1.24 1.25 1.26 1.27 1.28 1.29 1.3 1.31 1.32 1.33 1.34 1.35 1.36 1.37 1.38 1.39 1.4 1.41 1.42 1.43 1.44 1.45 1.46 1.47 1.48 1.49 1.5 1.51 1.52 1.53 1.54 1.55 1.56 1.57 1.58 1.59 1.6 1.61 1.62 1.63 1.64 1.65 1.66 1.67 1.68 1.69 1.7 1.71 1.72 1.73 1.74 1.75 1.76 1.77 1.78 1.79 1.8 1.81 1.82 1.83 1.84 1.85 1.86 1.87 1.88 1.89 1.9 1.91 1.92 1.93 1.94 1.95 1.96 1.97 1.98 1.99 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 ]
#define EXPOSURE_MULTIPLIER 1.0 // [0.25 0.4 0.5 0.6 0.7 0.75 0.8 0.85 0.9 0.95 1.0 1.1 1.2 1.3 1.4 1.5 2.0 3.0 4.0]

View File

@ -184,15 +184,20 @@ vec3 SampleVNDFGGX(
// Sample a reflection direction off the hemisphere
const float tau = 6.2831853; // 2 * pi
float phi = tau * xy.x;
float cosTheta = xonk_fma(1.0 - xy.y, 1.0 + viewerDirection.z, -viewerDirection.z) ;
float sinTheta = sqrt(clamp(1.0 - cosTheta * cosTheta, 0.0, 1.0));
vec3 reflected = vec3(vec2(cos(phi), sin(phi)) * sinTheta, cosTheta);
// xonk note, i dont know what im doing but this kinda does what i want so whatever
float attemptTailClamp = clamp(sinTheta,max(cosTheta-0.25,0), cosTheta);
float attemptTailClamp2 = clamp(cosTheta,max(sinTheta-0.25,0), sinTheta);
vec3 reflected = vec3(vec2(cos(phi), sin(phi)) * attemptTailClamp2, attemptTailClamp);
// vec3 reflected = vec3(vec2(cos(phi), sin(phi)) * sinTheta, cosTheta);
// Evaluate halfway direction
// This gives the normal on the hemisphere
// xonk note, i added those magic numbers huhuhuh
vec3 halfway = reflected*0.5 + viewerDirection*1.5;
// vec3 halfway = reflected + viewerDirection;
vec3 halfway = reflected + viewerDirection;
// Transform the halfway direction back to hemiellispoid configuation
// This gives the final sampled normal
@ -248,11 +253,12 @@ void MaterialReflections(
// f0 = vec3(0.9);
// roughness = 0.0;
// roughness = 0.5;
mat3 basis = CoordBase(normal);
vec3 normSpaceView = -np3*basis ;
// roughness stuff
#ifdef Rough_reflections
int seed = frameCounter%40000;
@ -279,7 +285,8 @@ void MaterialReflections(
SunReflection = directlighting * GGX(normal, -np3, sunPos, roughness, vec3(f0.y));
#ifdef Sky_reflection
if( Roughness_Threshold == 1.0 || (f0.y * (1.0 - roughness * Roughness_Threshold)) > 0.005) SkyReflection = pow(clamp(1.0-VisibilityFactor,0,1),0.3)*( skyCloudsFromTex(L, colortex4).rgb / 150. ) * 5.;
//pow(clamp(1.0-VisibilityFactor,0,1),0.3)*
if( Roughness_Threshold == 1.0 || (f0.y * (1.0 - roughness * Roughness_Threshold)) > 0.005) SkyReflection = skyCloudsFromTex(L, colortex4).rgb / 30.;
#endif
if (hasReflections) { // Skip sky reflection and SSR if its just not very visible anyway
@ -291,14 +298,12 @@ void MaterialReflections(
rayQuality = reflection_quality;
#endif
noise.b = mix_float(noise.b, 0.5 + (noise.b-0.5),rayContribLuma);
if(hand) {rayQuality = max(rayQuality,30.0); noise.b = 0.5 + (noise.b-0.5);}
vec3 rtPos = rayTraceSpeculars(mat3(gbufferModelView) * L, fragpos.xyz, (noise.b), rayQuality, hand, reflectLength);
float LOD = clamp(reflectLength * 6.0, 0.0,6.0);
if(hand || isEntities) LOD = VisibilityFactor*6;
// LOD = 0.0;
if (rtPos.z < 1.0) { // Reproject on previous frame
@ -463,7 +468,7 @@ void MaterialReflections_E(
roughness = unpackRoughness(roughness);
f0 = f0.y == 0.0 ? vec3(0.02) : f0;
// roughness = 0.0;
// roughness = 0.1;
// f0 = vec3(0.9);
float visibilityFactor = clamp(exp2((pow(roughness,3.0) / f0.y) * -4),0,1);

View File

@ -199,7 +199,7 @@ float PhaseHG(float cosTheta, float g) {
return Inv4Pi * (1 - g * g) / (denom * sqrt(denom));
}
uniform float lightningFlash;
uniform vec3 lightningEffect;
vec4 renderClouds(
vec3 FragPosition,
@ -264,7 +264,7 @@ vec4 renderClouds(
float timing = 1.0 - clamp(pow(abs(dV_Sun.y)/150.0,2.0),0.0,1.0);
vec3 lightningColor = vec3(Lightning_R,Lightning_G,Lightning_B) * 1000.0 * lightningFlash;
vec3 lightningColor = lightningEffect * 4.0;
#ifdef Cumulus
for(int i=0;i<maxIT_clouds;i++) {

View File

@ -94,10 +94,7 @@ vec4 getVolumetricRays(
vec3 sunColor = lightCol.rgb / 80.0;
vec3 skyCol0 = AmbientColor / 150. * 5. ; // * max(abs(WsunVec.y)/150.0,0.);
vec3 lightningColor = vec3(Lightning_R,Lightning_G,Lightning_B) * 25.0 * lightningFlash * max(eyeBrightnessSmooth.y,0)/240.;
#ifdef ReflectedFog
lightningColor *= 0.01;
#endif
vec3 lightningColor = (lightningEffect / 10) * (max(eyeBrightnessSmooth.y,0)/240.);
vec3 np3 = normVec(wpos);
float ambfogfade = clamp(exp(np3.y* 2 - 2),0.0,1.0) * 4 ;
@ -232,17 +229,16 @@ vec4 InsideACloudFog(
vec3 Fog_SkyCol = averageSkyCol/ 150. * 5. ; // * max(abs(WsunVec.y)/150.0,0.);
vec3 Fog_SunCol = lightCol.rgb / 80.0;
vec3 lightningColor = (lightningEffect / 10) * (max(eyeBrightnessSmooth.y,0)/240.);
vec3 lightningColor = vec3(Lightning_R,Lightning_G,Lightning_B) * 255.0 * lightningFlash * max(eyeBrightnessSmooth.y,0)/240.;
#ifndef ReflectedFog
vec3 np3 = normVec(wpos);
float ambfogfade = clamp(exp(np3.y* 2 - 2),0.0,1.0) * 4 ;
#ifdef ReflectedFog
lightningColor *= 0.01;
lightningColor *= ambfogfade;
#endif
vec3 np3 = normVec(wpos);
float ambfogfade = clamp(exp(np3.y* 2 - 2),0.0,1.0) * 4 ;
Fog_SkyCol += (lightningColor/10) * ambfogfade;
Fog_SkyCol += lightningColor;
@ -258,9 +254,6 @@ vec4 InsideACloudFog(
float timing = 1.0 - clamp(pow(abs(dV_Sun.y)/150.0,2.0),0.0,1.0);
//Mie phase + somewhat simulates multiple scattering (Horizon zero down cloud approx)
float mie = phaseg(SdotV,0.7)*5.0 + 1.0;
float rayL = phaseRayleigh(SdotV);

View File

@ -19,8 +19,8 @@ program.composite4.enabled=TAA_UPSCALING
#Get the correct alpha value : S_A*(1-DST_A)+DST_A
blend.gbuffers_water = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
blend.gbuffers_textured= SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
blend.gbuffers_armor_glint= SRC_ALPHA ZERO ONE_MINUS_DST_ALPHA ONE
blend.gbuffers_textured = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
blend.gbuffers_armor_glint = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
blend.gbuffers_textured_lit= SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
blend.gbuffers_weather= SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
@ -47,7 +47,7 @@ alphaTest.gbuffers_skytextured=false
alphaTest.gbuffers_hand=true
sliders = UPPER_CURVE LOWER_CURVE CONTRAST EMISSIVE_TYPE Lightning_R Lightning_G Lightning_B SCALE_FACTOR CompSky_R CompSky_G CompSky_B ambientsss_brightness SSS_TYPE Cloud_Speed Cumulus_height Cumulus_coverage Cumulus_density Alto_coverage Alto_density ORB_ColMult ORB_X ORB_Y ORB_Z ORB_R ORB_G ORB_B TOD_Fog_mult Morning_Uniform_Fog Noon_Uniform_Fog Evening_Uniform_Fog Night_Uniform_Fog Morning_Cloudy_Fog Noon_Cloudy_Fog Evening_Cloudy_Fog Night_Cloudy_Fog NetherFog_brightness Summer_Leaf_R Summer_Leaf_G Summer_Leaf_B Fall_Leaf_R Fall_Leaf_G Fall_Leaf_B Winter_Leaf_R Winter_Leaf_G Winter_Leaf_B Spring_Leaf_R Spring_Leaf_G Spring_Leaf_B Summer_R Summer_G Summer_B Fall_R Fall_G Fall_B Winter_R Winter_G Winter_B Spring_R Spring_G Spring_B Season_Length CaveFogFallOff CaveFogColor_R CaveFogColor_G CaveFogColor_B indirect_effect GI_Strength ambient_brightness AmbientLight_R AmbientLight_G AmbientLight_B Rain_coverage Moon_temp Haze_amount RainFog_amount ambient_temp Sun_temp Puddle_Size LabSSS_Curve Emissive_Curve Emissive_Brightness AO_Strength BLOOMY_FOG WAVY_SPEED WAVY_STRENGTH BLOOM_STRENGTH shadowDistance shadowDistanceRenderMul FinalR FinalG FinalB Sky_Brightness fog_coefficientMieR fog_coefficientMieG fog_coefficientMieB sun_illuminance sunColorG sunColorB sunColorR sky_mieg sky_coefficientMieB sky_coefficientMieG sky_coefficientMieR sky_coefficientRayleighB sky_coefficientRayleighG sky_coefficientRayleighR CLOUDS_QUALITY EXPOSURE_MULTIPLIER MIN_LIGHT_AMOUNT TORCH_R TORCH_G TORCH_B TORCH_AMOUNT shadowMapResolution sunPathRotation BLEND_FACTOR VL_SAMPLES Exposure_Speed POM_DEPTH MAX_ITERATIONS MAX_DIST SSR_STEPS ambientOcclusionLevel SEA_LEVEL moon_illuminance moonColorR moonColorG moonColorB fog_coefficientRayleighR fog_coefficientRayleighG SATURATION Manual_exposure_value focal aperture MANUAL_FOCUS SHADOW_FILTER_SAMPLE_COUNT Max_Filter_Depth VPS_Search_Samples Min_Shadow_Filter_Radius Max_Shadow_Filter_Radius Water_Top_Layer fog_coefficientRayleighB SHARPENING rayMarchSampleCount Dirt_Amount Dirt_Scatter_R Dirt_Scatter_G Dirt_Scatter_B Dirt_Absorb_R Dirt_Absorb_G Dirt_Absorb_B Water_Absorb_R Water_Absorb_G Water_Absorb_B Purkinje_strength Purkinje_strength Purkinje_R Purkinje_G Purkinje_B Texture_MipMap_Bias DoF_Adaptation_Speed Purkinje_Multiplier CROSSTALK VL_RENDER_RESOLUTION BLOOM_QUALITY VL_RENDER_RESOLUTION RAY_COUNT STEPS STEP_LENGTH cloud_LevelOfDetail cloud_ShadowLevelOfDetail cloud_LevelOfDetailLQ cloud_ShadowLevelOfDetailLQ minRayMarchSteps maxRayMarchSteps minRayMarchStepsLQ maxRayMarchStepsLQ fbmAmount fbmPower1 fbmPower2 Roughness_Threshold Sun_specular_Strength reflection_quality DOF_QUALITY DOF_ANAMORPHIC_RATIO AEROCHROME_PINKNESS DOF_JITTER_FOCUS JITTER_STRENGTH
sliders = R_UPPER_CURVE R_LOWER_CURVE G_UPPER_CURVE G_LOWER_CURVE B_UPPER_CURVE B_LOWER_CURVE UPPER_CURVE LOWER_CURVE CONTRAST EMISSIVE_TYPE Lightning_R Lightning_G Lightning_B SCALE_FACTOR CompSky_R CompSky_G CompSky_B ambientsss_brightness SSS_TYPE Cloud_Speed Cumulus_height Cumulus_coverage Cumulus_density Alto_coverage Alto_density ORB_ColMult ORB_X ORB_Y ORB_Z ORB_R ORB_G ORB_B TOD_Fog_mult Morning_Uniform_Fog Noon_Uniform_Fog Evening_Uniform_Fog Night_Uniform_Fog Morning_Cloudy_Fog Noon_Cloudy_Fog Evening_Cloudy_Fog Night_Cloudy_Fog NetherFog_brightness Summer_Leaf_R Summer_Leaf_G Summer_Leaf_B Fall_Leaf_R Fall_Leaf_G Fall_Leaf_B Winter_Leaf_R Winter_Leaf_G Winter_Leaf_B Spring_Leaf_R Spring_Leaf_G Spring_Leaf_B Summer_R Summer_G Summer_B Fall_R Fall_G Fall_B Winter_R Winter_G Winter_B Spring_R Spring_G Spring_B Season_Length CaveFogFallOff CaveFogColor_R CaveFogColor_G CaveFogColor_B indirect_effect GI_Strength ambient_brightness AmbientLight_R AmbientLight_G AmbientLight_B Rain_coverage Moon_temp Haze_amount RainFog_amount ambient_temp Sun_temp Puddle_Size LabSSS_Curve Emissive_Curve Emissive_Brightness AO_Strength BLOOMY_FOG WAVY_SPEED WAVY_STRENGTH BLOOM_STRENGTH shadowDistance shadowDistanceRenderMul FinalR FinalG FinalB Sky_Brightness fog_coefficientMieR fog_coefficientMieG fog_coefficientMieB sun_illuminance sunColorG sunColorB sunColorR sky_mieg sky_coefficientMieB sky_coefficientMieG sky_coefficientMieR sky_coefficientRayleighB sky_coefficientRayleighG sky_coefficientRayleighR CLOUDS_QUALITY EXPOSURE_MULTIPLIER MIN_LIGHT_AMOUNT TORCH_R TORCH_G TORCH_B TORCH_AMOUNT shadowMapResolution sunPathRotation BLEND_FACTOR VL_SAMPLES Exposure_Speed POM_DEPTH MAX_ITERATIONS MAX_DIST SSR_STEPS ambientOcclusionLevel SEA_LEVEL moon_illuminance moonColorR moonColorG moonColorB fog_coefficientRayleighR fog_coefficientRayleighG SATURATION Manual_exposure_value focal aperture MANUAL_FOCUS SHADOW_FILTER_SAMPLE_COUNT Max_Filter_Depth VPS_Search_Samples Min_Shadow_Filter_Radius Max_Shadow_Filter_Radius Water_Top_Layer fog_coefficientRayleighB SHARPENING rayMarchSampleCount Dirt_Amount Dirt_Scatter_R Dirt_Scatter_G Dirt_Scatter_B Dirt_Absorb_R Dirt_Absorb_G Dirt_Absorb_B Water_Absorb_R Water_Absorb_G Water_Absorb_B Purkinje_strength Purkinje_strength Purkinje_R Purkinje_G Purkinje_B Texture_MipMap_Bias DoF_Adaptation_Speed Purkinje_Multiplier CROSSTALK VL_RENDER_RESOLUTION BLOOM_QUALITY VL_RENDER_RESOLUTION RAY_COUNT STEPS STEP_LENGTH cloud_LevelOfDetail cloud_ShadowLevelOfDetail cloud_LevelOfDetailLQ cloud_ShadowLevelOfDetailLQ minRayMarchSteps maxRayMarchSteps minRayMarchStepsLQ maxRayMarchStepsLQ fbmAmount fbmPower1 fbmPower2 Roughness_Threshold Sun_specular_Strength reflection_quality DOF_QUALITY DOF_ANAMORPHIC_RATIO AEROCHROME_PINKNESS DOF_JITTER_FOCUS JITTER_STRENGTH
screen.columns=2
screen = [Direct_Light] [World] \
@ -187,19 +187,17 @@ PhysicsMod_support [LabPBR]
screen.Purkinje_effect.columns = 1
screen.Purkinje_effect = Purkinje_strength Purkinje_R Purkinje_G Purkinje_B Purkinje_Multiplier
screen.Editing.columns = 1
screen.Editing = Compositing_Sky CompSky_R CompSky_G CompSky_B <empty> CONTRAST LUMINANCE_CURVE UPPER_CURVE LOWER_CURVE
screen.Editing.columns = 2
screen.Editing = Compositing_Sky CONTRAST CompSky_R COLOR_CURVE CompSky_G UPPER_CURVE CompSky_B LOWER_CURVE <empty> <empty> R_LOWER_CURVE R_UPPER_CURVE G_LOWER_CURVE G_UPPER_CURVE B_LOWER_CURVE B_UPPER_CURVE
######## MISC SETTINGS
screen.Misc_Settings.columns=1
screen.Misc_Settings = [the_orb] [lightning_color] WhiteWorld ambientLight_only Glass_Tint display_LUT ambientSSS_view
screen.Misc_Settings = [the_orb] WhiteWorld ambientLight_only Glass_Tint display_LUT ambientSSS_view
screen.the_orb.columns = 1
screen.the_orb = THE_ORB ORB_X ORB_Y ORB_Z ORB_ColMult ORB_R ORB_G ORB_B
screen.lightning_color = Lightning_R Lightning_G Lightning_B
screen.the_orb = THE_ORB ORB_X ORB_Y ORB_Z ORB_ColMult ORB_R ORB_G ORB_BB
screen.LabPBR.columns = 1
screen.LabPBR = [Reflections] [Subsurface_Scattering] [Emissives] [POM] [Porosity]
@ -315,7 +313,8 @@ uniform.float.noPuddleAreas = smooth(10, if(in(biome,5,16,17,18,26, 27, 28, 3, 4
# thank you sixthsurge!
uniform.float.lightningFlash = smooth(16,if(equals(skyColor.r, skyColor.g, 0.01) && skyColor.r > 0.3, 1.0, 0.0), 0, 1)
uniform.float.lightningFlash = smooth(16,if(equals(skyColor.r, skyColor.g, 0.01) && skyColor.r > 0.3, 1.0, 0.0), 0.0, 0.2)
uniform.vec3.lightningEffect = vec3(77.0*lightningFlash, 153.0*lightningFlash, 255.0*lightningFlash)
texture.noise=texture/noises.png
texture.composite.colortex6=texture/blueNoise.png

View File

@ -14,21 +14,21 @@ uniform int frameCounter;
//////////////////////////////VOID MAIN//////////////////////////////
//////////////////////////////VOID MAIN//////////////////////////////
float R2_dither(){
vec2 alpha = vec2(0.75487765, 0.56984026);
return fract(alpha.x * gl_FragCoord.x + alpha.y * gl_FragCoord.y + 1.0/1.6180339887 ) ;
float blueNoise(){
return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887 );
}
void main() {
gl_FragData[0] = texture2D(tex,texcoord.xy);
#ifdef SHADOW_DISABLE_ALPHA_MIPMAPS
gl_FragData[0].a = texture2DLod(tex,texcoord.xy,0).a;
gl_FragData[0].a = texture2DLod(tex,texcoord.xy,0).a;
#endif
#ifdef RENDER_ENTITY_SHADOWS
#endif
#ifdef Stochastic_Transparent_Shadows
gl_FragData[0].a = float(gl_FragData[0].a >= R2_dither());
gl_FragData[0].a = float(gl_FragData[0].a >= blueNoise());
#endif
}

View File

@ -161,12 +161,16 @@ void main() {
if(mc_Entity.x == 8 || mc_Entity.x == 9) gl_Position.w = -1.0;
/// this is to ease the shadow acne on big fat entities like ghasts.
/// this is to ease the shadow acne on big fat entities like ghasts.
float bias = 6.0;
float bias = 6.0;
vec3 FlatNormals = normalize(gl_NormalMatrix *gl_Normal);
vec3 WsunVec = (float(sunElevation > 1e-5)*2-1.)*normalize(mat3(shadowModelViewInverse) * sunPosition);
if(entityId == 1100) bias = 6.0 + (1-clamp(dot(WsunVec,FlatNormals),0,1))*0.3;
if(entityId == 1100){
// increase bias on parts facing the sun
vec3 FlatNormals = normalize(gl_NormalMatrix * gl_Normal);
vec3 WsunVec = (float(sunElevation > 1e-5)*2-1.)*normalize(mat3(shadowModelViewInverse) * sunPosition);
gl_Position.z /= bias;
bias = 6.0 + (1-clamp(dot(WsunVec,FlatNormals),0,1))*0.3;
}
gl_Position.z /= bias;
}

View File

@ -311,7 +311,7 @@ void Emission(
float Emission
){
// if( Emission < 255.0/255.0 ) Lighting = mix(Lighting, Albedo * Emissive_Brightness, pow(Emission, Emissive_Curve)); // old method.... idk why
if( Emission < 255.0/255.0 ) Lighting += (Albedo * Emissive_Brightness) * pow(Emission, Emissive_Curve);
if( Emission < 255.0/255.0 ) Lighting += (Albedo * Emissive_Brightness * 0.25) * pow(Emission, Emissive_Curve);
}

View File

@ -309,7 +309,7 @@ void Emission(
float Emission
){
// if( Emission < 255.0/255.0 ) Lighting = mix(Lighting, Albedo * Emissive_Brightness, pow(Emission, Emissive_Curve)); // old method.... idk why
if( Emission < 255.0/255.0 ) Lighting += (Albedo * Emissive_Brightness) * pow(Emission, Emissive_Curve);
if( Emission < 255.0/255.0 ) Lighting += (Albedo * Emissive_Brightness * 0.25) * pow(Emission, Emissive_Curve);
}
float rayTraceShadow(vec3 dir,vec3 position,float dither){