more setup for scene controller, replace old weather stuff with it. fix vignette when entering/exitings water. added a water enter effect

This commit is contained in:
Xonk
2025-03-27 19:09:58 -04:00
parent e5d90521dd
commit f0611c681e
22 changed files with 229 additions and 269 deletions

View File

@ -122,14 +122,7 @@ uniform float rainStrength;
#ifdef OVERWORLD_SHADER
#ifdef Daily_Weather
flat varying vec4 dailyWeatherParams0;
flat varying vec4 dailyWeatherParams1;
#else
vec4 dailyWeatherParams0 = vec4(CloudLayer0_coverage, CloudLayer1_coverage, CloudLayer2_coverage, 0.0);
vec4 dailyWeatherParams1 = vec4(CloudLayer0_density, CloudLayer1_density, CloudLayer2_density, 0.0);
#endif
#include "/lib/scene_controller.glsl"
#define CLOUDSHADOWSONLY
#include "/lib/volumetricClouds.glsl"
#endif

View File

@ -14,10 +14,7 @@ flat varying vec3 averageSkyCol_Clouds;
flat varying vec4 lightCol;
#ifdef OVERWORLD_SHADER
#ifdef Daily_Weather
flat varying vec4 dailyWeatherParams0;
flat varying vec4 dailyWeatherParams1;
#endif
#include "/lib/scene_controller.glsl"
#endif
varying mat4 normalmatrix;
@ -105,10 +102,7 @@ void main() {
averageSkyCol_Clouds = texelFetch2D(colortex4,ivec2(0,37),0).rgb;
#ifdef OVERWORLD_SHADER
#if defined Daily_Weather
dailyWeatherParams0 = vec4((texelFetch2D(colortex4,ivec2(1,1),0).rgb/150.0)/2.0, 0.0);
dailyWeatherParams1 = vec4((texelFetch2D(colortex4,ivec2(2,1),0).rgb/150.0)/2.0, 0.0);
#endif
readSceneControllerParameters(colortex4, parameters.smallCumulus, parameters.largeCumulus, parameters.altostratus, parameters.fog);
#endif

View File

@ -74,13 +74,8 @@ uniform vec3 previousCameraPosition;
#include "/lib/projections.glsl"
#ifdef OVERWORLD_SHADER
#ifdef Daily_Weather
flat varying vec4 dailyWeatherParams0;
flat varying vec4 dailyWeatherParams1;
#else
vec4 dailyWeatherParams0 = vec4(CloudLayer0_coverage, CloudLayer1_coverage, CloudLayer2_coverage, 0.0);
vec4 dailyWeatherParams1 = vec4(CloudLayer0_density, CloudLayer1_density, CloudLayer2_density, 0.0);
#endif
#include "/lib/scene_controller.glsl"
#define CLOUDSHADOWSONLY

View File

@ -24,11 +24,7 @@ flat varying float exposure;
flat varying vec4 lightCol;
flat varying vec3 WsunVec;
#ifdef Daily_Weather
flat varying vec4 dailyWeatherParams0;
flat varying vec4 dailyWeatherParams1;
#endif
#include "/lib/scene_controller.glsl"
#endif
@ -133,14 +129,10 @@ void main() {
#ifdef OVERWORLD_SHADER
lightCol.rgb = texelFetch2D(colortex4,ivec2(6,37),0).rgb;
lightCol.a = float(sunElevation > 1e-5)*2.0 - 1.0;
averageSkyCol_Clouds = texelFetch2D(colortex4,ivec2(0,37),0).rgb;
WsunVec = lightCol.a * normalize(mat3(gbufferModelViewInverse) * sunPosition);
#if defined Daily_Weather
dailyWeatherParams0 = vec4(texelFetch2D(colortex4,ivec2(1,1),0).rgb / 1500.0, 0.0);
dailyWeatherParams1 = vec4(texelFetch2D(colortex4,ivec2(2,1),0).rgb / 1500.0, 0.0);
#endif
readSceneControllerParameters(colortex4, parameters.smallCumulus, parameters.largeCumulus, parameters.altostratus, parameters.fog);
#endif

View File

@ -114,15 +114,9 @@ uniform float waterEnteredAltitude;
#ifdef OVERWORLD_SHADER
flat varying float Flashing;
#include "/lib/lightning_stuff.glsl"
#ifdef Daily_Weather
flat varying vec4 dailyWeatherParams0;
flat varying vec4 dailyWeatherParams1;
#else
vec4 dailyWeatherParams0 = vec4(CloudLayer0_coverage, CloudLayer1_coverage, CloudLayer2_coverage, 0.0);
vec4 dailyWeatherParams1 = vec4(CloudLayer0_density, CloudLayer1_density, CloudLayer2_density, 0.0);
#endif
#include "/lib/scene_controller.glsl"
#define CLOUDSHADOWSONLY
#include "/lib/volumetricClouds.glsl"

View File

@ -24,11 +24,7 @@ uniform sampler2D noisetex;
flat varying vec4 lightCol;
flat varying vec3 WsunVec;
#ifdef Daily_Weather
flat varying vec4 dailyWeatherParams0;
flat varying vec4 dailyWeatherParams1;
#endif
#include "/lib/scene_controller.glsl"
#endif
varying vec4 normalMat;
@ -215,11 +211,7 @@ void main() {
WsunVec = mix(WmoonVec, WsunVec, clamp(lightCol.a,0,1));
#if defined Daily_Weather
dailyWeatherParams0 = vec4(texelFetch2D(colortex4,ivec2(1,1),0).rgb / 1500.0, 0.0);
dailyWeatherParams1 = vec4(texelFetch2D(colortex4,ivec2(2,1),0).rgb / 1500.0, 0.0);
#endif
readSceneControllerParameters(colortex4, parameters.smallCumulus, parameters.largeCumulus, parameters.altostratus, parameters.fog);
#endif

View File

@ -158,14 +158,8 @@ float convertHandDepth_2(in float depth, bool hand) {
#ifdef OVERWORLD_SHADER
#ifdef Daily_Weather
flat varying vec4 dailyWeatherParams0;
flat varying vec4 dailyWeatherParams1;
#else
vec4 dailyWeatherParams0 = vec4(CloudLayer0_coverage, CloudLayer1_coverage, CloudLayer2_coverage, 0.0);
vec4 dailyWeatherParams1 = vec4(CloudLayer0_density, CloudLayer1_density, CloudLayer2_density, 0.0);
#endif
#include "/lib/scene_controller.glsl"
#define CLOUDSHADOWSONLY
#include "/lib/volumetricClouds.glsl"
#define CLOUDS_INTERSECT_TERRAIN
@ -1346,7 +1340,7 @@ void main() {
}
if(translucentMasks > 0.0 && isEyeInWater != 1){
if(translucentMasks > 0.0 ){
// water absorbtion will impact ALL light coming up from terrain underwater.
gl_FragData[0].rgb *= Absorbtion;

View File

@ -5,11 +5,7 @@
flat varying float Flashing;
#endif
#ifdef Daily_Weather
flat varying vec4 dailyWeatherParams0;
flat varying vec4 dailyWeatherParams1;
#endif
#include "/lib/scene_controller.glsl"
flat varying vec3 WsunVec;
flat varying vec3 WmoonVec;
@ -77,11 +73,8 @@ void main() {
exposure = texelFetch2D(colortex4,ivec2(10,37),0).r;
#if defined Daily_Weather
dailyWeatherParams0 = vec4(texelFetch2D(colortex4,ivec2(1,1),0).rgb / 1500.0, 0.0);
dailyWeatherParams1 = vec4(texelFetch2D(colortex4,ivec2(2,1),0).rgb / 1500.0, 0.0);
#endif
readSceneControllerParameters(colortex4, parameters.smallCumulus, parameters.largeCumulus, parameters.altostratus, parameters.fog);
#ifdef TAA
TAA_Offset = offsets[framemod8];

View File

@ -154,16 +154,11 @@ uniform float nightVision;
uniform sampler2DShadow shadowtex0;
uniform sampler2DShadow shadowtex1;
#endif
flat varying vec3 refractedSunVec;
#ifdef Daily_Weather
flat varying vec4 dailyWeatherParams0;
flat varying vec4 dailyWeatherParams1;
#else
vec4 dailyWeatherParams0 = vec4(CloudLayer0_coverage, CloudLayer1_coverage, CloudLayer2_coverage, 0.0);
vec4 dailyWeatherParams1 = vec4(CloudLayer0_density, CloudLayer1_density, CloudLayer2_density, 0.0);
#endif
#include "/lib/scene_controller.glsl"
// uniform int dhRenderDistance;
@ -479,6 +474,7 @@ vec4 raymarchTest(
return vec4(color, totalAbsorbance);
}
//////////////////////////////VOID MAIN//////////////////////////////
//////////////////////////////VOID MAIN//////////////////////////////
//////////////////////////////VOID MAIN//////////////////////////////
@ -565,7 +561,6 @@ void main() {
// VolumetricFog = raymarchTest2(viewPos0, BN.x);
// VolumetricFog = raymarchTest(viewPos0, BN);
gl_FragData[0] = clamp(VolumetricFog, 0.0, 65000.0);
}

View File

@ -10,12 +10,7 @@ flat varying vec3 averageSkyCol_Clouds;
flat varying float exposure;
#endif
#ifdef Daily_Weather
flat varying vec4 dailyWeatherParams0;
flat varying vec4 dailyWeatherParams1;
#endif
#include "/lib/scene_controller.glsl"
flat varying vec3 WsunVec;
@ -36,17 +31,17 @@ flat varying vec2 TAA_Offset;
uniform int framemod8;
#include "/lib/TAA_jitter.glsl"
//////////////////////////////VOID MAIN//////////////////////////////
//////////////////////////////VOID MAIN//////////////////////////////
//////////////////////////////VOID MAIN//////////////////////////////
//////////////////////////////VOID MAIN//////////////////////////////
//////////////////////////////VOID MAIN//////////////////////////////
uniform float frameTimeCounter;
#include "/lib/Shadow_Params.glsl"
#include "/lib/sky_gradient.glsl"
//////////////////////////////VOID MAIN//////////////////////////////
//////////////////////////////VOID MAIN//////////////////////////////
//////////////////////////////VOID MAIN//////////////////////////////
//////////////////////////////VOID MAIN//////////////////////////////
//////////////////////////////VOID MAIN//////////////////////////////
void main() {
gl_Position = ftransform();
@ -57,15 +52,8 @@ void main() {
lightCol.rgb = texelFetch2D(colortex4,ivec2(6,37),0).rgb;
averageSkyCol = texelFetch2D(colortex4,ivec2(1,37),0).rgb;
averageSkyCol_Clouds = texelFetch2D(colortex4,ivec2(0,37),0).rgb;
#if defined Daily_Weather
dailyWeatherParams0 = vec4(texelFetch2D(colortex4,ivec2(1,1),0).rgb / 1500.0, 0.0);
dailyWeatherParams1 = vec4(texelFetch2D(colortex4,ivec2(2,1),0).rgb / 1500.0, 0.0);
dailyWeatherParams0.a = texelFetch2D(colortex4,ivec2(3,1),0).x/1500.0;
dailyWeatherParams1.a = texelFetch2D(colortex4,ivec2(3,1),0).y/1500.0;
#endif
readSceneControllerParameters(colortex4, parameters.smallCumulus, parameters.largeCumulus, parameters.altostratus, parameters.fog);
#endif
#ifdef NETHER_SHADER

View File

@ -638,7 +638,7 @@ void main() {
////// --------------- FINALIZE
#ifdef display_LUT
float zoomLevel = 1.0;
float zoomLevel = 75.0;
vec3 thingy = texelFetch2D(colortex4,ivec2(gl_FragCoord.xy/zoomLevel),0).rgb /1200.0;
if(luma(thingy) > 0.0){

View File

@ -163,17 +163,7 @@ float invLinZ (float lindepth){
#define TIMEOFDAYFOG
#include "/lib/lightning_stuff.glsl"
#ifdef Daily_Weather
flat varying vec4 dailyWeatherParams0;
flat varying vec4 dailyWeatherParams1;
#else
vec4 dailyWeatherParams0 = vec4(CloudLayer0_coverage, CloudLayer1_coverage, CloudLayer2_coverage, 0.0);
vec4 dailyWeatherParams1 = vec4(CloudLayer0_density, CloudLayer1_density, CloudLayer2_density, 0.0);
#endif
flat varying vec4 CurrentFrame_dailyWeatherParams0;
flat varying vec4 CurrentFrame_dailyWeatherParams1;
#include "/lib/scene_controller.glsl"
#define VL_CLOUDS_DEFERRED
@ -208,6 +198,9 @@ vec2 R2_samples(float n){
uniform float dayChangeSmooth;
uniform bool worldTimeChangeCheck;
uniform int hideGUI;
void main() {
/* DRAWBUFFERS:4 */
@ -224,18 +217,19 @@ float mixhistory = 0.06;
// the idea is to store the 8 values, coverage + density of 3 cloud layers and 2 fog density values.
#ifdef Daily_Weather
ivec2 pixelPos = ivec2(0,0);
if (gl_FragCoord.x > 1 && gl_FragCoord.x < 4 && gl_FragCoord.y > 1 && gl_FragCoord.y < 2){
// #ifdef Daily_Weather
if (gl_FragCoord.x > 1 && gl_FragCoord.x < 4 && gl_FragCoord.y > 1 && gl_FragCoord.y < 4){
mixhistory = 10.0 * frameTime;
mixhistory = clamp(dayChangeSmooth*dayChangeSmooth*dayChangeSmooth*0.1, frameTime*0.1, 1.0);
if(gl_FragCoord.x < 2) gl_FragData[0] = vec4(CurrentFrame_dailyWeatherParams0.rgb * 10.0,1.0);
if(gl_FragCoord.x > 2) gl_FragData[0] = vec4(CurrentFrame_dailyWeatherParams1.rgb * 10.0,1.0);
if(gl_FragCoord.x > 3) gl_FragData[0] = vec4(CurrentFrame_dailyWeatherParams0.a * 10.0, CurrentFrame_dailyWeatherParams1.a * 10.0, 0.0, 1.0);
gl_FragData[0].rgb = writeSceneControllerParameters(gl_FragCoord.xy, parameters.smallCumulus, parameters.largeCumulus, parameters.altostratus, parameters.fog);
}
#endif
// vec4 superSampledHistory = texture2D(colortex5, previousPosition.xy);
// vec3 superSampledResult = superSampledHistory.rgb * superSampledHistory.a + currentFrame;
// return vec4(superSampledResult/(superSampledHistory.a+1.0), superSampledHistory.a+1.0);
// #endif
///////////////////////////////
/// --- STORE COLOR LUT --- ///
@ -432,7 +426,7 @@ vec3 frameHistory = texelFetch2D(colortex4,ivec2(gl_FragCoord.xy),0).rgb;
vec3 currentFrame = gl_FragData[0].rgb*150.;
gl_FragData[0].rgb = clamp(mix(frameHistory, currentFrame, mixhistory),0.0,65000.);
gl_FragData[0].rgb = clamp(mix(frameHistory, currentFrame, clamp(mixhistory,0.0,1.0)),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

@ -23,13 +23,9 @@ flat varying float rodExposure;
flat varying float avgL2;
flat varying float centerDepth;
#ifdef Daily_Weather
flat varying vec4 dailyWeatherParams0;
flat varying vec4 dailyWeatherParams1;
#endif
#include "/lib/scene_controller.glsl"
uniform int hideGUI;
flat varying vec4 CurrentFrame_dailyWeatherParams0;
flat varying vec4 CurrentFrame_dailyWeatherParams1;
uniform sampler2D colortex4;
uniform sampler2D colortex6;
@ -188,84 +184,72 @@ void main() {
moonColor = vec3(0.0);
#endif
//////////////////////////////////
/// --- WEATHER PARAMETERS --- ///
//////////////////////////////////
///////////////////////////////////////////
/// --- SCENE CONTROLLER PARAMETERS --- ///
///////////////////////////////////////////
#ifdef Daily_Weather
// this is horrid and i hate it
// store 8 values that control cloud parameters.
// as the day counter changes, switch to a different set of stored values.
parameters.smallCumulus = vec2(CloudLayer0_coverage, CloudLayer0_density);
parameters.largeCumulus = vec2(CloudLayer1_coverage, CloudLayer1_density);
parameters.altostratus = vec2(CloudLayer2_coverage, CloudLayer2_density);
parameters.fog = vec2(1.0, 1.0);
#ifdef Daily_Weather
#ifdef CHOOSE_RANDOM_WEATHER_PROFILE
int dayCounter = int(clamp(hash11(float(mod(worldDay, 1000))) * 10.0, 0,10));
#else
int dayCounter = int(mod(worldDay, 10));
#endif
vec4 weatherParameters_A[10] = vec4[](
vec4( DAY0_l0_coverage, DAY0_l1_coverage, DAY0_l2_coverage, DAY0_ufog_density),
vec4( DAY1_l0_coverage, DAY1_l1_coverage, DAY1_l2_coverage, DAY1_ufog_density),
vec4( DAY2_l0_coverage, DAY2_l1_coverage, DAY2_l2_coverage, DAY2_ufog_density),
vec4( DAY3_l0_coverage, DAY3_l1_coverage, DAY3_l2_coverage, DAY3_ufog_density),
vec4( DAY4_l0_coverage, DAY4_l1_coverage, DAY4_l2_coverage, DAY4_ufog_density),
vec4( DAY5_l0_coverage, DAY5_l1_coverage, DAY5_l2_coverage, DAY5_ufog_density),
vec4( DAY6_l0_coverage, DAY6_l1_coverage, DAY6_l2_coverage, DAY6_ufog_density),
vec4( DAY7_l0_coverage, DAY7_l1_coverage, DAY7_l2_coverage, DAY7_ufog_density),
vec4( DAY8_l0_coverage, DAY8_l1_coverage, DAY8_l2_coverage, DAY8_ufog_density),
vec4( DAY9_l0_coverage, DAY9_l1_coverage, DAY9_l2_coverage, DAY9_ufog_density)
//----------- cloud coverage
vec3 weatherProfile_cloudCoverage[10] = vec3[](
vec3(DAY0_l0_coverage, DAY0_l1_coverage, DAY0_l2_coverage),
vec3(DAY1_l0_coverage, DAY1_l1_coverage, DAY1_l2_coverage),
vec3(DAY2_l0_coverage, DAY2_l1_coverage, DAY2_l2_coverage),
vec3(DAY3_l0_coverage, DAY3_l1_coverage, DAY3_l2_coverage),
vec3(DAY4_l0_coverage, DAY4_l1_coverage, DAY4_l2_coverage),
vec3(DAY5_l0_coverage, DAY5_l1_coverage, DAY5_l2_coverage),
vec3(DAY6_l0_coverage, DAY6_l1_coverage, DAY6_l2_coverage),
vec3(DAY7_l0_coverage, DAY7_l1_coverage, DAY7_l2_coverage),
vec3(DAY8_l0_coverage, DAY8_l1_coverage, DAY8_l2_coverage),
vec3(DAY9_l0_coverage, DAY9_l1_coverage, DAY9_l2_coverage)
);
vec4 weatherParameters_B[10] = vec4[](
vec4(DAY0_l0_density, DAY0_l1_density, DAY0_l2_density, DAY0_cfog_density),
vec4(DAY1_l0_density, DAY1_l1_density, DAY1_l2_density, DAY1_cfog_density),
vec4(DAY2_l0_density, DAY2_l1_density, DAY2_l2_density, DAY2_cfog_density),
vec4(DAY3_l0_density, DAY3_l1_density, DAY3_l2_density, DAY3_cfog_density),
vec4(DAY4_l0_density, DAY4_l1_density, DAY4_l2_density, DAY4_cfog_density),
vec4(DAY5_l0_density, DAY5_l1_density, DAY5_l2_density, DAY5_cfog_density),
vec4(DAY6_l0_density, DAY6_l1_density, DAY6_l2_density, DAY6_cfog_density),
vec4(DAY7_l0_density, DAY7_l1_density, DAY7_l2_density, DAY7_cfog_density),
vec4(DAY8_l0_density, DAY8_l1_density, DAY8_l2_density, DAY8_cfog_density),
vec4(DAY9_l0_density, DAY9_l1_density, DAY9_l2_density, DAY9_cfog_density)
//----------- cloud density
vec3 weatherProfile_cloudDensity[10] = vec3[](
vec3(DAY0_l0_density, DAY0_l1_density, DAY0_l2_density),
vec3(DAY1_l0_density, DAY1_l1_density, DAY1_l2_density),
vec3(DAY2_l0_density, DAY2_l1_density, DAY2_l2_density),
vec3(DAY3_l0_density, DAY3_l1_density, DAY3_l2_density),
vec3(DAY4_l0_density, DAY4_l1_density, DAY4_l2_density),
vec3(DAY5_l0_density, DAY5_l1_density, DAY5_l2_density),
vec3(DAY6_l0_density, DAY6_l1_density, DAY6_l2_density),
vec3(DAY7_l0_density, DAY7_l1_density, DAY7_l2_density),
vec3(DAY8_l0_density, DAY8_l1_density, DAY8_l2_density),
vec3(DAY9_l0_density, DAY9_l1_density, DAY9_l2_density)
);
vec3 getWeatherProfile_coverage = weatherProfile_cloudCoverage[dayCounter];
vec3 getWeatherProfile_density = weatherProfile_cloudDensity[dayCounter];
parameters.smallCumulus = vec2(getWeatherProfile_coverage.x, getWeatherProfile_density.x);
parameters.largeCumulus = vec2(getWeatherProfile_coverage.y, getWeatherProfile_density.y);
parameters.altostratus = vec2(getWeatherProfile_coverage.z, getWeatherProfile_density.z);
CurrentFrame_dailyWeatherParams0 = weatherParameters_A[dayCounter];
CurrentFrame_dailyWeatherParams1 = weatherParameters_B[dayCounter];
vec4 rainyWeatherParameters_A[3] = vec4[](
// vec4(DAY0_l0_coverage, DAY0_l1_coverage, DAY0_l2_coverage, DAY0_ufog_density),
vec4(1.3,0.0,0.0,0.0),
vec4(0.5,0.0,0.0,0.0),
vec4(0.0,0.0,0.0,0.0)
);
vec4 rainyWeatherParameters_B[3] = vec4[](
// vec4(DAY7_l0_density, DAY7_l1_density, DAY7_l2_density, DAY7_cfog_density),
vec4(0.1,0.0,0.0,0.0),
vec4(0.1,0.0,0.0,0.0),
vec4(0.0,0.0,0.0,0.0)
//----------- fog density
vec2 weatherProfile_fogDensity[10] = vec2[](
vec2(DAY0_ufog_density, DAY0_cfog_density),
vec2(DAY1_ufog_density, DAY1_cfog_density),
vec2(DAY2_ufog_density, DAY2_cfog_density),
vec2(DAY3_ufog_density, DAY3_cfog_density),
vec2(DAY4_ufog_density, DAY4_cfog_density),
vec2(DAY5_ufog_density, DAY5_cfog_density),
vec2(DAY6_ufog_density, DAY6_cfog_density),
vec2(DAY7_ufog_density, DAY7_cfog_density),
vec2(DAY8_ufog_density, DAY8_cfog_density),
vec2(DAY9_ufog_density, DAY9_cfog_density)
);
// if(hideGUI == 1){
// CurrentFrame_dailyWeatherParams0 = rainyWeatherParameters_A[worldDay%2];
// CurrentFrame_dailyWeatherParams1 = rainyWeatherParameters_B[worldDay%2];
// } else {
// CurrentFrame_dailyWeatherParams0 = vec4(0.5,0.0,0.0,0.0);
// CurrentFrame_dailyWeatherParams1 = vec4(0.1,0.5,0.0,0.0);
// }
#if defined Daily_Weather
dailyWeatherParams0 = vec4(sqrt(texelFetch2D(colortex4,ivec2(1,1),0).rgb/ 1500.0), 0.0);
dailyWeatherParams1 = vec4(texelFetch2D(colortex4,ivec2(2,1),0).rgb / 1500.0, 0.0);
dailyWeatherParams0.a = texelFetch2D(colortex4,ivec2(3,1),0).x/1500.0;
dailyWeatherParams1.a = texelFetch2D(colortex4,ivec2(3,1),0).y/1500.0;
#endif
parameters.fog = weatherProfile_fogDensity[dayCounter];
#endif
//////////////////////////////
@ -307,8 +291,6 @@ void main() {
exposure = max(targetExposure, 0.0);
// exposure = mix(0.0, 1.0, min(targetExposure,1.0));
// exposure = 1;
float currCenterDepth = ld(texture2D(depthtex2, vec2(0.5)*RENDER_SCALE).r);
centerDepth = mix(sqrt(texelFetch2D(colortex4,ivec2(14,37),0).g/65000.0), currCenterDepth, clamp(DoF_Adaptation_Speed*exp(-0.016/frameTime+1.0)/(6.0+currCenterDepth*far),0.0,1.0));

View File

@ -8,6 +8,7 @@ uniform sampler2D depthtex0;
uniform sampler2D depthtex1;
uniform sampler2D depthtex2;
uniform sampler2D noisetex;
uniform sampler2D shadowcolor1;
varying vec2 texcoord;
uniform vec2 texelSize;
@ -19,6 +20,12 @@ uniform float aspectRatio;
uniform int hideGUI;
uniform vec3 previousCameraPosition;
// uniform vec3 cameraPosition;
uniform mat4 gbufferPreviousModelView;
// uniform mat4 gbufferModelViewInverse;
// uniform mat4 gbufferModelView;
#include "/lib/color_transforms.glsl"
#include "/lib/color_dither.glsl"
#include "/lib/res_params.glsl"
@ -37,6 +44,17 @@ float blueNoise(){
return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887 * frameCounter);
}
float convertHandDepth_2(in float depth, bool hand) {
if(!hand) return depth;
float ndcDepth = depth * 2.0 - 1.0;
ndcDepth /= MC_HAND_DEPTH;
return ndcDepth * 0.5 + 0.5;
}
#include "/lib/util.glsl"
#include "/lib/projections.glsl"
#include "/lib/gameplay_effects.glsl"
void doCameraGridLines(inout vec3 color, vec2 UV){
@ -56,21 +74,6 @@ void doCameraGridLines(inout vec3 color, vec2 UV){
color = mix(color, vec3(1.0), gridLines);
}
uniform vec3 previousCameraPosition;
// uniform vec3 cameraPosition;
uniform mat4 gbufferPreviousModelView;
// uniform mat4 gbufferModelViewInverse;
// uniform mat4 gbufferModelView;
#include "/lib/util.glsl"
#include "/lib/projections.glsl"
vec3 tonemap(vec3 col){
return col/(1+luma(col));
}
vec3 invTonemap(vec3 col){
return col/(1-luma(col));
}
vec3 doMotionBlur(vec2 texcoord, float depth, float noise, bool hand){
float samples = 4.0;
@ -103,16 +106,6 @@ vec3 doMotionBlur(vec2 texcoord, float depth, float noise, bool hand){
return color / samples;
}
float convertHandDepth_2(in float depth, bool hand) {
if(!hand) return depth;
float ndcDepth = depth * 2.0 - 1.0;
ndcDepth /= MC_HAND_DEPTH;
return ndcDepth * 0.5 + 0.5;
}
uniform sampler2D shadowcolor1;
float doVignette( in vec2 texcoord, in float noise){
float vignette = 1.0-clamp(1.0-length(texcoord-0.5),0.0,1.0);
@ -142,15 +135,15 @@ void main() {
vec3 COLOR = texture2D(colortex7,texcoord).rgb;
#endif
#ifdef VIGNETTE
COLOR *= doVignette(texcoord, noise);
#endif
#if defined LOW_HEALTH_EFFECT || defined DAMAGE_TAKEN_EFFECT || defined WATER_ON_CAMERA_EFFECT
// for making the fun, more fun
applyGameplayEffects(COLOR, texcoord, noise);
#endif
#ifdef VIGNETTE
COLOR *= doVignette(texcoord, noise);
#endif
#ifdef CAMERA_GRIDLINES
doCameraGridLines(COLOR, texcoord);
#endif

View File

@ -89,16 +89,8 @@ float linearizeDepthFast(const in float depth, const in float near, const in flo
#endif
flat varying vec3 refractedSunVec;
#ifdef Daily_Weather
flat varying vec4 dailyWeatherParams0;
flat varying vec4 dailyWeatherParams1;
#else
vec4 dailyWeatherParams0 = vec4(CloudLayer0_coverage, CloudLayer1_coverage, CloudLayer2_coverage, 0.0);
vec4 dailyWeatherParams1 = vec4(CloudLayer0_density, CloudLayer1_density, CloudLayer2_density, 0.0);
#endif
#include "/lib/scene_controller.glsl"
#include "/lib/diffuse_lighting.glsl"
#define TIMEOFDAYFOG

View File

@ -6,11 +6,7 @@ flat varying vec4 lightCol;
flat varying vec3 averageSkyCol;
flat varying vec3 averageSkyCol_Clouds;
#ifdef Daily_Weather
flat varying vec4 dailyWeatherParams0;
flat varying vec4 dailyWeatherParams1;
#endif
#include "/lib/scene_controller.glsl"
flat varying vec3 WsunVec;
flat varying vec3 refractedSunVec;
@ -40,6 +36,7 @@ uniform float frameTimeCounter;
#include "/lib/Shadow_Params.glsl"
#include "/lib/sky_gradient.glsl"
void main() {
gl_Position = ftransform();
@ -56,15 +53,8 @@ void main() {
lightCol.rgb = texelFetch2D(colortex4,ivec2(6,37),0).rgb;
averageSkyCol = texelFetch2D(colortex4,ivec2(1,37),0).rgb;
averageSkyCol_Clouds = texelFetch2D(colortex4,ivec2(0,37),0).rgb;
#if defined Daily_Weather
dailyWeatherParams0 = vec4(texelFetch2D(colortex4,ivec2(1,1),0).rgb / 1500.0, 0.0);
dailyWeatherParams1 = vec4(texelFetch2D(colortex4,ivec2(2,1),0).rgb / 1500.0, 0.0);
dailyWeatherParams0.a = texelFetch2D(colortex4,ivec2(3,1),0).x/1500.0;
dailyWeatherParams1.a = texelFetch2D(colortex4,ivec2(3,1),0).y/1500.0;
#endif
readSceneControllerParameters(colortex4, parameters.smallCumulus, parameters.largeCumulus, parameters.altostratus, parameters.fog);
#endif
#ifdef NETHER_SHADER