diff --git a/shaders/dimensions/all_solid.fsh b/shaders/dimensions/all_solid.fsh index d6dbac2..fc36424 100644 --- a/shaders/dimensions/all_solid.fsh +++ b/shaders/dimensions/all_solid.fsh @@ -388,6 +388,10 @@ void main() { //////////////////////////////// //////////////////////////////// vec4 Albedo = texture2D_POMSwitch(texture, adjustedTexCoord.xy, vec4(dcdx,dcdy), ifPOM) * color; + + #if defined HAND + if (Albedo.a < 0.1) discard; + #endif if(LIGHTNING > 0) Albedo = vec4(1); diff --git a/shaders/dimensions/all_solid.vsh b/shaders/dimensions/all_solid.vsh index 36c8bb4..015d7a5 100644 --- a/shaders/dimensions/all_solid.vsh +++ b/shaders/dimensions/all_solid.vsh @@ -189,7 +189,6 @@ void main() { vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz; - /////// ----- COLOR STUFF ----- /////// color = gl_Color; diff --git a/shaders/dimensions/all_translucent.fsh b/shaders/dimensions/all_translucent.fsh index bc2ef52..d092aea 100644 --- a/shaders/dimensions/all_translucent.fsh +++ b/shaders/dimensions/all_translucent.fsh @@ -492,7 +492,7 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 ) float roughness = max(pow(1.0-SpecularTex.r,2.0),0.05); float f0 = SpecularTex.g; - if (iswater > 0.0){ + if (iswater > 0.0 && gl_FragData[0].a < 0.9999999){ vec3 Reflections_Final = vec3(0.0); vec4 Reflections = vec4(0.0); vec3 SkyReflection = vec3(0.0); @@ -560,6 +560,7 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 ) } else { gl_FragData[0].rgb = FinalColor; } + #else gl_FragData[0].rgb = FinalColor; #endif diff --git a/shaders/dimensions/all_vanilla_emissives.fsh b/shaders/dimensions/all_vanilla_emissives.fsh index 1c169e0..cb94bc7 100644 --- a/shaders/dimensions/all_vanilla_emissives.fsh +++ b/shaders/dimensions/all_vanilla_emissives.fsh @@ -3,6 +3,8 @@ varying vec2 texcoord; uniform sampler2D texture; +flat varying float exposure; + //faster and actually more precise than pow 2.2 vec3 toLinear(vec3 sRGB){ return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878); @@ -36,14 +38,14 @@ float encodeVec2(float x,float y){ #endif #ifdef ENCHANT_GLINT - /* DRAWBUFFERS:2 */ + /* DRAWBUFFERS:2 */ #endif void main() { vec4 Albedo = texture2D(texture, texcoord); - #if defined SPIDER_EYES || defined BEACON_BEAM || defined GLOWING + #if defined SPIDER_EYES || defined BEACON_BEAM || defined GLOWING vec4 data1 = vec4(1.0); float materialMask = 1.0; #if defined SPIDER_EYES || defined GLOWING @@ -60,8 +62,8 @@ void main() { #endif #ifdef ENCHANT_GLINT - vec3 GlintColor = toLinear(Albedo.rgb * color.rgb) * Albedo.a; + vec3 GlintColor = toLinear(Albedo.rgb * color.rgb) / clamp(exposure,0.01,1.0); - gl_FragData[0] = vec4(GlintColor, Albedo.a * 0.1); + gl_FragData[0] = vec4(GlintColor , Albedo.a * 0.1); #endif } \ No newline at end of file diff --git a/shaders/dimensions/all_vanilla_emissives.vsh b/shaders/dimensions/all_vanilla_emissives.vsh index 52b9875..423b2d3 100644 --- a/shaders/dimensions/all_vanilla_emissives.vsh +++ b/shaders/dimensions/all_vanilla_emissives.vsh @@ -21,16 +21,33 @@ const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.), vec2(-7.,-1.)/8., vec2(3,7.)/8., vec2(7.,-7.)/8.); - + +#define diagonal3(m) vec3((m)[0].x, (m)[1].y, m[2].z) +#define projMAD(m, v) (diagonal3(m) * (v) + (m)[3].xyz) +vec4 toClipSpace3(vec3 viewSpacePosition) { + return vec4(projMAD(gl_ProjectionMatrix, viewSpacePosition),-viewSpacePosition.z); +} + //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// +uniform sampler2D colortex4; +flat varying float exposure; + void main() { - gl_Position = ftransform(); + + #if defined ENCHANT_GLINT || defined SPIDER_EYES + exposure = texelFetch2D(colortex4,ivec2(10,37),0).r; + + vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz; + gl_Position = toClipSpace3(position); + #else + gl_Position = ftransform(); + #endif texcoord = (gl_MultiTexCoord0).xy; #ifdef ENCHANT_GLINT diff --git a/shaders/dimensions/composite1.fsh b/shaders/dimensions/composite1.fsh index 090e485..8d78284 100644 --- a/shaders/dimensions/composite1.fsh +++ b/shaders/dimensions/composite1.fsh @@ -1018,7 +1018,6 @@ void main() { } #endif - // gl_FragData[0].rgb = vec3(1) ; /* DRAWBUFFERS:3 */ diff --git a/shaders/dimensions/composite3.fsh b/shaders/dimensions/composite3.fsh index 929c37b..cc28909 100644 --- a/shaders/dimensions/composite3.fsh +++ b/shaders/dimensions/composite3.fsh @@ -7,6 +7,7 @@ flat varying vec2 TAA_Offset; uniform sampler2D noisetex; uniform sampler2D depthtex0; uniform sampler2D depthtex1; +uniform sampler2D depthtex2; uniform sampler2D colortex0; uniform sampler2D colortex1; uniform sampler2D colortex2; @@ -17,12 +18,14 @@ uniform sampler2D colortex6; uniform sampler2D colortex7; uniform sampler2D colortex8; uniform sampler2D colortex9; +uniform sampler2D colortex10; uniform sampler2D colortex11; uniform sampler2D colortex13; uniform sampler2D colortex15; uniform vec2 texelSize; -flat varying vec3 noooormal; + + flat varying vec4 lightCol; //main light source color (rgb),used light source(1=sun,-1=moon) flat varying vec3 WsunVec; @@ -262,6 +265,7 @@ void main() { color = color*(1.0-TranslucentShader.a) + TranslucentShader.rgb; + #ifdef BorderFog if(z < 1.0 && isEyeInWater == 0) color.rgb = mix(color.rgb, sky, fog); #endif @@ -344,4 +348,5 @@ void main() { gl_FragData[0].r = vl.a * bloomyFogMult; // pass fog alpha so bloom can do bloomy fog gl_FragData[1].rgb = clamp(color.rgb, 0.0,68000.0); + } \ No newline at end of file diff --git a/shaders/dimensions/composite3.vsh b/shaders/dimensions/composite3.vsh index 1717e80..d303a21 100644 --- a/shaders/dimensions/composite3.vsh +++ b/shaders/dimensions/composite3.vsh @@ -3,6 +3,7 @@ varying vec2 texcoord; flat varying vec3 zMults; uniform float far; uniform float near; + //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// //////////////////////////////VOID MAIN////////////////////////////// @@ -10,6 +11,7 @@ uniform float near; //////////////////////////////VOID MAIN////////////////////////////// void main() { + zMults = vec3(1.0/(far * near),far+near,far-near); gl_Position = ftransform(); texcoord = gl_MultiTexCoord0.xy; diff --git a/shaders/lib/settings.glsl b/shaders/lib/settings.glsl index b3b00cf..79e5638 100644 --- a/shaders/lib/settings.glsl +++ b/shaders/lib/settings.glsl @@ -164,7 +164,7 @@ const float sunPathRotation = -35; //[-90 -89 -88 -87 -86 -85 -84 -83 -82 -81 -8 #define RainFog_amount 3 // [0 1 2 3 4 5 6 7 8 9 10 15 20 25] -#define BLOOMY_FOG 1.0 // [0.0 0.25 0.5 0.75 1.0 1.25 1.5 1.75 2.0 3.0 4.0 6.0 10.0 15.0 20.0] +#define BLOOMY_FOG 1.5 // [0.0 0.25 0.5 0.75 1.0 1.25 1.5 1.75 2.0 3.0 4.0 6.0 10.0 15.0 20.0] #define BLOOM_STRENGTH 4.0 // [0.0 0.25 0.5 0.75 1.0 1.25 1.5 1.75 2.0 3.0 4.0] #define Cave_fog diff --git a/shaders/shaders.properties b/shaders/shaders.properties index 555c575..bfccfff 100644 --- a/shaders/shaders.properties +++ b/shaders/shaders.properties @@ -22,7 +22,7 @@ dynamicHandLight=true oldLighting=false separateAo = true -particles.before.deferred = true +# particles.before.deferred = true rain.depth = false beacon.beam.depth = true @@ -32,31 +32,35 @@ program.composite4.enabled = TAA_UPSCALING # SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE ZERO # SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE #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_hand_water = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE ZERO -blend.gbuffers_textured = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE ZERO -blend.gbuffers_textured_lit = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE ZERO +blend.gbuffers_hand_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_textured_lit = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE blend.gbuffers_spidereyes = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE +blend.gbuffers_basic = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE blend.gbuffers_armor_glint = ONE ONE ONE ONE blend.gbuffers_weather = ONE ONE ONE ONE blend.gbuffers_skytextured = ONE ONE ONE ONE -blend.gbuffers_damagedblock = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE +blend.gbuffers_damagedblock = ONE ONE ONE ONE # Disable blending blend.gbuffers_hand = off blend.gbuffers_block = off -blend.gbuffers_basic = off blend.gbuffers_entities = off -blend.gbuffers_armor_glint = off blend.gbuffers_beaconbeam = off -blend.gbuffers_armor_glint = off blend.gbuffers_water.colortex11 = off blend.composite.colortex12 = off # Alpha test alphaTest.shadow = GREATER 0.1 -alphaTest.gbuffers_entities = GREATER 0.01 +alphaTest.gbuffers_entities = GREATER 0.1 alphaTest.gbuffers_armor_glint=false alphaTest.gbuffers_weather=false @@ -185,7 +189,12 @@ PhysicsMod_support [LabPBR] ### FOG screen.Fog.columns=2 - screen.Fog = VL_RENDER_RESOLUTION Haze_amount VL_SAMPLES RainFog_amount BLOOMY_FOG [TOD_fog] Cloud_Fog BorderFog [Cave_Fog] [NETHER_END_FOG] + screen.Fog = VL_RENDER_RESOLUTION Haze_amount \ + VL_SAMPLES RainFog_amount \ + BLOOMY_FOG [TOD_fog] \ + BorderFog [Cave_Fog] \ + Cloud_Fog PER_BIOME_ENVIRONMENT + screen.TOD_fog.columns=2 @@ -337,7 +346,7 @@ uniform.vec3.lightningEffect = vec3(77.0 * lightningFlash, 153.0 * lightningFlas ################################### # in seconds -variable.int.BiomeTransitionTime = 30 +variable.int.BiomeTransitionTime = 60 #ifdef SWAMP_ENV uniform.float.isSwamps = smooth(if(in(biome, 6, 52, 7), 1,0), BiomeTransitionTime, BiomeTransitionTime)