mirror of
https://github.com/X0nk/Bliss-Shader.git
synced 2024-12-23 01:59:39 +08:00
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:
parent
7618c0abba
commit
0b4bf8e7c6
@ -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,12 +204,7 @@ void main() {
|
||||
|
||||
gl_FragData[0] = vec4(minshadowfilt, 0.1, 0.0, 0.0);
|
||||
|
||||
if (z < 1.0){
|
||||
|
||||
// if( translucent || translucent2)
|
||||
|
||||
if (!hand){
|
||||
|
||||
if (z < 1.0 && !hand){
|
||||
|
||||
vec3 fragpos = toScreenSpace(vec3(texcoord/RENDER_SCALE-vec2(tempOffset)*texelSize*0.5,z));
|
||||
|
||||
@ -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;
|
||||
@ -266,6 +269,4 @@ void main() {
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -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);
|
||||
|
||||
#if SSS_TYPE != 0
|
||||
#ifndef Variable_Penumbra_Shadows
|
||||
if(LabSSS > 0 ) {
|
||||
SHADOWBLOCKERDEPTBH = pow(1.0 - Shadows,2);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if SSS_TYPE != 0
|
||||
|
||||
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));
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
||||
}
|
@ -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"
|
||||
|
@ -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 )
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
@ -87,11 +89,20 @@ 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.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
|
||||
|
@ -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
|
||||
}
|
@ -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
|
||||
|
@ -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
|
||||
|
5
shaders/gbuffers_clouds.vsh
Normal file
5
shaders/gbuffers_clouds.vsh
Normal file
@ -0,0 +1,5 @@
|
||||
#version 120
|
||||
|
||||
void main() {
|
||||
gl_Position.xyz = vec3(-1.0);
|
||||
}
|
@ -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);
|
||||
}
|
@ -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;
|
||||
|
@ -1,5 +1,6 @@
|
||||
#version 120
|
||||
|
||||
#define LIT
|
||||
// #define WEATHER
|
||||
#define PARTICLES
|
||||
#include "gbuffers_all_particles.fsh"
|
@ -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
@ -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) );
|
||||
|
@ -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]
|
||||
|
@ -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);
|
||||
|
@ -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++) {
|
||||
|
@ -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.;
|
||||
|
||||
#ifdef ReflectedFog
|
||||
lightningColor *= 0.01;
|
||||
#endif
|
||||
|
||||
#ifndef ReflectedFog
|
||||
vec3 np3 = normVec(wpos);
|
||||
float ambfogfade = clamp(exp(np3.y* 2 - 2),0.0,1.0) * 4 ;
|
||||
|
||||
Fog_SkyCol += (lightningColor/10) * ambfogfade;
|
||||
lightningColor *= ambfogfade;
|
||||
#endif
|
||||
|
||||
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);
|
||||
|
@ -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
|
||||
|
@ -14,9 +14,9 @@ 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);
|
||||
@ -29,6 +29,6 @@ void main() {
|
||||
#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
|
||||
}
|
||||
|
@ -162,11 +162,15 @@ void main() {
|
||||
|
||||
|
||||
/// this is to ease the shadow acne on big fat entities like ghasts.
|
||||
|
||||
float bias = 6.0;
|
||||
vec3 FlatNormals = normalize(gl_NormalMatrix *gl_Normal);
|
||||
|
||||
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);
|
||||
if(entityId == 1100) bias = 6.0 + (1-clamp(dot(WsunVec,FlatNormals),0,1))*0.3;
|
||||
|
||||
bias = 6.0 + (1-clamp(dot(WsunVec,FlatNormals),0,1))*0.3;
|
||||
}
|
||||
|
||||
gl_Position.z /= bias;
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -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){
|
||||
|
Loading…
Reference in New Issue
Block a user