mirror of
https://github.com/X0nk/Bliss-Shader.git
synced 2025-01-03 16:13:30 +08:00
FIX cloud flicker issue. FIX red hurt effect missing for translucent entities. FIX line on water edges. FIX RTAO/SSGI being super dark. IMPROVE cloud lighting and shapes. ADD toggle to use quarter res depth with rtao/ssgi.UPDATE zh_ch.lang file
This commit is contained in:
parent
201ee55b9b
commit
e0f61f0128
@ -100,7 +100,6 @@ uniform vec3 cameraPosition;
|
||||
void main() {
|
||||
|
||||
#ifdef DH_OVERDRAW_PREVENTION
|
||||
// overdraw prevention
|
||||
if(clamp(1.0-length(pos.xyz)/max(far - 32.0 * sqrt(interleaved_gradientNoise_temporal()),0.0),0.0,1.0) > 0.0 ){
|
||||
discard;
|
||||
return;
|
||||
|
@ -20,9 +20,37 @@ const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.),
|
||||
vec2(3,7.)/8.,
|
||||
vec2(7.,-7.)/8.);
|
||||
|
||||
|
||||
/*
|
||||
uniform mat4 gbufferModelViewInverse;
|
||||
uniform mat4 gbufferModelView;
|
||||
uniform float far;
|
||||
uniform mat4 dhProjection;
|
||||
uniform vec3 cameraPosition;
|
||||
|
||||
#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(dhProjection, viewSpacePosition),-viewSpacePosition.z);
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
void main() {
|
||||
gl_Position = ftransform();
|
||||
|
||||
/*
|
||||
vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz;
|
||||
vec3 worldpos = mat3(gbufferModelViewInverse) * position + gbufferModelViewInverse[3].xyz;
|
||||
|
||||
float cellSize = 32*2;
|
||||
vec3 modulusWorldPos = vec3(worldpos.x,worldpos.y,worldpos.z) + fract(cameraPosition/cellSize)*cellSize - cellSize*0.5;
|
||||
|
||||
worldpos.y -= (clamp(1.0-length(modulusWorldPos)/max(far-32,0.0),0.0,1.0)) * 50.0;
|
||||
position = mat3(gbufferModelView) * worldpos + gbufferModelView[3].xyz;
|
||||
gl_Position = toClipSpace3(position);
|
||||
*/
|
||||
|
||||
#ifdef TAA_UPSCALING
|
||||
gl_Position.xy = gl_Position.xy * RENDER_SCALE + RENDER_SCALE * gl_Position.w - gl_Position.w;
|
||||
#endif
|
||||
|
@ -261,12 +261,13 @@ vec4 texture2D_POMSwitch(
|
||||
sampler2D sampler,
|
||||
vec2 lightmapCoord,
|
||||
vec4 dcdxdcdy,
|
||||
bool ifPOM
|
||||
bool ifPOM,
|
||||
float LOD
|
||||
){
|
||||
if(ifPOM){
|
||||
return texture2DGradARB(sampler, lightmapCoord, dcdxdcdy.xy, dcdxdcdy.zw);
|
||||
}else{
|
||||
return texture2D(sampler, lightmapCoord, bias());
|
||||
return texture2D(sampler, lightmapCoord, LOD);
|
||||
}
|
||||
}
|
||||
|
||||
@ -404,8 +405,8 @@ void main() {
|
||||
//////////////////////////////// ////////////////////////////////
|
||||
//////////////////////////////// ALBEDO ////////////////////////////////
|
||||
//////////////////////////////// ////////////////////////////////
|
||||
|
||||
vec4 Albedo = texture2D_POMSwitch(texture, adjustedTexCoord.xy, vec4(dcdx,dcdy), ifPOM) * color;
|
||||
float textureLOD = bias();
|
||||
vec4 Albedo = texture2D_POMSwitch(texture, adjustedTexCoord.xy, vec4(dcdx,dcdy), ifPOM, textureLOD) * color;
|
||||
|
||||
#if defined HAND
|
||||
if (Albedo.a < 0.1) discard;
|
||||
@ -467,7 +468,7 @@ void main() {
|
||||
//////////////////////////////// ////////////////////////////////
|
||||
|
||||
#if defined WORLD && defined MC_NORMAL_MAP
|
||||
vec4 NormalTex = texture2D_POMSwitch(normals, adjustedTexCoord.xy, vec4(dcdx,dcdy), ifPOM).xyzw;
|
||||
vec4 NormalTex = texture2D_POMSwitch(normals, adjustedTexCoord.xy, vec4(dcdx,dcdy), ifPOM,textureLOD).xyzw;
|
||||
|
||||
#ifdef MATERIAL_AO
|
||||
Albedo.rgb *= NormalTex.b*0.5+0.5;
|
||||
@ -495,7 +496,7 @@ void main() {
|
||||
//////////////////////////////// ////////////////////////////////
|
||||
|
||||
#ifdef WORLD
|
||||
vec4 SpecularTex = texture2D_POMSwitch(specular, adjustedTexCoord.xy, vec4(dcdx,dcdy), ifPOM);
|
||||
vec4 SpecularTex = texture2D_POMSwitch(specular, adjustedTexCoord.xy, vec4(dcdx,dcdy), ifPOM,textureLOD);
|
||||
|
||||
SpecularTex.r = max(SpecularTex.r, Puddle_shape);
|
||||
SpecularTex.g = max(SpecularTex.g, Puddle_shape*0.02);
|
||||
@ -546,8 +547,7 @@ void main() {
|
||||
|
||||
// hit glow effect...
|
||||
#ifdef ENTITIES
|
||||
Albedo.rgb = mix(Albedo.rgb, entityColor.rgb, entityColor.a);
|
||||
gl_FragData[2].a = mix(gl_FragData[2].a, 0.25, clamp(entityColor.a*5,0,1));
|
||||
Albedo.rgb = mix(Albedo.rgb, entityColor.rgb, clamp(entityColor.a*1.5,0,1));
|
||||
#endif
|
||||
|
||||
//////////////////////////////// ////////////////////////////////
|
||||
|
@ -305,6 +305,7 @@ uniform float dhFarPlane;
|
||||
//////////////////////////////VOID MAIN//////////////////////////////
|
||||
//////////////////////////////VOID MAIN//////////////////////////////
|
||||
|
||||
uniform vec4 entityColor;
|
||||
/* RENDERTARGETS:2,7,11,14 */
|
||||
void main() {
|
||||
if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 ) {
|
||||
@ -522,6 +523,10 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
|
||||
#endif
|
||||
Indirect_lighting = DoAmbientLightColor(AmbientLightColor, MinimumLightColor, vec3(TORCH_R,TORCH_G,TORCH_B), lightmap.xy);
|
||||
|
||||
#ifdef ENTITIES
|
||||
Albedo.rgb = mix(Albedo.rgb, entityColor.rgb, clamp(entityColor.a*1.5,0,1));
|
||||
#endif
|
||||
|
||||
vec3 FinalColor = (Indirect_lighting + Direct_lighting) * Albedo;
|
||||
|
||||
#ifdef Glass_Tint
|
||||
|
@ -108,6 +108,7 @@ uniform ivec2 eyeBrightnessSmooth;
|
||||
|
||||
uniform vec3 sunVec;
|
||||
flat varying vec3 WsunVec;
|
||||
// flat varying vec3 unsigned_WsunVec;
|
||||
|
||||
#define diagonal3(m) vec3((m)[0].x, (m)[1].y, m[2].z)
|
||||
#define projMAD(m, v) (diagonal3(m) * (v) + (m)[3].xyz)
|
||||
@ -157,6 +158,7 @@ float DH_inv_ld (float lindepth){
|
||||
|
||||
float linearizeDepthFast(const in float depth, const in float near, const in float far) {
|
||||
return (near * far) / (depth * (near - far) + far);
|
||||
// return (2.0 * near) / (far + near - depth * (far - near));
|
||||
}
|
||||
float invertlinearDepthFast(const in float depth, const in float near, const in float far) {
|
||||
return ((2.0*near/depth)-far-near)/(far-near);
|
||||
@ -805,7 +807,8 @@ void main() {
|
||||
|
||||
////// --------------- MASKS/BOOLEANS --------------- //////
|
||||
|
||||
bool iswater = texture2D(colortex7,texcoord).a > 0.99;
|
||||
float translucent_alpha = texture2D(colortex7,texcoord).a;
|
||||
bool iswater = translucent_alpha > 0.99;
|
||||
bool lightningBolt = abs(dataUnpacked1.w-0.5) <0.01;
|
||||
bool isLeaf = abs(dataUnpacked1.w-0.55) <0.01;
|
||||
bool entities = abs(dataUnpacked1.w-0.45) < 0.01;
|
||||
@ -1126,7 +1129,7 @@ void main() {
|
||||
float SkylightDir = ambientcoefs.y*1.5;
|
||||
if(isGrass) SkylightDir = 1.25;
|
||||
|
||||
float skylight = max(pow(viewToWorld(FlatNormals).y*0.5+0.5,0.1) + SkylightDir, 0.25 + (1.0-lightmap.y) * 0.75) ;
|
||||
float skylight = max(pow(viewToWorld(FlatNormals).y*0.5+0.5,0.1) + SkylightDir, 0.2 + (1.0-lightmap.y)*0.8) ;
|
||||
|
||||
#if indirect_effect == 1
|
||||
skylight = min(skylight, (SSAO_SSS.x*SSAO_SSS.x*SSAO_SSS.x) * 2.5);
|
||||
@ -1177,14 +1180,13 @@ void main() {
|
||||
#if indirect_effect == 0
|
||||
AO = vec3( exp( (vanilla_AO*vanilla_AO) * -5) ) ;
|
||||
Indirect_lighting *= AO;
|
||||
// Direct_lighting *= AO;
|
||||
#endif
|
||||
|
||||
#if indirect_effect == 1
|
||||
AO = vec3( exp( (vanilla_AO*vanilla_AO) * -3) );
|
||||
|
||||
AO *= SSAO_SSS.x*SSAO_SSS.x*SSAO_SSS.x;//*SSAO_SSS.x*SSAO_SSS.x*SSAO_SSS.x;
|
||||
// AO *= exp((1-SSAO_SSS.x) * -10);
|
||||
AO *= SSAO_SSS.x*SSAO_SSS.x*SSAO_SSS.x;
|
||||
// AO *= exp((1-SSAO_SSS.x) * -5);
|
||||
|
||||
SkySSS = SSAO_SSS.y;
|
||||
|
||||
@ -1193,7 +1195,7 @@ void main() {
|
||||
|
||||
// GTAO
|
||||
#if indirect_effect == 2
|
||||
AO = vec3( exp( (vanilla_AO*vanilla_AO) * -3) );
|
||||
Indirect_lighting = AmbientLightColor/2.5;
|
||||
|
||||
vec2 r2 = fract(R2_samples((frameCounter%40000) + frameCounter*2) + bnoise);
|
||||
if (!hand) AO = ambient_occlusion(vec3(texcoord/RENDER_SCALE-TAA_Offset*texelSize*0.5,z), viewPos, worldToView(slopednormal), r2) * vec3(1.0);
|
||||
@ -1203,8 +1205,8 @@ void main() {
|
||||
|
||||
// RTAO and/or SSGI
|
||||
#if indirect_effect == 3 || indirect_effect == 4
|
||||
// Indirect_lighting = AmbientLightColor;
|
||||
if (!hand) ApplySSRT(Indirect_lighting, viewPos, normal, vec3(bnoise, noise_2), lightmap.xy, AmbientLightColor, vec3(TORCH_R,TORCH_G,TORCH_B), isGrass);
|
||||
Indirect_lighting = AmbientLightColor;
|
||||
if (!hand) ApplySSRT(Indirect_lighting, viewPos, normal, vec3(bnoise, noise_2), lightmap.xy, AmbientLightColor*2.5, vec3(TORCH_R,TORCH_G,TORCH_B), isGrass);
|
||||
#endif
|
||||
|
||||
#if defined END_SHADER
|
||||
@ -1259,14 +1261,15 @@ void main() {
|
||||
|
||||
}
|
||||
|
||||
#ifdef DISTANT_HORIZONS
|
||||
vec4 vlBehingTranslucents = BilateralUpscale_DH(colortex13, colortex12, gl_FragCoord.xy, sqrt(texture2D(colortex12,texcoord).a/65000.0));
|
||||
#else
|
||||
vec4 vlBehingTranslucents = BilateralUpscale(colortex13, depthtex1, gl_FragCoord.xy, ld(z));
|
||||
#endif
|
||||
|
||||
gl_FragData[0].rgb = gl_FragData[0].rgb * vlBehingTranslucents.a + vlBehingTranslucents.rgb;
|
||||
if(translucent_alpha > 0.0 ){
|
||||
#ifdef DISTANT_HORIZONS
|
||||
vec4 vlBehingTranslucents = BilateralUpscale_DH(colortex13, colortex12, gl_FragCoord.xy, sqrt(texture2D(colortex12,texcoord).a/65000.0));
|
||||
#else
|
||||
vec4 vlBehingTranslucents = BilateralUpscale(colortex13, depthtex1, gl_FragCoord.xy, ld(z));
|
||||
#endif
|
||||
|
||||
gl_FragData[0].rgb = gl_FragData[0].rgb * vlBehingTranslucents.a + vlBehingTranslucents.rgb;
|
||||
}
|
||||
|
||||
|
||||
//////// DEBUG VIEW STUFF
|
||||
|
@ -6,6 +6,7 @@
|
||||
#endif
|
||||
|
||||
flat varying vec3 WsunVec;
|
||||
// flat varying vec3 unsigned_WsunVec;
|
||||
flat varying vec3 averageSkyCol_Clouds;
|
||||
flat varying vec4 lightCol;
|
||||
|
||||
@ -52,6 +53,7 @@ void main() {
|
||||
averageSkyCol_Clouds = texelFetch2D(colortex4,ivec2(0,37),0).rgb;
|
||||
|
||||
WsunVec = lightCol.a*normalize(mat3(gbufferModelViewInverse) * sunPosition);
|
||||
// unsigned_WsunVec = normalize(mat3(gbufferModelViewInverse) * sunPosition);
|
||||
|
||||
|
||||
#ifdef TAA
|
||||
|
@ -16,6 +16,7 @@ flat varying vec3 lightSourceColor;
|
||||
flat varying vec3 sunColor;
|
||||
flat varying vec3 moonColor;
|
||||
// flat varying vec3 zenithColor;
|
||||
// flat varying vec3 rayleighAborbance;
|
||||
|
||||
// flat varying vec3 WsunVec;
|
||||
|
||||
@ -231,9 +232,10 @@ if (gl_FragCoord.x > pixelPos6.x && gl_FragCoord.x < pixelPos6.x + 1 && gl_FragC
|
||||
|
||||
if (gl_FragCoord.x > 8. && gl_FragCoord.x < 9. && gl_FragCoord.y > 19.+18. && gl_FragCoord.y < 19.+18.+1 )
|
||||
gl_FragData[0] = vec4(sunColor,1.0);
|
||||
|
||||
if (gl_FragCoord.x > 13. && gl_FragCoord.x < 14. && gl_FragCoord.y > 19.+18. && gl_FragCoord.y < 19.+18.+1 )
|
||||
if (gl_FragCoord.x > 9. && gl_FragCoord.x < 10. && gl_FragCoord.y > 19.+18. && gl_FragCoord.y < 19.+18.+1 )
|
||||
gl_FragData[0] = vec4(moonColor,1.0);
|
||||
// if (gl_FragCoord.x > 16. && gl_FragCoord.x < 17. && gl_FragCoord.y > 19.+18. && gl_FragCoord.y < 19.+18.+1 )
|
||||
// gl_FragData[0] = vec4(rayleighAborbance,1.0);
|
||||
#endif
|
||||
|
||||
|
||||
@ -273,7 +275,7 @@ if (gl_FragCoord.x > 18.+257. && gl_FragCoord.y > 1. && gl_FragCoord.x < 18+257+
|
||||
vec2 p = clamp(floor(gl_FragCoord.xy-vec2(18.+257,1.))/256.+tempOffsets/256.,0.0,1.0);
|
||||
vec3 viewVector = cartToSphere(p);
|
||||
|
||||
WsunVec = ( float(sunElevation > 1e-5)*2-1. )*normalize(mat3(gbufferModelViewInverse) * sunPosition);
|
||||
WsunVec = normalize(mat3(gbufferModelViewInverse) * sunPosition) * ( float(sunElevation > 1e-5)*2.0-1.0 );
|
||||
|
||||
vec3 sky = texelFetch2D(colortex4,ivec2(gl_FragCoord.xy)-ivec2(257,0),0).rgb/150.0;
|
||||
|
||||
@ -287,7 +289,7 @@ if (gl_FragCoord.x > 18.+257. && gl_FragCoord.y > 1. && gl_FragCoord.x < 18+257+
|
||||
sky = sky*clouds.a + clouds.rgb / 5.0;
|
||||
|
||||
sky = mix(dot(sky,vec3(0.333)) * vec3(0.5), sky, pow(clamp(viewVector.y+1.0,0.0,1.0),5));
|
||||
vec4 VL_Fog = GetVolumetricFog(mat3(gbufferModelView)*viewVector*1024., vec2(fract(frameCounter/1.6180339887),1-fract(frameCounter/1.6180339887)), lightSourceColor*1.75, skyGroundCol/30.0);
|
||||
vec4 VL_Fog = GetVolumetricFog(mat3(gbufferModelView)*viewVector*1024., vec2(fract(frameCounter/1.6180339887),1-fract(frameCounter/1.6180339887)), suncol*1.75, skyGroundCol/30.0);
|
||||
|
||||
sky = sky * VL_Fog.a + VL_Fog.rgb / 5.0;
|
||||
|
||||
|
@ -156,11 +156,10 @@ void main() {
|
||||
|
||||
vec3 skyAbsorb = vec3(0.0);
|
||||
sunColor = calculateAtmosphere(vec3(0.0), sunVec, vec3(0.0,1.0,0.0), sunVec, -sunVec, planetSphere, skyAbsorb, 25,0.0);
|
||||
sunColor = sunColorBase/4000. * skyAbsorb;
|
||||
|
||||
sunColor = sunColorBase/4000.0 * skyAbsorb;
|
||||
moonColor = moonColorBase/4000.0;
|
||||
|
||||
lightSourceColor = sunVis >= 1e-5 ? sunColor * sunVis : moonColor * moonVis;
|
||||
lightSourceColor = (sunVis >= 1e-5 ? sunColor * sunVis : moonColor * moonVis) ;
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -9,7 +9,7 @@
|
||||
#endif
|
||||
|
||||
flat varying vec3 sunColor;
|
||||
flat varying vec3 moonColor;
|
||||
// flat varying vec3 moonColor;
|
||||
flat varying vec3 averageSkyCol;
|
||||
|
||||
flat varying float tempOffsets;
|
||||
@ -73,9 +73,9 @@ const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.),
|
||||
vec2(7.,-7.)/8.);
|
||||
float blueNoise(){
|
||||
#ifdef TAA
|
||||
return fract(texelFetch2D(noisetex, ivec2(1.0-gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887 * frameCounter);
|
||||
return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a + 1.0/1.6180339887 * frameCounter);
|
||||
#else
|
||||
return fract(texelFetch2D(noisetex, ivec2(1.0-gl_FragCoord.xy)%512, 0).a);
|
||||
return fract(texelFetch2D(noisetex, ivec2(gl_FragCoord.xy)%512, 0).a);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -4,7 +4,7 @@ flat varying vec3 dailyWeatherParams0;
|
||||
flat varying vec3 dailyWeatherParams1;
|
||||
flat varying vec3 averageSkyCol;
|
||||
flat varying vec3 sunColor;
|
||||
flat varying vec3 moonColor;
|
||||
// flat varying vec3 moonColor;
|
||||
|
||||
|
||||
flat varying float tempOffsets;
|
||||
@ -32,9 +32,13 @@ void main() {
|
||||
|
||||
averageSkyCol = texelFetch2D(colortex4,ivec2(1,37),0).rgb;
|
||||
sunColor = texelFetch2D(colortex4,ivec2(6,37),0).rgb;
|
||||
moonColor = texelFetch2D(colortex4,ivec2(13,37),0).rgb;
|
||||
// moonColor = texelFetch2D(colortex4,ivec2(13,37),0).rgb;
|
||||
|
||||
WsunVec = ( float(sunElevation > 1e-5)*2-1. )*normalize(mat3(gbufferModelViewInverse) * sunPosition);
|
||||
// sunColor = texelFetch2D(colortex4,ivec2(8,37),0).rgb;
|
||||
// moonColor = texelFetch2D(colortex4,ivec2(9,37),0).rgb;
|
||||
|
||||
|
||||
WsunVec = normalize(mat3(gbufferModelViewInverse) * sunPosition) * (float(sunElevation > 1e-5)*2.0-1.0);
|
||||
// WsunVec = normalize(LightDir);
|
||||
|
||||
tempOffsets = HaltonSeq2(frameCounter%10000);
|
||||
|
@ -3,7 +3,7 @@ option.BLISS_SHADERS=Bliss
|
||||
value.BLISS_SHADERS.1=作者: Xonk
|
||||
value.BLISS_SHADERS.2=版本: GIT-HEAD
|
||||
|
||||
# if you're here to translate, this is a joke, these don't do what they say. # Translator: I don't care
|
||||
# if you're here to translate, this is a joke, these don't do what they say
|
||||
profile.QUALITY=质量
|
||||
profile.PERFORMANCE=性能
|
||||
|
||||
@ -62,6 +62,8 @@ screen.Direct_Light = 直接照明
|
||||
option.shadowDistanceRenderMul = 最大阴影边界
|
||||
value.shadowDistanceRenderMul.-1.0 = 无优化
|
||||
value.shadowDistanceRenderMul.1.0 = 优化
|
||||
option.entityShadowDistanceMul = 实体阴影距离
|
||||
|
||||
screen.Filtering = 阴影过滤设置
|
||||
option.SHADOW_FILTER_SAMPLE_COUNT = 阴影过滤采样数
|
||||
option.Min_Shadow_Filter_Radius = 最小阴影过滤半径
|
||||
@ -152,9 +154,9 @@ screen.Clouds = 云层设置
|
||||
option.VOLUMETRIC_CLOUDS = 体积云
|
||||
option.CLOUDS_QUALITY = 云层分辨率倍数
|
||||
option.CLOUDS_SHADOWS = 云影
|
||||
option.Daily_Weather = 周期循环的天气
|
||||
option.Cloud_Speed = 云层速度
|
||||
option.Rain_coverage = 雨云覆盖率
|
||||
option.Daily_Weather = 周期循环的天气
|
||||
|
||||
option.CloudLayer0 = 小积云
|
||||
option.CloudLayer0_coverage = 覆盖率
|
||||
@ -171,6 +173,107 @@ screen.Clouds = 云层设置
|
||||
option.CloudLayer2_density = 密度
|
||||
option.CloudLayer2_height = 高度
|
||||
|
||||
screen.DAILY_WEATHER = 周期循环的天气设置
|
||||
screen.DAY0_WEATHER = 第 0 天的天气
|
||||
option.DAY0_l0_coverage = 小积云覆盖率
|
||||
option.DAY0_l0_density = 小积云密度
|
||||
option.DAY0_l1_coverage = 大积云覆盖率
|
||||
option.DAY0_l1_density = 大积云密度
|
||||
option.DAY0_l2_coverage = 高层云覆盖率
|
||||
option.DAY0_l2_density = 高层云密度
|
||||
option.DAY0_ufog_density = 均匀雾气密度
|
||||
option.DAY0_cfog_density = 云雾密度
|
||||
|
||||
screen.DAY1_WEATHER = 第 1 天的天气
|
||||
option.DAY1_l0_coverage = 小积云覆盖率
|
||||
option.DAY1_l0_density = 小积云密度
|
||||
option.DAY1_l1_coverage = 大积云覆盖率
|
||||
option.DAY1_l1_density = 大积云密度
|
||||
option.DAY1_l2_coverage = 高层云覆盖率
|
||||
option.DAY1_l2_density = 高层云密度
|
||||
option.DAY1_ufog_density = 均匀雾气密度
|
||||
option.DAY1_cfog_density = 云雾密度
|
||||
|
||||
screen.DAY2_WEATHER = 第 2 天的天气
|
||||
option.DAY2_l0_coverage = 小积云覆盖率
|
||||
option.DAY2_l0_density = 小积云密度
|
||||
option.DAY2_l1_coverage = 大积云覆盖率
|
||||
option.DAY2_l1_density = 大积云密度
|
||||
option.DAY2_l2_coverage = 高层云覆盖率
|
||||
option.DAY2_l2_density = 高层云密度
|
||||
option.DAY2_ufog_density = 均匀雾气密度
|
||||
option.DAY2_cfog_density = 云雾密度
|
||||
|
||||
screen.DAY3_WEATHER = 第 3 天的天气
|
||||
option.DAY3_l0_coverage = 小积云覆盖率
|
||||
option.DAY3_l0_density = 小积云密度
|
||||
option.DAY3_l1_coverage = 大积云覆盖率
|
||||
option.DAY3_l1_density = 大积云密度
|
||||
option.DAY3_l2_coverage = 高层云覆盖率
|
||||
option.DAY3_l2_density = 高层云密度
|
||||
option.DAY3_ufog_density = 均匀雾气密度
|
||||
option.DAY3_cfog_density = 云雾密度
|
||||
|
||||
screen.DAY4_WEATHER = 第 4 天的天气
|
||||
option.DAY4_l0_coverage = 小积云覆盖率
|
||||
option.DAY4_l0_density = 小积云密度
|
||||
option.DAY4_l1_coverage = 大积云覆盖率
|
||||
option.DAY4_l1_density = 大积云密度
|
||||
option.DAY4_l2_coverage = 高层云覆盖率
|
||||
option.DAY4_l2_density = 高层云密度
|
||||
option.DAY4_ufog_density = 均匀雾气密度
|
||||
option.DAY4_cfog_density = 云雾密度
|
||||
|
||||
screen.DAY5_WEATHER = 第 5 天的天气
|
||||
option.DAY5_l0_coverage = 小积云覆盖率
|
||||
option.DAY5_l0_density = 小积云密度
|
||||
option.DAY5_l1_coverage = 大积云覆盖率
|
||||
option.DAY5_l1_density = 大积云密度
|
||||
option.DAY5_l2_coverage = 高层云覆盖率
|
||||
option.DAY5_l2_density = 高层云密度
|
||||
option.DAY5_ufog_density = 均匀雾气密度
|
||||
option.DAY5_cfog_density = 云雾密度
|
||||
|
||||
screen.DAY6_WEATHER = 第 6 天的天气
|
||||
option.DAY6_l0_coverage = 小积云覆盖率
|
||||
option.DAY6_l0_density = 小积云密度
|
||||
option.DAY6_l1_coverage = 大积云覆盖率
|
||||
option.DAY6_l1_density = 大积云密度
|
||||
option.DAY6_l2_coverage = 高层云覆盖率
|
||||
option.DAY6_l2_density = 高层云密度
|
||||
option.DAY6_ufog_density = 均匀雾气密度
|
||||
option.DAY6_cfog_density = 云雾密度
|
||||
|
||||
screen.DAY7_WEATHER = 第 7 天的天气
|
||||
option.DAY7_l0_coverage = 小积云覆盖率
|
||||
option.DAY7_l0_density = 小积云密度
|
||||
option.DAY7_l1_coverage = 大积云覆盖率
|
||||
option.DAY7_l1_density = 大积云密度
|
||||
option.DAY7_l2_coverage = 高层云覆盖率
|
||||
option.DAY7_l2_density = 高层云密度
|
||||
option.DAY7_ufog_density = 均匀雾气密度
|
||||
option.DAY7_cfog_density = 云雾密度
|
||||
|
||||
screen.DAY8_WEATHER = 第 8 天的天气
|
||||
option.DAY8_l0_coverage = 小积云覆盖率
|
||||
option.DAY8_l0_density = 小积云密度
|
||||
option.DAY8_l1_coverage = 大积云覆盖率
|
||||
option.DAY8_l1_density = 大积云密度
|
||||
option.DAY8_l2_coverage = 高层云覆盖率
|
||||
option.DAY8_l2_density = 高层云密度
|
||||
option.DAY8_ufog_density = 均匀雾气密度
|
||||
option.DAY8_cfog_density = 云雾密度
|
||||
|
||||
screen.DAY9_WEATHER = 第 9 天的天气
|
||||
option.DAY9_l0_coverage = 小积云覆盖率
|
||||
option.DAY9_l0_density = 小积云密度
|
||||
option.DAY9_l1_coverage = 大积云覆盖率
|
||||
option.DAY9_l1_density = 大积云密度
|
||||
option.DAY9_l2_coverage = 高层云覆盖率
|
||||
option.DAY9_l2_density = 高层云密度
|
||||
option.DAY9_ufog_density = 均匀雾气密度
|
||||
option.DAY9_cfog_density = 云雾密度
|
||||
|
||||
|
||||
screen.Climate = 气候
|
||||
option.Seasons = 四季颜色
|
||||
@ -494,7 +597,7 @@ screen.Post_Processing.comment = 配置所有后处理效果设置, 从抗锯齿
|
||||
screen.TAA_OPTIONS.comment = 配置和抗锯齿相关的设置.
|
||||
option.SCREENSHOT_MODE.comment = 开启帧数积累以获得少噪点高质量的图像. §b这啥?§r 将已发生的帧叠加到生成的下一帧上, 类似于长曝光图像.
|
||||
option.TAA.comment = 时间性抗锯齿 (TAA) 开关. 这可以去除大部分内容的锯齿状边缘, 软化图像, 并有助于去除许多效果产生的噪点. 但会导致拖影, 因为它使用过去的帧来获取世界额外信息. §a性能消耗水平:§r 低.
|
||||
option.BLEND_FACTOR.comment = 配置历史帧使用比重. 更高的数值意味着依赖更少的历史帧, 所以可能会看起来很闪烁和嘈杂. 较低的数值意味着以来更多的历史帧, 所以可能会看起来很多脏点和拖影.
|
||||
option.BLEND_FACTOR.comment = 配置历史帧使用比重. 更高的数值意味着依赖更少的历史帧, 所以可能会看起来很闪烁和多噪点. 较低的数值意味着以来更多的历史帧, 所以可能会看起来更少噪点但是更多拖影和显得有点脏.
|
||||
option.TAA_UPSCALING.comment = 时间性升分辨率. 升分辨率时, 可以从低分辨率的图像中保留大多数质量. 因此与常规升分辨率相比, 可以开启一个看起来很高的分辨率的同时也能有更好的性能.
|
||||
option.SCALE_FACTOR.comment = 配置以原有分辨率的多大一部分来开始升分辨率. 不推荐低于0.5, 只把它作为一个选项, 因为它很有趣. :P
|
||||
|
||||
@ -526,7 +629,18 @@ option.CloudLayer2_height.comment = 配置云层飘浮处的高度. §c不能
|
||||
|
||||
option.SKY_GROUND.comment = §b这啥?§r 天空的暗色下半部分, 若 Minecraft 有无限渲染距离, 则这是地面. §a性能消耗水平:§r 非常非常低. §c由于额外的函数计算, 禁用本选项会比启用消耗消耗更多性能.§r
|
||||
option.SNELLS_WINDOW.comment = §b这啥?§r 这是在水下看到的黑色反射圆圈. 这是对现实水下会发生的情况的模拟, 称为 "全内反射". §a性能消耗水平:§r 非常非常非常低.
|
||||
option.entityShadowDistanceMul.comment = §b这啥?§r 配置实体阴影的生效距离. 如果想保留实体阴影开启又想提高有巨量实体的区域的性能, 本选项会十分有用.
|
||||
|
||||
screen.DISTANT_HORIZONS_SETTINGS = §2Distant Horizons §f设置
|
||||
|
||||
option.DH_KNOWN_ISSUES =DH 支持已知问题
|
||||
value.DH_KNOWN_ISSUES.0 = §c 点击此处文本循环查看已知问题列表
|
||||
value.DH_KNOWN_ISSUES.1 = §a LOD 区域的 GTAO, RTAO, 和 SSGI 不生效 - 未能实现对 DH 的支持
|
||||
|
||||
option.DISTANT_HORIZONS_SHADOWMAP = §c(如果不知道本选项作用, 请不要开启)§r DH 阴影图支持
|
||||
option.DISTANT_HORIZONS_SHADOWMAP.comment = §c此选项会降低性能, 会使阴影看起来呈块状, 闪烁且会降低阴影细节§r. 将阴影距离设置为 32 区块 (或更多). 设置阴影分辨率为 4096 (或更大)
|
||||
option.TOGGLE_VL_FOG = 体积雾
|
||||
option.TOGGLE_VL_FOG.comment = 一个快速关闭所有雾气的开关.
|
||||
|
||||
#Additional Options / 附加选项
|
||||
#Direct Light
|
||||
@ -555,7 +669,7 @@ option.SNELLS_WINDOW.comment = §b这啥?§r 这是在水下看到的黑色反
|
||||
|
||||
#World
|
||||
option.Vanilla_like_water=原版水体样式
|
||||
|
||||
option.WATER_WAVE_SPEED=水体摇晃速度
|
||||
|
||||
#Ambient_light
|
||||
option.HANDHELD_LIGHT_RANGE=手持光源范围
|
||||
@ -641,6 +755,15 @@ option.CLOUD_SHADOW_STRENGTH=云影强度
|
||||
option.Lightning_G=闪电 - 绿色
|
||||
option.Lightning_B=闪电 - 蓝色
|
||||
|
||||
option.DEBUG_VIEW=调试视图
|
||||
value.DEBUG_VIEW.debug_OFF=关闭
|
||||
value.DEBUG_VIEW.debug_SHADOWMAP=阴影图
|
||||
value.DEBUG_VIEW.debug_NORMALS=法线
|
||||
value.DEBUG_VIEW.debug_SPECULAR=高光
|
||||
value.DEBUG_VIEW.debug_INDIRECT=间接照明
|
||||
value.DEBUG_VIEW.debug_DIRECT=直接照明
|
||||
value.DEBUG_VIEW.debug_VIEW_POSITION=View Position
|
||||
value.DEBUG_VIEW.debug_DH_WATER_BLENDING=DH 水体混合
|
||||
option.display_LUT=显示 LUT
|
||||
option.WhiteWorld=全白世界
|
||||
option.WhiteWorld.comment=用于调试的视图. 易于观察环境光遮蔽的效果. 易于观察模拟全局光照 (绿光) 的效果.
|
||||
@ -656,8 +779,16 @@ option.CLOUD_SHADOW_STRENGTH=云影强度
|
||||
option.BLOOMY_PARTICLES=泛光粒子
|
||||
option.ORIGINAL_CHOCAPIC_SKY=原始 Chocapic 天空
|
||||
option.BIOME_TINT_WATER=群系色调水体
|
||||
option.CLOUDS_INFRONT_OF_WORLD=云层在世界前渲染
|
||||
option.SELECT_BOX=选择框
|
||||
option.DENOISE_SSS_AND_SSAO=对 SSS和 SSAOO 降噪
|
||||
option.WATER_CAUSTICS_BRIGHTNESS=水体焦散线亮度
|
||||
option.HYPER_DETAILED_WAVES=超细节水波
|
||||
|
||||
|
||||
#Climate
|
||||
screen.Seasons=季节
|
||||
suffix.Season_Length=MC日
|
||||
|
||||
#DH settings
|
||||
option.DH_OVERDRAW_PREVENTION=防止过度绘制
|
@ -156,7 +156,7 @@ vec3 calculateAtmosphere(vec3 background, vec3 viewVector, vec3 upVector, vec3 s
|
||||
scatteringAmbient += sky_coefficientsScattering * stepAirmass.xy * stepScatteringVisible * low_sun;
|
||||
#endif
|
||||
|
||||
transmittance *= stepTransmittance ;
|
||||
transmittance *= stepTransmittance;
|
||||
}
|
||||
|
||||
vec3 scattering = scatteringSun * sunColorBase + scatteringAmbient * background + scatteringMoon*moonColorBase ;
|
||||
|
@ -151,7 +151,7 @@ vec3 Tonemap_Uchimura(vec3 x) {
|
||||
const float a = 1.0; // contrast 1.0
|
||||
const float m = 0.12; // linear section start 0.22
|
||||
const float l = 0.22; // linear section length 0.4
|
||||
const float c = 1.5; // black 1.33
|
||||
const float c = 1.0; // black 1.33
|
||||
const float b = 0.0; // pedestal 0.0
|
||||
return Tonemap_Uchimura_Modified(x, P, a, m, l, c, b);
|
||||
}
|
||||
@ -172,3 +172,12 @@ vec3 Tonemap_Full_Reinhard(vec3 C){
|
||||
|
||||
return (C * (1.0 + C / (whitepoint*whitepoint))) / (lighten + C);
|
||||
}
|
||||
|
||||
vec3 Full_Reinhard_Edit(vec3 C){
|
||||
|
||||
C = pow(C,vec3(1.2));
|
||||
float whitepoint = 10.0;
|
||||
float lighten = 0.333;
|
||||
|
||||
return (C * (1.0 + C / (whitepoint*whitepoint))) / (lighten + C);
|
||||
}
|
@ -222,7 +222,11 @@ vec3 rayTrace_GI(vec3 dir,vec3 position,float dither, float quality){
|
||||
|
||||
for(int i = 0; i < int(quality); i++){
|
||||
spos += stepv;
|
||||
float sp = sqrt(texelFetch2D(colortex4,ivec2(spos.xy/texelSize/4),0).w/65000.0);
|
||||
#ifdef UseQuarterResDepth
|
||||
float sp = sqrt(texelFetch2D(colortex4,ivec2(spos.xy/texelSize/4),0).w/65000.0);
|
||||
#else
|
||||
float sp = linZ(texelFetch2D(depthtex1,ivec2(spos.xy/ texelSize),0).r);
|
||||
#endif
|
||||
float currZ = linZ(spos.z);
|
||||
|
||||
if( sp < currZ) {
|
||||
@ -265,8 +269,11 @@ vec3 RT(vec3 dir, vec3 position, float noise, float stepsizes){
|
||||
for(int i = 0; i < iterations; i++){
|
||||
if (spos.x < 0.0 || spos.y < 0.0 || spos.z < 0.0 || spos.x > 1.0 || spos.y > 1.0 || spos.z > 1.0) return vec3(1.1);
|
||||
spos += stepv*noise;
|
||||
|
||||
float sp = sqrt(texelFetch2D(colortex4,ivec2(spos.xy/ texelSize/4),0).w/65000.0);
|
||||
#ifdef UseQuarterResDepth
|
||||
float sp = sqrt(texelFetch2D(colortex4,ivec2(spos.xy/ texelSize/4),0).w/65000.0);
|
||||
#else
|
||||
float sp = linZ(texelFetch2D(depthtex1,ivec2(spos.xy/ texelSize),0).r);
|
||||
#endif
|
||||
float currZ = linZ(spos.z);
|
||||
|
||||
if( sp < currZ) {
|
||||
@ -301,7 +308,7 @@ void ApplySSRT(
|
||||
|
||||
// rgb = torch color * lightmap. a = sky lightmap.
|
||||
vec4 Lighting = RT_AmbientLight(torchcolor, lightmaps);
|
||||
skylightcolor = (skylightcolor/15.0) * Lighting.a;
|
||||
skylightcolor = skylightcolor * Lighting.a;
|
||||
|
||||
for (int i = 0; i < nrays; i++){
|
||||
int seed = (frameCounter%40000)*nrays+i;
|
||||
@ -318,11 +325,11 @@ void ApplySSRT(
|
||||
#ifdef OVERWORLD_SHADER
|
||||
if(isGrass) rayDir.y = clamp(rayDir.y + 0.5,-1,1);
|
||||
|
||||
rayDir.y = mix(-1.0,rayDir.y, lightmaps.y*lightmaps.y);
|
||||
// rayDir.y = mix(-1.0, rayDir.y, lightmaps.y*lightmaps.y);
|
||||
|
||||
skycontribution = (skyCloudsFromTexLOD(rayDir, colortex4, 0).rgb / 10.0) * Lighting.a + Lighting.rgb;
|
||||
skycontribution = ((skyCloudsFromTexLOD(rayDir, colortex4, 0).rgb / 30.0) * 2.5) * Lighting.a + Lighting.rgb;
|
||||
#else
|
||||
skycontribution = (skyCloudsFromTexLOD2(rayDir, colortex4, 6).rgb / 10.0) * Lighting.a + Lighting.rgb;
|
||||
skycontribution = ((skyCloudsFromTexLOD2(rayDir, colortex4, 6).rgb / 30.0) * 2.5) * Lighting.a + Lighting.rgb;
|
||||
#endif
|
||||
#else
|
||||
|
||||
@ -330,7 +337,7 @@ void ApplySSRT(
|
||||
if(isGrass) rayDir.y = clamp(rayDir.y + 0.25,-1,1);
|
||||
#endif
|
||||
|
||||
skycontribution = skylightcolor * (max(rayDir.y,pow(1.0-lightmaps.y,2))*0.9+0.1) + Lighting.rgb;
|
||||
skycontribution = skylightcolor * (max(rayDir.y,pow(1.0-lightmaps.y,2))*0.95+0.05) + Lighting.rgb;
|
||||
|
||||
#if indirect_effect == 4
|
||||
skycontribution2 = skylightcolor + Lighting.rgb;
|
||||
|
@ -102,6 +102,7 @@
|
||||
|
||||
// #define SKY_CONTRIBUTION_IN_SSRT
|
||||
|
||||
#define UseQuarterResDepth
|
||||
// #define HQ_SSGI
|
||||
#define GI_Strength 1.0 // [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 RAY_COUNT 4 // [1 2 3 4 5 6 7 8 9 10 12 14 16 18 21 24 28 32 37 43 49 57 65 75 86 100]
|
||||
@ -360,17 +361,17 @@ uniform int moonPhase;
|
||||
#define CloudLayer0
|
||||
#define CloudLayer0_coverage 0.7 // [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]
|
||||
#define CloudLayer0_density 0.5 // [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.00]
|
||||
#define CloudLayer0_height 250 // [-300 -290 -280 -270 -260 -250 -240 -230 -220 -210 -200 -190 -180 -170 -160 -150 -140 -130 -120 -110 -100 -90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250 260 270 280 290 300 310 320 330 340 350 360 370 380 390 400 410 420 430 440 450 460 470 480 490 500 510 520 530 540 550 560 570 580 590 600 700 800 900 1000]
|
||||
#define CloudLayer0_height 250 // [-300 -290 -280 -270 -260 -250 -240 -230 -220 -210 -200 -190 -180 -170 -160 -150 -140 -130 -120 -110 -100 -90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250 260 270 280 290 300 310 320 330 340 350 360 370 380 390 400 410 420 430 440 450 460 470 480 490 500 510 520 530 540 550 560 570 580 590 600 700 800 900 1000 1250 1500 1750 2000 2250 2500 2750 3000 4000 5000]
|
||||
|
||||
#define CloudLayer1
|
||||
#define CloudLayer1_coverage 0.7 // [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]
|
||||
#define CloudLayer1_density 0.5 // [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.00]
|
||||
#define CloudLayer1_height 500 // [-300 -290 -280 -270 -260 -250 -240 -230 -220 -210 -200 -190 -180 -170 -160 -150 -140 -130 -120 -110 -100 -90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250 260 270 280 290 300 310 320 330 340 350 360 370 380 390 400 410 420 430 440 450 460 470 480 490 500 510 520 530 540 550 560 570 580 590 600 700 800 900 1000]
|
||||
#define CloudLayer1_height 500 // [-300 -290 -280 -270 -260 -250 -240 -230 -220 -210 -200 -190 -180 -170 -160 -150 -140 -130 -120 -110 -100 -90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250 260 270 280 290 300 310 320 330 340 350 360 370 380 390 400 410 420 430 440 450 460 470 480 490 500 510 520 530 540 550 560 570 580 590 600 700 800 900 1000 1250 1500 1750 2000 2250 2500 2750 3000 4000 5000]
|
||||
|
||||
#define CloudLayer2
|
||||
#define CloudLayer2_coverage 0.3 // [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]
|
||||
#define CloudLayer2_density 0.1 // [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.00]
|
||||
#define CloudLayer2_height 2000 // [-300 -290 -280 -270 -260 -250 -240 -230 -220 -210 -200 -190 -180 -170 -160 -150 -140 -130 -120 -110 -100 -90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250 260 270 280 290 300 310 320 330 340 350 360 370 380 390 400 410 420 430 440 450 460 470 480 490 500 510 520 530 540 550 560 570 580 590 600 700 800 900 1000]
|
||||
#define CloudLayer2_height 2000 // [-300 -290 -280 -270 -260 -250 -240 -230 -220 -210 -200 -190 -180 -170 -160 -150 -140 -130 -120 -110 -100 -90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250 260 270 280 290 300 310 320 330 340 350 360 370 380 390 400 410 420 430 440 450 460 470 480 490 500 510 520 530 540 550 560 570 580 590 600 700 800 900 1000 1250 1500 1750 2000 2250 2500 2750 3000 4000 5000]
|
||||
|
||||
#if (defined CloudLayer0 || defined CloudLayer1) && defined VOLUMETRIC_CLOUDS
|
||||
// #define RAYMARCH_CLOUDS_WITH_FOG
|
||||
@ -523,7 +524,7 @@ uniform int moonPhase;
|
||||
// ----- COLOR/POST PROCESSING RELATED SETTINGS ----- //
|
||||
////////////////////////////////////////////////////////
|
||||
|
||||
#define TONEMAP ToneMap_Hejl2015 // [ToneMap_Hejl2015 Tonemap_Xonk Tonemap_Uchimura HableTonemap Tonemap_Full_Reinhard reinhard Tonemap_Lottes ACESFilm]
|
||||
#define TONEMAP ToneMap_Hejl2015 // [ToneMap_Hejl2015 Tonemap_Xonk Tonemap_Uchimura HableTonemap Full_Reinhard_Edit Tonemap_Full_Reinhard reinhard Tonemap_Lottes ACESFilm]
|
||||
//#define USE_ACES_COLORSPACE_APPROXIMATION
|
||||
|
||||
#define CONTRAST_ADAPTATIVE_SHARPENING
|
||||
|
@ -112,13 +112,13 @@ float cloudCov(int layer, in vec3 pos, vec3 samplePos, float minHeight, float ma
|
||||
|
||||
float CloudSmall = 0.0;
|
||||
if(layer == 0){
|
||||
SampleCoords0 = (samplePos.xz + cloud_movement) / 5000;
|
||||
SampleCoords1 = (samplePos.xz - cloud_movement) / 500;
|
||||
SampleCoords0 = (samplePos.xz + cloud_movement) / 5000 ;
|
||||
SampleCoords1 = (samplePos.xz - cloud_movement) / 500 ;
|
||||
CloudSmall = texture2D(noisetex, SampleCoords1 ).r;
|
||||
}
|
||||
|
||||
if(layer == 1){
|
||||
SampleCoords0 = -( (samplePos.zx + cloud_movement*2) / 15000);
|
||||
SampleCoords0 = -( (samplePos.zx + cloud_movement*2) / 10000);
|
||||
SampleCoords1 = -( (samplePos.zx - cloud_movement*2) / 2500);
|
||||
CloudSmall = texture2D(noisetex, SampleCoords1 ).b;
|
||||
}
|
||||
@ -136,7 +136,7 @@ float cloudCov(int layer, in vec3 pos, vec3 samplePos, float minHeight, float ma
|
||||
}
|
||||
}
|
||||
|
||||
float CloudLarge = texture2D(noisetex, SampleCoords0 ).b;
|
||||
float CloudLarge = texture2D(noisetex, SampleCoords0).b;
|
||||
|
||||
if(layer == 0){
|
||||
coverage = abs(CloudLarge*2.0 - 1.2)*0.5 - (1.0-CloudSmall);
|
||||
@ -152,8 +152,7 @@ float cloudCov(int layer, in vec3 pos, vec3 samplePos, float minHeight, float ma
|
||||
|
||||
if(layer == 1){
|
||||
|
||||
coverage = (1.0-abs(CloudLarge-0.3)) * abs(CloudSmall-0.8);
|
||||
coverage *= coverage;
|
||||
coverage = abs(CloudLarge-0.8) - CloudSmall;
|
||||
|
||||
float layer1 = min(min(coverage + dailyWeatherParams0.y - 0.5,clamp(LAYER1_maxHEIGHT_FOG - pos.y,0,1)), 1.0 - clamp(LAYER1_minHEIGHT_FOG - pos.y,0,1));
|
||||
|
||||
@ -182,7 +181,7 @@ float cloudCov(int layer, in vec3 pos, vec3 samplePos, float minHeight, float ma
|
||||
|
||||
|
||||
#ifdef CloudLayer1
|
||||
float layer1_coverage = (1.0-abs(CloudLarge-0.3)) * abs(CloudSmall-0.8);
|
||||
float layer1_coverage = abs(CloudLarge-0.8) - CloudSmall;
|
||||
float layer1 = min(min(layer1_coverage + dailyWeatherParams0.y - 0.5,clamp(LAYER1_maxHEIGHT_FOG - pos.y,0,1)), 1.0 - clamp(LAYER1_minHEIGHT_FOG - pos.y,0,1));
|
||||
|
||||
Topshape = max(pos.y - (LAYER1_maxHEIGHT_FOG - 75), 0.0) / 200;
|
||||
@ -213,22 +212,15 @@ float cloudVol(int layer, in vec3 pos, in vec3 samplePos, in float cov, in int L
|
||||
|
||||
samplePos.xz -= cloud_movement/4;
|
||||
|
||||
// if(layer == 0 || layer == 1) samplePos.xz += pow( max(pos.y - (minHeight+20), 0.0) / 20.0,1.50);
|
||||
// if(layer == -1) samplePos.xz += pow( max(pos.y - (minHeight+20), 0.0) / 20.0,1.50) * upperPlane;
|
||||
samplePos.xz += pow( max(pos.y - (minHeight+20), 0.0) / 20.0,1.50) * upperPlane;
|
||||
|
||||
samplePos.xz += pow( max(pos.y - (minHeight+20), 0.0) / 20.0,1.50) * upperPlane;
|
||||
noise += (1.0-densityAtPos(samplePos * mix(100.0,200.0,upperPlane)) ) * sqrt(1.0-cov);
|
||||
|
||||
noise += (1.0-densityAtPos(samplePos * mix(100.0,200.0,upperPlane)) ) * mix(2.0,1.0,upperPlane);
|
||||
|
||||
if (LoD > 0) {
|
||||
float smallnoise = densityAtPos(samplePos * mix(450.0,600.0,upperPlane));
|
||||
noise += ((1-smallnoise) - max(0.15 - abs(smallnoise * 2.0 - 0.55) * 0.5,0.0)*1.5) * 0.6;
|
||||
if (LoD > 0){
|
||||
noise += abs( densityAtPos(samplePos * mix(450.0,600.0,upperPlane) ) - (1.0-clamp(((maxHeight - pos.y) / 100.0),0.0,1.0))) * 0.75 * (1.0-cov);
|
||||
}
|
||||
|
||||
noise *= (1.0-cov);
|
||||
|
||||
|
||||
noise = noise*noise * (upperPlane*0.7+0.3);
|
||||
noise = noise*noise;
|
||||
float cloud = max(cov - noise*noise*fbmAmount,0.0);
|
||||
|
||||
return cloud;
|
||||
@ -272,15 +264,11 @@ vec3 DoCloudLighting(
|
||||
float distantfog
|
||||
|
||||
){
|
||||
float powder = 1.0 - exp(-10.0 * densityFaded);
|
||||
float lesspowder = powder*0.4+0.6;
|
||||
float powder = 1.0 - exp(-5.0 * sqrt(density));
|
||||
|
||||
float indirectScatter = exp(-15 * sqrt((skyScatter*skyScatter*skyScatter) * densityFaded)) * lesspowder;
|
||||
vec3 indirectLight = skyLightCol * mix(1.0, 1.0 - exp(-1.0 * (1.0-sqrt(density))), skyScatter*skyScatter*skyScatter * distantfog);
|
||||
|
||||
vec3 indirectLight = skyLightCol * mix(1.0, indirectScatter, distantfog);
|
||||
|
||||
vec3 directLight = sunScatter * exp(-10.0 * sunShadows + powder);
|
||||
directLight += sunMultiScatter * exp(-3.0 * sunShadows ) * (powder*0.7+0.3);
|
||||
vec3 directLight = sunMultiScatter * exp(-3.0 * sunShadows) * powder + sunScatter * exp(-10.0 * sunShadows);
|
||||
|
||||
// return indirectLight;
|
||||
// return directLight;
|
||||
@ -346,8 +334,7 @@ if(layer == 2){
|
||||
|
||||
float directLight = 0.0;
|
||||
for (int j = 0; j < 2; j++){
|
||||
|
||||
vec3 shadowSamplePos_high = rayProgress + dV_Sun * (0.1 + j * (0.5 + dither*0.05));
|
||||
vec3 shadowSamplePos_high = rayProgress + dV_Sun * (100.0 + j * (20.0 + dither*10.0));
|
||||
|
||||
float shadow = GetAltostratusDensity(shadowSamplePos_high) * cloudDensity;
|
||||
directLight += shadow;
|
||||
@ -378,19 +365,18 @@ if(layer == 2){
|
||||
|
||||
// do not sample anything unless within a clouds bounding box
|
||||
if(clamp(rayProgress.y - maxHeight,0.0,1.0) < 1.0 && clamp(rayProgress.y - minHeight,0.0,1.0) > 0.0){
|
||||
float cumulus = GetCumulusDensity(layer, rayProgress, 1, minHeight, maxHeight);
|
||||
|
||||
float cumulus = GetCumulusDensity(layer, rayProgress, 1, minHeight, maxHeight);
|
||||
float CumulusWithDensity = cloudDensity * cumulus;
|
||||
float fadedDensity = cloudDensity * clamp(exp( (rayProgress.y - (maxHeight - 75)) / 9.0 ),0.0,1.0);
|
||||
|
||||
if(cumulus > 1e-5 ){ // make sure no work is done on pixels with no densities
|
||||
if(CumulusWithDensity > 1e-5 ){ // make sure no work is done on pixels with no densities
|
||||
float muE = cumulus * fadedDensity;
|
||||
|
||||
float directLight = 0.0;
|
||||
for (int j=0; j < 3; j++){
|
||||
vec3 shadowSamplePos = rayProgress + dV_Sun * (0.1 + j * (0.1 + dither*0.05));
|
||||
float shadow = GetCumulusDensity(layer, shadowSamplePos, 0, minHeight, maxHeight) * cloudDensity;
|
||||
|
||||
directLight += shadow;
|
||||
vec3 shadowSamplePos = rayProgress + dV_Sun * (20.0 + j * (20.0 + dither*10.0));
|
||||
directLight += GetCumulusDensity(layer, shadowSamplePos, 0, minHeight, maxHeight) * cloudDensity;
|
||||
}
|
||||
|
||||
/// shadows cast from one layer to another
|
||||
@ -405,9 +391,8 @@ if(layer == 2){
|
||||
directLight += HighAlt_shadow;
|
||||
#endif
|
||||
|
||||
float skyScatter = clamp(((maxHeight - 50 - rayProgress.y) / 275.0) * (0.5+cloudDensity),0.0,1.0);
|
||||
vec3 lighting = DoCloudLighting(muE, cumulus, skyLightCol * skylightOcclusion, skyScatter, directLight, sunScatter, sunMultiScatter, distantfog);
|
||||
|
||||
float skyScatter = clamp(((maxHeight - rayProgress.y) / 100.0),0.0,1.0); // linear gradient from bottom to top of cloud layer
|
||||
vec3 lighting = DoCloudLighting(CumulusWithDensity, muE, skyLightCol * skylightOcclusion, skyScatter, directLight, sunScatter, sunMultiScatter, distantfog);
|
||||
|
||||
|
||||
COLOR += max(lighting - lighting*exp(-mult*muE),0.0) * TOTAL_EXTINCTION;
|
||||
@ -484,7 +469,7 @@ vec4 renderClouds(
|
||||
////// lighting stuff
|
||||
//////////////////////////////////////////
|
||||
|
||||
float shadowStep = 200.0;
|
||||
float shadowStep = 1.0;
|
||||
|
||||
vec3 dV_Sun = WsunVec*shadowStep;
|
||||
float SdotV = dot(mat3(gbufferModelView)*WsunVec, normalize(FragPosition));
|
||||
@ -495,7 +480,7 @@ vec4 renderClouds(
|
||||
vec3 directScattering = LightColor * mieDay * 3.14;
|
||||
vec3 directMultiScattering = LightColor * mieDayMulti * 3.14;
|
||||
|
||||
vec3 sunIndirectScattering = LightColor * phaseg(dot(mat3(gbufferModelView)*vec3(0,1,0),normalize(FragPosition)), 0.5) * 3.14;
|
||||
vec3 sunIndirectScattering = LightColor;// * phaseg(dot(mat3(gbufferModelView)*vec3(0,1,0),normalize(FragPosition)), 0.5) * 3.14;
|
||||
|
||||
|
||||
// use this to blend into the atmosphere's ground.
|
||||
@ -508,7 +493,7 @@ vec4 renderClouds(
|
||||
#endif
|
||||
|
||||
// terrible fake rayleigh scattering
|
||||
vec3 rC = vec3(sky_coefficientRayleighR*1e-6, sky_coefficientRayleighG*1e-5, sky_coefficientRayleighB*1e-5)*3;
|
||||
vec3 rC = vec3(sky_coefficientRayleighR*1e-6, sky_coefficientRayleighG*1e-5, sky_coefficientRayleighB*1e-5)*3.0;
|
||||
float atmosphere = exp(abs(approxdistance.y) * -5.0);
|
||||
vec3 scatter = exp(-10000.0 * rC * atmosphere) * distantfog;
|
||||
|
||||
@ -531,7 +516,6 @@ vec4 renderClouds(
|
||||
|
||||
// int above_Layer0 = int(clamp(cameraPosition.y - MaxHeight,0.0,1.0));
|
||||
int below_Layer0 = int(clamp(MaxHeight - cameraPosition.y,0.0,1.0));
|
||||
|
||||
int above_Layer1 = int(clamp(MaxHeight1 - cameraPosition.y,0.0,1.0));
|
||||
bool below_Layer1 = clamp(cameraPosition.y - MinHeight1,0.0,1.0) < 1.0;
|
||||
bool below_Layer2 = clamp(cameraPosition.y - Height2,0.0,1.0) < 1.0;
|
||||
|
@ -65,6 +65,8 @@ vec3 getWaveNormal(vec3 posxz, bool isLOD){
|
||||
normalMult = mix(5.0, normalMult, range);
|
||||
deltaPos = mix(0.9, deltaPos, range);
|
||||
}
|
||||
// added detail for snells window
|
||||
// if(isEyeInWater == 1) deltaPos = 0.025;
|
||||
|
||||
#ifdef HYPER_DETAILED_WAVES
|
||||
deltaPos = 0.025;
|
||||
|
@ -84,7 +84,7 @@ blend.composite.colortex13 = off
|
||||
# Alpha test
|
||||
alphaTest.shadow = GREATER 0.1
|
||||
alphaTest.gbuffers_entities = GREATER 0.1
|
||||
alphaTest.gbuffers_hand = true
|
||||
alphaTest.gbuffers_hand = GREATER 0.1
|
||||
|
||||
alphaTest.gbuffers_armor_glint=false
|
||||
alphaTest.gbuffers_weather=false
|
||||
@ -93,7 +93,7 @@ alphaTest.gbuffers_skybasic=false
|
||||
alphaTest.gbuffers_skytextured=false
|
||||
|
||||
|
||||
sliders = WATER_WAVE_SPEED WATER_CAUSTICS_BRIGHTNESS DAY3_l0_coverage DAY3_l0_density DAY3_l1_coverage DAY3_l1_density DAY3_l2_coverage DAY3_l2_density DAY3_ufog_density DAY3_cfog_density DAY0_l0_coverage DAY0_l1_coverage DAY0_l2_coverage DAY0_ufog_density DAY0_l0_density DAY0_l1_density DAY0_l2_density DAY0_cfog_density DAY1_l0_coverage DAY1_l1_coverage DAY1_l2_coverage DAY1_ufog_density DAY1_l0_density DAY1_l1_density DAY1_l2_density DAY1_cfog_density DAY2_l0_coverage DAY2_l1_coverage DAY2_l2_coverage DAY2_ufog_density DAY2_l0_density DAY2_l1_density DAY2_l2_density DAY2_cfog_density DEBUG_VIEW entityShadowDistanceMul HANDHELD_LIGHT_RANGE CLOUD_SHADOW_STRENGTH CloudLayer0_coverage CloudLayer0_density CloudLayer0_height CloudLayer1_coverage CloudLayer1_density CloudLayer1_height CloudLayer2_coverage CloudLayer2_density CloudLayer2_height PLANET_GROUND_BRIGHTNESS FOG_START_HEIGHT WATER_WAVE_STRENGTH SWAMP_UNIFORM_DENSITY SWAMP_CLOUDY_DENSITY SWAMP_R SWAMP_G SWAMP_B JUNGLE_UNIFORM_DENSITY JUNGLE_CLOUDY_DENSITY JUNGLE_R JUNGLE_G JUNGLE_B DARKFOREST_UNIFORM_DENSITY DARKFOREST_CLOUDY_DENSITY DARKFOREST_R DARKFOREST_G DARKFOREST_B NETHER_PLUME_DENSITY END_STORM_DENSTIY LIT_PARTICLE_BRIGHTNESS 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 SCALE_FACTOR CompSky_R CompSky_G CompSky_B ambientsss_brightness SSS_TYPE Cloud_Speed 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 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 Sun_temp Puddle_Size LabSSS_Curve Emissive_Curve Emissive_Brightness AO_Strength BLOOMY_FOG WAVY_SPEED WAVY_STRENGTH BLOOM_STRENGTH shadowDistance 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 = TONEMAP WATER_WAVE_SPEED WATER_CAUSTICS_BRIGHTNESS DAY3_l0_coverage DAY3_l0_density DAY3_l1_coverage DAY3_l1_density DAY3_l2_coverage DAY3_l2_density DAY3_ufog_density DAY3_cfog_density DAY0_l0_coverage DAY0_l1_coverage DAY0_l2_coverage DAY0_ufog_density DAY0_l0_density DAY0_l1_density DAY0_l2_density DAY0_cfog_density DAY1_l0_coverage DAY1_l1_coverage DAY1_l2_coverage DAY1_ufog_density DAY1_l0_density DAY1_l1_density DAY1_l2_density DAY1_cfog_density DAY2_l0_coverage DAY2_l1_coverage DAY2_l2_coverage DAY2_ufog_density DAY2_l0_density DAY2_l1_density DAY2_l2_density DAY2_cfog_density DEBUG_VIEW entityShadowDistanceMul HANDHELD_LIGHT_RANGE CLOUD_SHADOW_STRENGTH CloudLayer0_coverage CloudLayer0_density CloudLayer0_height CloudLayer1_coverage CloudLayer1_density CloudLayer1_height CloudLayer2_coverage CloudLayer2_density CloudLayer2_height PLANET_GROUND_BRIGHTNESS FOG_START_HEIGHT WATER_WAVE_STRENGTH SWAMP_UNIFORM_DENSITY SWAMP_CLOUDY_DENSITY SWAMP_R SWAMP_G SWAMP_B JUNGLE_UNIFORM_DENSITY JUNGLE_CLOUDY_DENSITY JUNGLE_R JUNGLE_G JUNGLE_B DARKFOREST_UNIFORM_DENSITY DARKFOREST_CLOUDY_DENSITY DARKFOREST_R DARKFOREST_G DARKFOREST_B NETHER_PLUME_DENSITY END_STORM_DENSTIY LIT_PARTICLE_BRIGHTNESS 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 SCALE_FACTOR CompSky_R CompSky_G CompSky_B ambientsss_brightness SSS_TYPE Cloud_Speed 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 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 Sun_temp Puddle_Size LabSSS_Curve Emissive_Curve Emissive_Brightness AO_Strength BLOOMY_FOG WAVY_SPEED WAVY_STRENGTH BLOOM_STRENGTH shadowDistance 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 = \
|
||||
@ -102,8 +102,8 @@ BLISS_SHADERS <empty> \
|
||||
[Direct_Light] [World] \
|
||||
[Ambient_light] [Fog] \
|
||||
[Post_Processing] [Clouds] \
|
||||
[LabPBR] [Climate] \
|
||||
<empty> [DAILY_WEATHER] \
|
||||
[LabPBR] [Climate] \
|
||||
<empty> <empty> \
|
||||
[Misc_Settings] [DISTANT_HORIZONS_SETTINGS]
|
||||
|
||||
# screen = [Direct_Light] [World]
|
||||
@ -136,7 +136,7 @@ BLISS_SHADERS <empty> \
|
||||
AO_Strength GI_Strength \
|
||||
ambientOcclusionLevel HQ_SSGI \
|
||||
Hand_Held_lights SKY_CONTRIBUTION_IN_SSRT \
|
||||
HANDHELD_LIGHT_RANGE
|
||||
HANDHELD_LIGHT_RANGE UseQuarterResDepth
|
||||
|
||||
screen.Torch_Colors.columns=1
|
||||
screen.Torch_Colors = TORCH_AMOUNT Emissive_Brightness Emissive_Curve <empty> TORCH_R TORCH_G TORCH_B
|
||||
@ -211,11 +211,10 @@ BLISS_SHADERS <empty> \
|
||||
screen.Clouds = VOLUMETRIC_CLOUDS CLOUDS_SHADOWS Cloud_Speed \
|
||||
CLOUDS_QUALITY CLOUD_SHADOW_STRENGTH Rain_coverage \
|
||||
<empty> <empty> <empty> \
|
||||
<empty> <empty> <empty> \
|
||||
CloudLayer0 CloudLayer1 CloudLayer2 \
|
||||
CloudLayer0_coverage CloudLayer1_coverage CloudLayer2_coverage \
|
||||
CloudLayer0_density CloudLayer1_density CloudLayer2_density \
|
||||
CloudLayer0_height CloudLayer1_height CloudLayer2_height
|
||||
CloudLayer0_height CloudLayer1_height CloudLayer2_height \
|
||||
|
||||
### FOG
|
||||
screen.Fog.columns=2
|
||||
@ -510,8 +509,10 @@ uniform.float.noPuddleAreas = smooth(if(in(biome, 3, 4, 16, 37, 39, 48, 49, 31,
|
||||
|
||||
#ifdef HURT_AND_DEATH_EFFECT
|
||||
uniform.float.hurt = smooth(if(is_hurt,1,0),0,1)
|
||||
uniform.float.dying = smooth(if(!is_alive,2,0),3,0)
|
||||
uniform.float.dead = smooth(if(dying >= 1.99, 1,0),1,0)
|
||||
#ifndef IS_IRIS
|
||||
uniform.float.dying = smooth(if(!is_alive,2,0),3,0)
|
||||
uniform.float.dead = smooth(if(dying >= 1.99, 1,0),1,0)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
# uniform.vec3.CamPos = vec3(cameraPosition.x,cameraPosition.y,cameraPosition.z)
|
||||
|
Loading…
x
Reference in New Issue
Block a user