mirror of
https://github.com/X0nk/Bliss-Shader.git
synced 2024-12-23 01:59:39 +08:00
make handheld lights work on particles and translucents. make lit particle brightness work again. exclude hand from bloom. extend bloom mulitplier slider.
This commit is contained in:
parent
6fdc95dff4
commit
8f5111d82d
@ -33,6 +33,7 @@ uniform vec2 texelSize;
|
|||||||
|
|
||||||
uniform ivec2 eyeBrightnessSmooth;
|
uniform ivec2 eyeBrightnessSmooth;
|
||||||
uniform float rainStrength;
|
uniform float rainStrength;
|
||||||
|
flat varying float HELD_ITEM_BRIGHTNESS;
|
||||||
|
|
||||||
#ifndef OVERWORLD_SHADER
|
#ifndef OVERWORLD_SHADER
|
||||||
uniform float nightVision;
|
uniform float nightVision;
|
||||||
@ -99,6 +100,13 @@ void main() {
|
|||||||
#ifndef OVERWORLD_SHADER
|
#ifndef OVERWORLD_SHADER
|
||||||
lightmap.y = 1.0;
|
lightmap.y = 1.0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef Hand_Held_lights
|
||||||
|
lightmap.x = max(lightmap.x, HELD_ITEM_BRIGHTNESS * clamp( pow(max(1.0-length(viewPos)/10,0.0),1.5),0.0,1.0));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef WEATHER
|
#ifdef WEATHER
|
||||||
gl_FragData[1].a = TEXTURE.a; // for bloomy rain and stuff
|
gl_FragData[1].a = TEXTURE.a; // for bloomy rain and stuff
|
||||||
#endif
|
#endif
|
||||||
@ -117,9 +125,8 @@ void main() {
|
|||||||
vec3 Indirect_lighting = vec3(0.0);
|
vec3 Indirect_lighting = vec3(0.0);
|
||||||
vec3 Torch_Color = vec3(TORCH_R,TORCH_G,TORCH_B);
|
vec3 Torch_Color = vec3(TORCH_R,TORCH_G,TORCH_B);
|
||||||
|
|
||||||
#ifdef LIT
|
|
||||||
Torch_Color *= LIT_PARTICLE_BRIGHTNESS;
|
if(lightmap.x >= 0.9) Torch_Color *= LIT_PARTICLE_BRIGHTNESS;
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef OVERWORLD_SHADER
|
#ifdef OVERWORLD_SHADER
|
||||||
float Shadows = 1.0;
|
float Shadows = 1.0;
|
||||||
@ -161,7 +168,7 @@ void main() {
|
|||||||
vec3 AmbientLightColor = vec3(1.0);
|
vec3 AmbientLightColor = vec3(1.0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Indirect_lighting = DoAmbientLightColor(AmbientLightColor, vec3(TORCH_R,TORCH_G,TORCH_B), clamp(lightmap.xy,0,1));
|
Indirect_lighting = DoAmbientLightColor(AmbientLightColor, Torch_Color, clamp(lightmap.xy,0,1));
|
||||||
|
|
||||||
#ifdef LINES
|
#ifdef LINES
|
||||||
gl_FragData[0].rgb = (Indirect_lighting + Direct_lighting) * toLinear(color.rgb);
|
gl_FragData[0].rgb = (Indirect_lighting + Direct_lighting) * toLinear(color.rgb);
|
||||||
|
@ -29,6 +29,10 @@ uniform mat4 gbufferModelViewInverse;
|
|||||||
uniform mat4 gbufferModelView;
|
uniform mat4 gbufferModelView;
|
||||||
uniform ivec2 eyeBrightnessSmooth;
|
uniform ivec2 eyeBrightnessSmooth;
|
||||||
|
|
||||||
|
uniform int heldItemId;
|
||||||
|
uniform int heldItemId2;
|
||||||
|
flat varying float HELD_ITEM_BRIGHTNESS;
|
||||||
|
|
||||||
const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.),
|
const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.),
|
||||||
vec2(-1.,3.)/8.,
|
vec2(-1.,3.)/8.,
|
||||||
vec2(5.0,1.)/8.,
|
vec2(5.0,1.)/8.,
|
||||||
@ -55,6 +59,14 @@ void main() {
|
|||||||
vec2 lmcoord = gl_MultiTexCoord1.xy / 255.0; // is this even correct? lol'
|
vec2 lmcoord = gl_MultiTexCoord1.xy / 255.0; // is this even correct? lol'
|
||||||
lmtexcoord.zw = lmcoord;
|
lmtexcoord.zw = lmcoord;
|
||||||
|
|
||||||
|
|
||||||
|
HELD_ITEM_BRIGHTNESS = 0.0;
|
||||||
|
|
||||||
|
#ifdef Hand_Held_lights
|
||||||
|
if(heldItemId == 100 || heldItemId2 == 100) HELD_ITEM_BRIGHTNESS = 0.9;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef WEATHER
|
#ifdef WEATHER
|
||||||
vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz;
|
vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz;
|
||||||
|
|
||||||
|
@ -311,7 +311,13 @@ void main() {
|
|||||||
float torchlightmap = lmtexcoord.z;
|
float torchlightmap = lmtexcoord.z;
|
||||||
|
|
||||||
#ifdef Hand_Held_lights
|
#ifdef Hand_Held_lights
|
||||||
|
|
||||||
|
|
||||||
if(HELD_ITEM_BRIGHTNESS > 0.0) torchlightmap = max(torchlightmap, HELD_ITEM_BRIGHTNESS * clamp( pow(max(1.0-length(fragpos)/10,0.0),1.5),0.0,1.0));
|
if(HELD_ITEM_BRIGHTNESS > 0.0) torchlightmap = max(torchlightmap, HELD_ITEM_BRIGHTNESS * clamp( pow(max(1.0-length(fragpos)/10,0.0),1.5),0.0,1.0));
|
||||||
|
#ifdef HAND
|
||||||
|
torchlightmap = 0.7;
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
float lightmap = clamp( (lmtexcoord.w-0.8) * 10.0,0.,1.);
|
float lightmap = clamp( (lmtexcoord.w-0.8) * 10.0,0.,1.);
|
||||||
@ -435,7 +441,7 @@ void main() {
|
|||||||
else Albedo.a = 0.0;
|
else Albedo.a = 0.0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined HAND
|
#ifdef HAND
|
||||||
if (Albedo.a > 0.1) Albedo.a = 0.75;
|
if (Albedo.a > 0.1) Albedo.a = 0.75;
|
||||||
else Albedo.a = 0.0;
|
else Albedo.a = 0.0;
|
||||||
#endif
|
#endif
|
||||||
|
@ -15,6 +15,7 @@ varying vec4 color;
|
|||||||
flat varying vec4 lightCol;
|
flat varying vec4 lightCol;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
flat varying float HELD_ITEM_BRIGHTNESS;
|
||||||
|
|
||||||
const bool colortex4MipmapEnabled = true;
|
const bool colortex4MipmapEnabled = true;
|
||||||
uniform sampler2D noisetex;
|
uniform sampler2D noisetex;
|
||||||
@ -372,6 +373,10 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
|
|||||||
#ifndef OVERWORLD_SHADER
|
#ifndef OVERWORLD_SHADER
|
||||||
lightmap.y = 1.0;
|
lightmap.y = 1.0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef Hand_Held_lights
|
||||||
|
lightmap.x = max(lightmap.x, HELD_ITEM_BRIGHTNESS*clamp( pow(max(1.0-length(viewPos)/10,0.0),1.5),0.0,1.0));
|
||||||
|
#endif
|
||||||
|
|
||||||
vec3 Indirect_lighting = vec3(0.0);
|
vec3 Indirect_lighting = vec3(0.0);
|
||||||
vec3 Direct_lighting = vec3(0.0);
|
vec3 Direct_lighting = vec3(0.0);
|
||||||
|
@ -49,6 +49,10 @@ uniform float viewWidth;
|
|||||||
uniform int hideGUI;
|
uniform int hideGUI;
|
||||||
uniform float screenBrightness;
|
uniform float screenBrightness;
|
||||||
|
|
||||||
|
uniform int heldItemId;
|
||||||
|
uniform int heldItemId2;
|
||||||
|
flat varying float HELD_ITEM_BRIGHTNESS;
|
||||||
|
|
||||||
uniform vec2 texelSize;
|
uniform vec2 texelSize;
|
||||||
uniform int framemod8;
|
uniform int framemod8;
|
||||||
|
|
||||||
@ -85,7 +89,12 @@ void main() {
|
|||||||
vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz;
|
vec3 position = mat3(gl_ModelViewMatrix) * vec3(gl_Vertex) + gl_ModelViewMatrix[3].xyz;
|
||||||
gl_Position = toClipSpace3(position);
|
gl_Position = toClipSpace3(position);
|
||||||
|
|
||||||
|
HELD_ITEM_BRIGHTNESS = 0.0;
|
||||||
|
|
||||||
|
#ifdef Hand_Held_lights
|
||||||
|
if(heldItemId == 100 || heldItemId2 == 100) HELD_ITEM_BRIGHTNESS = 0.9;
|
||||||
|
#endif
|
||||||
|
|
||||||
float mat = 0.0;
|
float mat = 0.0;
|
||||||
|
|
||||||
if(mc_Entity.x == 8.0) {
|
if(mc_Entity.x == 8.0) {
|
||||||
|
@ -38,7 +38,13 @@ uniform sampler2D colortex4;
|
|||||||
flat varying float exposure;
|
flat varying float exposure;
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
|
color = gl_Color;
|
||||||
|
|
||||||
|
#ifdef ENCHANT_GLINT
|
||||||
|
texcoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st;
|
||||||
|
#else
|
||||||
|
texcoord = (gl_MultiTexCoord0).xy;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined ENCHANT_GLINT || defined SPIDER_EYES
|
#if defined ENCHANT_GLINT || defined SPIDER_EYES
|
||||||
exposure = texelFetch2D(colortex4,ivec2(10,37),0).r;
|
exposure = texelFetch2D(colortex4,ivec2(10,37),0).r;
|
||||||
@ -49,19 +55,12 @@ void main() {
|
|||||||
gl_Position = ftransform();
|
gl_Position = ftransform();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
texcoord = (gl_MultiTexCoord0).xy;
|
|
||||||
#ifdef ENCHANT_GLINT
|
|
||||||
texcoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st;
|
|
||||||
// float exposure = texelFetch2D(colortex4, ivec2(10,37),0).r;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
color = gl_Color;
|
|
||||||
#ifdef BEACON_BEAM
|
#ifdef BEACON_BEAM
|
||||||
if(gl_Color.a < 1.0) gl_Position = vec4(10,10,10,0);
|
if(gl_Color.a < 1.0) gl_Position = vec4(10,10,10,0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef TAA_UPSCALING
|
#ifdef TAA_UPSCALING
|
||||||
gl_Position.xy = gl_Position.xy * RENDER_SCALE + RENDER_SCALE * gl_Position.w - gl_Position.w;
|
gl_Position.xy = gl_Position.xy * RENDER_SCALE + RENDER_SCALE * gl_Position.w - gl_Position.w;
|
||||||
#endif
|
#endif
|
||||||
|
@ -37,7 +37,7 @@ const bool colortex5MipmapEnabled = true;
|
|||||||
// #define LIGHTSOURCE_REFLECTION
|
// #define LIGHTSOURCE_REFLECTION
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
uniform int hideGUI;
|
||||||
uniform sampler2D noisetex; //noise
|
uniform sampler2D noisetex; //noise
|
||||||
uniform sampler2D depthtex0; //depth
|
uniform sampler2D depthtex0; //depth
|
||||||
uniform sampler2D depthtex1; //depth
|
uniform sampler2D depthtex1; //depth
|
||||||
@ -420,18 +420,14 @@ void SSRT_Shadows(vec3 viewPos, vec3 lightDir, float noise, bool isSSS, bool ins
|
|||||||
|
|
||||||
vec3 rayDir = direction * (isSSS ? 1.5 : 3.0) * vec3(RENDER_SCALE,1.0);
|
vec3 rayDir = direction * (isSSS ? 1.5 : 3.0) * vec3(RENDER_SCALE,1.0);
|
||||||
|
|
||||||
vec3 screenPos = clipPosition*vec3(RENDER_SCALE,1.0) + rayDir*noise;
|
vec3 screenPos = clipPosition * vec3(RENDER_SCALE,1.0) + rayDir*noise;
|
||||||
|
if(isSSS)screenPos -= rayDir*0.9;
|
||||||
|
|
||||||
if(isSSS) screenPos -= rayDir*0.9;
|
|
||||||
|
|
||||||
float shadowgradient = 0;
|
|
||||||
for (int i = 0; i < int(steps); i++) {
|
for (int i = 0; i < int(steps); i++) {
|
||||||
|
|
||||||
screenPos += rayDir;
|
screenPos += rayDir;
|
||||||
|
|
||||||
float shadowGradient = i/steps;
|
float samplePos = texture2D(depthtex2, screenPos.xy).x;
|
||||||
|
|
||||||
float samplePos = texture2D(depthtex1, screenPos.xy).x;
|
|
||||||
if(samplePos <= screenPos.z) {
|
if(samplePos <= screenPos.z) {
|
||||||
vec2 linearZ = vec2(linZ(screenPos.z), linZ(samplePos));
|
vec2 linearZ = vec2(linZ(screenPos.z), linZ(samplePos));
|
||||||
float calcthreshold = abs(linearZ.x - linearZ.y) / linearZ.x;
|
float calcthreshold = abs(linearZ.x - linearZ.y) / linearZ.x;
|
||||||
@ -439,10 +435,9 @@ void SSRT_Shadows(vec3 viewPos, vec3 lightDir, float noise, bool isSSS, bool ins
|
|||||||
bool depthThreshold1 = calcthreshold < 0.015;
|
bool depthThreshold1 = calcthreshold < 0.015;
|
||||||
bool depthThreshold2 = calcthreshold < 0.05;
|
bool depthThreshold2 = calcthreshold < 0.05;
|
||||||
|
|
||||||
// if (depthThreshold1) Shadow = inshadowmap ? shadowGradient : 0.0;
|
|
||||||
if (depthThreshold1) Shadow = 0.0;
|
if (depthThreshold1) Shadow = 0.0;
|
||||||
|
|
||||||
if (depthThreshold2) SSS = shadowGradient;
|
if (depthThreshold2) SSS = i/steps;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -509,8 +504,11 @@ vec3 SubsurfaceScattering_sky(vec3 albedo, float Scattering, float Density){
|
|||||||
#include "/lib/indirect_lighting_effects.glsl"
|
#include "/lib/indirect_lighting_effects.glsl"
|
||||||
#include "/lib/PhotonGTAO.glsl"
|
#include "/lib/PhotonGTAO.glsl"
|
||||||
|
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
|
|
||||||
|
vec3 DEBUG =vec3( 1.0);
|
||||||
|
|
||||||
////// --------------- SETUP STUFF --------------- //////
|
////// --------------- SETUP STUFF --------------- //////
|
||||||
vec2 texcoord = gl_FragCoord.xy*texelSize;
|
vec2 texcoord = gl_FragCoord.xy*texelSize;
|
||||||
|
|
||||||
@ -527,6 +525,8 @@ void main() {
|
|||||||
vec3 feetPlayerPos = mat3(gbufferModelViewInverse) * viewPos;
|
vec3 feetPlayerPos = mat3(gbufferModelViewInverse) * viewPos;
|
||||||
vec3 feetPlayerPos_normalized = normVec(feetPlayerPos);
|
vec3 feetPlayerPos_normalized = normVec(feetPlayerPos);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
////// --------------- UNPACK OPAQUE GBUFFERS --------------- //////
|
////// --------------- UNPACK OPAQUE GBUFFERS --------------- //////
|
||||||
|
|
||||||
vec4 data = texture2D(colortex1,texcoord);
|
vec4 data = texture2D(colortex1,texcoord);
|
||||||
@ -570,7 +570,7 @@ void main() {
|
|||||||
bool entities = abs(dataUnpacked1.w-0.45) < 0.01;
|
bool entities = abs(dataUnpacked1.w-0.45) < 0.01;
|
||||||
// bool isBoss = abs(dataUnpacked1.w-0.60) < 0.01;
|
// bool isBoss = abs(dataUnpacked1.w-0.60) < 0.01;
|
||||||
bool isGrass = abs(dataUnpacked1.w-0.60) < 0.01;
|
bool isGrass = abs(dataUnpacked1.w-0.60) < 0.01;
|
||||||
bool hand = abs(dataUnpacked1.w-0.75) < 0.01;
|
bool hand = abs(dataUnpacked1.w-0.75) < 0.01 && z0 < 1.0;
|
||||||
// bool blocklights = abs(dataUnpacked1.w-0.8) <0.01;
|
// bool blocklights = abs(dataUnpacked1.w-0.8) <0.01;
|
||||||
|
|
||||||
|
|
||||||
@ -674,8 +674,10 @@ void main() {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
vec3 feetPlayerPos_shadow = mat3(gbufferModelViewInverse) * viewPos + gbufferModelViewInverse[3].xyz;
|
vec3 feetPlayerPos_shadow = mat3(gbufferModelViewInverse) * viewPos + gbufferModelViewInverse[3].xyz;
|
||||||
|
|
||||||
if(!hand) GriAndEminShadowFix(feetPlayerPos_shadow, viewToWorld(FlatNormals), vanilla_AO, lightmap.y, entities);
|
if(!entities){
|
||||||
|
if(!hand) GriAndEminShadowFix(feetPlayerPos_shadow, viewToWorld(FlatNormals), vanilla_AO, lightmap.y, entities);
|
||||||
|
}
|
||||||
|
|
||||||
// mat4 Custom_ViewMatrix = BuildShadowViewMatrix(LightDir);
|
// mat4 Custom_ViewMatrix = BuildShadowViewMatrix(LightDir);
|
||||||
// vec3 projectedShadowPosition = mat3(Custom_ViewMatrix) * feetPlayerPos_shadow + Custom_ViewMatrix[3].xyz;
|
// vec3 projectedShadowPosition = mat3(Custom_ViewMatrix) * feetPlayerPos_shadow + Custom_ViewMatrix[3].xyz;
|
||||||
@ -697,13 +699,15 @@ void main() {
|
|||||||
if (shadowNDOTL >= -0.001){
|
if (shadowNDOTL >= -0.001){
|
||||||
Shadows = 0.0;
|
Shadows = 0.0;
|
||||||
int samples = SHADOW_FILTER_SAMPLE_COUNT;
|
int samples = SHADOW_FILTER_SAMPLE_COUNT;
|
||||||
float smallbias = 0;
|
float smallbias = 0.0;
|
||||||
|
|
||||||
if(hand){
|
if(hand){
|
||||||
samples = 1;
|
samples = 1;
|
||||||
smallbias = -0.0005;
|
|
||||||
noise = 0.5;
|
noise = 0.5;
|
||||||
|
smallbias = -0.0004;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(entities) smallbias = -0.0001;
|
||||||
|
|
||||||
|
|
||||||
projectedShadowPosition = projectedShadowPosition * vec3(0.5,0.5,0.5/6.0) + vec3(0.5);
|
projectedShadowPosition = projectedShadowPosition * vec3(0.5,0.5,0.5/6.0) + vec3(0.5);
|
||||||
@ -768,7 +772,10 @@ void main() {
|
|||||||
|
|
||||||
Shadows = min(Shadows, SS_shadow);
|
Shadows = min(Shadows, SS_shadow);
|
||||||
|
|
||||||
if (!inShadowmapBounds) ShadowBlockerDepth = max(ShadowBlockerDepth, SS_shadowSSS);
|
if (!inShadowmapBounds) ShadowBlockerDepth = max(ShadowBlockerDepth, clamp(SS_shadowSSS,0.0,1.0));
|
||||||
|
|
||||||
|
|
||||||
|
// DEBUG = 1.0-SS_shadowSSS;
|
||||||
#else
|
#else
|
||||||
|
|
||||||
if (!inShadowmapBounds) Direct_SSS = vec3(0.0);
|
if (!inShadowmapBounds) Direct_SSS = vec3(0.0);
|
||||||
@ -782,7 +789,7 @@ void main() {
|
|||||||
|
|
||||||
if (!inShadowmapBounds){
|
if (!inShadowmapBounds){
|
||||||
Direct_SSS *= lightmapAsShadows;
|
Direct_SSS *= lightmapAsShadows;
|
||||||
Direct_SSS *= 1.0-NdotL;
|
// Direct_SSS *= 1.0-NdotL;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1020,8 +1027,7 @@ void main() {
|
|||||||
waterVolumetrics_notoverworld(gl_FragData[0].rgb, viewPos0, viewPos, estimatedDepth , estimatedDepth, Vdiff, noise_2, totEpsilon, scatterCoef, ambientColVol);
|
waterVolumetrics_notoverworld(gl_FragData[0].rgb, viewPos0, viewPos, estimatedDepth , estimatedDepth, Vdiff, noise_2, totEpsilon, scatterCoef, ambientColVol);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// gl_FragData[0].rgb = vec3(hand);
|
||||||
/* DRAWBUFFERS:3 */
|
/* DRAWBUFFERS:3 */
|
||||||
}
|
}
|
@ -264,7 +264,7 @@ vec4 TAA_hq(){
|
|||||||
vec4 albedoPrev = texture2D(colortex5, previousPosition.xy);
|
vec4 albedoPrev = texture2D(colortex5, previousPosition.xy);
|
||||||
vec3 supersampled = albedoPrev.rgb * albedoPrev.a + albedoCurrent0;
|
vec3 supersampled = albedoPrev.rgb * albedoPrev.a + albedoCurrent0;
|
||||||
|
|
||||||
if (length(velocity) > 1e-6 || hideGUI < 1) return vec4(albedoCurrent0,1.0);
|
if ( hideGUI < 1) return vec4(albedoCurrent0,1.0);
|
||||||
return vec4(supersampled/(albedoPrev.a+1.0), albedoPrev.a+1.0);
|
return vec4(supersampled/(albedoPrev.a+1.0), albedoPrev.a+1.0);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,24 @@
|
|||||||
|
uniform sampler2D depthtex1;
|
||||||
|
uniform sampler2D colortex1;
|
||||||
uniform sampler2D colortex5;
|
uniform sampler2D colortex5;
|
||||||
uniform vec2 texelSize;
|
uniform vec2 texelSize;
|
||||||
uniform float viewWidth;
|
uniform float viewWidth;
|
||||||
uniform float viewHeight;
|
uniform float viewHeight;
|
||||||
|
|
||||||
|
vec3 decode (vec2 encn){
|
||||||
|
vec3 n = vec3(0.0);
|
||||||
|
encn = encn * 2.0 - 1.0;
|
||||||
|
n.xy = abs(encn);
|
||||||
|
n.z = 1.0 - n.x - n.y;
|
||||||
|
n.xy = n.z <= 0.0 ? (1.0 - n.yx) * sign(encn) : encn;
|
||||||
|
return clamp(normalize(n.xyz),-1.0,1.0);
|
||||||
|
}
|
||||||
|
vec2 decodeVec2(float a){
|
||||||
|
const vec2 constant1 = 65535. / vec2( 256., 65536.);
|
||||||
|
const float constant2 = 256. / 255.;
|
||||||
|
return fract( a * constant1 ) * constant2 ;
|
||||||
|
}
|
||||||
|
|
||||||
//////////////////////////////VOID MAIN//////////////////////////////
|
//////////////////////////////VOID MAIN//////////////////////////////
|
||||||
//////////////////////////////VOID MAIN//////////////////////////////
|
//////////////////////////////VOID MAIN//////////////////////////////
|
||||||
//////////////////////////////VOID MAIN//////////////////////////////
|
//////////////////////////////VOID MAIN//////////////////////////////
|
||||||
@ -15,6 +32,11 @@ void main() {
|
|||||||
vec2 resScale = max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.))/vec2(1920.,1080.);
|
vec2 resScale = max(vec2(viewWidth,viewHeight),vec2(1920.0,1080.))/vec2(1920.,1080.);
|
||||||
vec2 quarterResTC = gl_FragCoord.xy*2.*resScale*texelSize;
|
vec2 quarterResTC = gl_FragCoord.xy*2.*resScale*texelSize;
|
||||||
|
|
||||||
|
vec4 data = texture2D(colortex1,quarterResTC);
|
||||||
|
vec4 dataUnpacked1 = vec4(decodeVec2(data.z),decodeVec2(data.w));
|
||||||
|
float depth = texture2D(depthtex1,quarterResTC).x;
|
||||||
|
bool hand = abs(dataUnpacked1.w-0.75) < 0.01 && depth < 1.0;
|
||||||
|
|
||||||
//0.5
|
//0.5
|
||||||
gl_FragData[0] = texture2D(colortex5,quarterResTC-1.0*vec2(texelSize.x,texelSize.y))/4.*0.5;
|
gl_FragData[0] = texture2D(colortex5,quarterResTC-1.0*vec2(texelSize.x,texelSize.y))/4.*0.5;
|
||||||
gl_FragData[0] += texture2D(colortex5,quarterResTC+1.0*vec2(texelSize.x,texelSize.y))/4.*0.5;
|
gl_FragData[0] += texture2D(colortex5,quarterResTC+1.0*vec2(texelSize.x,texelSize.y))/4.*0.5;
|
||||||
@ -37,7 +59,7 @@ vec2 quarterResTC = gl_FragCoord.xy*2.*resScale*texelSize;
|
|||||||
gl_FragData[0] += texture2D(colortex5,quarterResTC)*0.125;
|
gl_FragData[0] += texture2D(colortex5,quarterResTC)*0.125;
|
||||||
|
|
||||||
gl_FragData[0].rgb = clamp(gl_FragData[0].rgb,0.0,65000.);
|
gl_FragData[0].rgb = clamp(gl_FragData[0].rgb,0.0,65000.);
|
||||||
if (quarterResTC.x > 1.0 - 3.5*texelSize.x || quarterResTC.y > 1.0 -3.5*texelSize.y || quarterResTC.x < 3.5*texelSize.x || quarterResTC.y < 3.5*texelSize.y) gl_FragData[0].rgb = vec3(0.0);
|
if (hand || quarterResTC.x > 1.0 - 3.5*texelSize.x || quarterResTC.y > 1.0 -3.5*texelSize.y || quarterResTC.x < 3.5*texelSize.x || quarterResTC.y < 3.5*texelSize.y) gl_FragData[0].rgb = vec3(0.0);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
uniform sampler2D colortex4;
|
uniform sampler2D colortex4;
|
||||||
uniform sampler2D depthtex1;
|
uniform sampler2D depthtex1;
|
||||||
|
uniform sampler2D depthtex2;
|
||||||
|
|
||||||
uniform float near;
|
uniform float near;
|
||||||
uniform float far;
|
uniform float far;
|
||||||
|
@ -169,6 +169,13 @@ void main() {
|
|||||||
// uniform sampler2D shadowcolor0;
|
// uniform sampler2D shadowcolor0;
|
||||||
// uniform sampler2D shadowtex0;
|
// uniform sampler2D shadowtex0;
|
||||||
// uniform sampler2D shadowtex1;
|
// uniform sampler2D shadowtex1;
|
||||||
|
// vec2 coord = gl_FragCoord.xy;
|
||||||
|
// int invertChecker = int(mod(coord.x,2)) * int(mod(coord.y,2));
|
||||||
|
|
||||||
|
// int checker = int(mod(coord.x*coord.y,2));
|
||||||
|
// int checker2 = int(mod(coord.x*coord.y+1,2));
|
||||||
|
|
||||||
|
// gl_FragColor.rgb = vec3(0.2) * checker * checker2;
|
||||||
|
|
||||||
|
|
||||||
// if( hideGUI == 1){
|
// if( hideGUI == 1){
|
||||||
|
@ -65,13 +65,20 @@ SOFTWARE.*/
|
|||||||
// vec3 RandomPosition = hash31(frameTimeCounter);
|
// vec3 RandomPosition = hash31(frameTimeCounter);
|
||||||
vec3 ManualLightPos = vec3(ORB_X, ORB_Y, ORB_Z);
|
vec3 ManualLightPos = vec3(ORB_X, ORB_Y, ORB_Z);
|
||||||
|
|
||||||
|
// int switcher = frameCounter % 2 == 0 ? 0 : 1;
|
||||||
|
|
||||||
|
// float OneOrZero = int(mod(gl_FragCoord.x*gl_FragCoord.y + switcher, 2));
|
||||||
|
|
||||||
void LightSourcePosition(vec3 WorldPos, vec3 CameraPos, inout vec3 Pos1, inout vec3 Pos2){
|
void LightSourcePosition(vec3 WorldPos, vec3 CameraPos, inout vec3 Pos1, inout vec3 Pos2){
|
||||||
|
|
||||||
Pos1 = WorldPos - vec3(0,200,0);
|
Pos1 = WorldPos - vec3(0,200,0);
|
||||||
|
// Pos2 = WorldPos - vec3(-50,100,0);
|
||||||
|
// Pos1 = mix(Pos1, Pos2, OneOrZero);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
vec3 Origin = WorldPos - CameraPos - ManualLightPos;
|
vec3 Origin = WorldPos - CameraPos - ManualLightPos;
|
||||||
|
|
||||||
|
|
||||||
float cellSize = 200;
|
float cellSize = 200;
|
||||||
vec3 cellPos = CameraPos ;
|
vec3 cellPos = CameraPos ;
|
||||||
|
|
||||||
@ -82,6 +89,7 @@ void LightSourcePosition(vec3 WorldPos, vec3 CameraPos, inout vec3 Pos1, inout v
|
|||||||
|
|
||||||
Origin -= (randomPos * 2.0 - 1.0);
|
Origin -= (randomPos * 2.0 - 1.0);
|
||||||
|
|
||||||
|
// Pos1 = mix(Pos1, Origin, OneOrZero);
|
||||||
|
|
||||||
Pos2 = Origin;
|
Pos2 = Origin;
|
||||||
}
|
}
|
||||||
@ -169,8 +177,12 @@ float EndLightMie(vec3 LightPos){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void LightSourceColors(inout vec3 Color1, inout vec3 Color2){
|
void LightSourceColors(inout vec3 Color1, inout vec3 Color2){
|
||||||
Color1 = vec3(0.7,0.88,1.0);
|
// Color1 = vec3(0.7,0.88,1.0);
|
||||||
Color2 = vec3(ORB_R,ORB_G,ORB_B);
|
// Color2 = vec3(ORB_R,ORB_G,ORB_B);
|
||||||
|
Color1 = vec3(1.0,0.5,1.0);
|
||||||
|
Color2 = vec3(0.0,0.5,1.0);
|
||||||
|
|
||||||
|
// Color1 = mix(Color1, Color2, OneOrZero);
|
||||||
}
|
}
|
||||||
|
|
||||||
vec3 LightSourceLighting( vec3 WorldPos, vec3 LightPos, float Dither, float VolumeDensity, vec3 LightColor, float Phase ){
|
vec3 LightSourceLighting( vec3 WorldPos, vec3 LightPos, float Dither, float VolumeDensity, vec3 LightColor, float Phase ){
|
||||||
@ -178,7 +190,10 @@ vec3 LightSourceLighting( vec3 WorldPos, vec3 LightPos, float Dither, float Volu
|
|||||||
float Mie = EndLightMie(LightPos);
|
float Mie = EndLightMie(LightPos);
|
||||||
float Shadow = 0.0;
|
float Shadow = 0.0;
|
||||||
|
|
||||||
|
// vec3 shadowSamplePos = WorldPos - LightPos * 0.05;
|
||||||
|
|
||||||
for (int j=0; j < 3; j++){
|
for (int j=0; j < 3; j++){
|
||||||
|
// shadowSamplePos -= LightPos * 0.25 * Dither * min(j,1);
|
||||||
vec3 shadowSamplePos = WorldPos - LightPos * (0.05 + j * (0.25 + Dither*0.15));
|
vec3 shadowSamplePos = WorldPos - LightPos * (0.05 + j * (0.25 + Dither*0.15));
|
||||||
Shadow += cloudVol(shadowSamplePos);
|
Shadow += cloudVol(shadowSamplePos);
|
||||||
}
|
}
|
||||||
@ -254,6 +269,7 @@ vec4 GetVolumetricFog(
|
|||||||
LightSourcePosition(progressW, cameraPosition, LightPos1, LightPos2);
|
LightSourcePosition(progressW, cameraPosition, LightPos1, LightPos2);
|
||||||
|
|
||||||
float VolumeDensity = max(cloudVol(progressW),0.0);
|
float VolumeDensity = max(cloudVol(progressW),0.0);
|
||||||
|
// float VolumeDensity = 0.0;
|
||||||
float Density = max(VolumeDensity,0.0);
|
float Density = max(VolumeDensity,0.0);
|
||||||
|
|
||||||
|
|
||||||
@ -269,7 +285,7 @@ vec4 GetVolumetricFog(
|
|||||||
vec3 Light1 = vec3(0); vec3 Light2 = vec3(0);
|
vec3 Light1 = vec3(0); vec3 Light2 = vec3(0);
|
||||||
|
|
||||||
|
|
||||||
// Density += clamp((1.0 - length(LightPos1) / 10.0) * 10 ,0.0,1.0); // THE ORRRRRRRRRRRRRRRRRRRRRRRRRRB
|
Density += clamp((1.0 - length(LightPos1) / 10.0) * 10 ,0.0,1.0); // THE ORRRRRRRRRRRRRRRRRRRRRRRRRRB
|
||||||
Light1 = LightSourceLighting(progressW, LightPos1, dither2, VolumeDensity, LightCol1, Phase1);
|
Light1 = LightSourceLighting(progressW, LightPos1, dither2, VolumeDensity, LightCol1, Phase1);
|
||||||
|
|
||||||
#if lightsourceCount == 2
|
#if lightsourceCount == 2
|
||||||
|
@ -165,7 +165,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 RainFog_amount 3 // [0 1 2 3 4 5 6 7 8 9 10 15 20 25]
|
||||||
|
|
||||||
#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 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 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 5.0 6.0 7.0 8.0 9.0 10.0 15.0 20.0 25.0 50.0 75.0 100.0]
|
||||||
|
|
||||||
#define Cave_fog
|
#define Cave_fog
|
||||||
#define CaveFogFallOff 2.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 CaveFogFallOff 2.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 ]
|
||||||
|
@ -261,6 +261,8 @@ vec4 renderClouds(
|
|||||||
|
|
||||||
|
|
||||||
#ifdef Cumulus
|
#ifdef Cumulus
|
||||||
|
|
||||||
|
|
||||||
for(int i=0;i<maxIT_clouds;i++) {
|
for(int i=0;i<maxIT_clouds;i++) {
|
||||||
|
|
||||||
// IntersecTerrain = length(progress_view - cameraPosition) > lViewPosM;
|
// IntersecTerrain = length(progress_view - cameraPosition) > lViewPosM;
|
||||||
|
@ -36,16 +36,12 @@ program.composite4.enabled = TAA_UPSCALING
|
|||||||
|
|
||||||
blend.gbuffers_water = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
|
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_MINUS_DST_ALPHA ONE
|
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 = 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_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_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_basic = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
|
||||||
blend.gbuffers_armor_glint = ONE ONE ONE ONE
|
blend.gbuffers_armor_glint = ONE ONE ONE ONE
|
||||||
blend.gbuffers_weather = ONE ONE ONE ONE
|
blend.gbuffers_weather = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
|
||||||
blend.gbuffers_skytextured = ONE ONE ONE ONE
|
blend.gbuffers_skytextured = ONE ONE ONE ONE
|
||||||
blend.gbuffers_damagedblock = ONE ONE ONE ONE
|
blend.gbuffers_damagedblock = ONE ONE ONE ONE
|
||||||
|
|
||||||
@ -61,13 +57,13 @@ blend.composite.colortex12 = off
|
|||||||
# Alpha test
|
# Alpha test
|
||||||
alphaTest.shadow = GREATER 0.1
|
alphaTest.shadow = GREATER 0.1
|
||||||
alphaTest.gbuffers_entities = GREATER 0.1
|
alphaTest.gbuffers_entities = GREATER 0.1
|
||||||
|
alphaTest.gbuffers_hand = true
|
||||||
|
|
||||||
alphaTest.gbuffers_armor_glint=false
|
alphaTest.gbuffers_armor_glint=false
|
||||||
alphaTest.gbuffers_weather=false
|
alphaTest.gbuffers_weather=false
|
||||||
alphaTest.gbuffers_water=false
|
alphaTest.gbuffers_water=false
|
||||||
alphaTest.gbuffers_skybasic=false
|
alphaTest.gbuffers_skybasic=false
|
||||||
alphaTest.gbuffers_skytextured=false
|
alphaTest.gbuffers_skytextured=false
|
||||||
alphaTest.gbuffers_hand=true
|
|
||||||
|
|
||||||
|
|
||||||
sliders = 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 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 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 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 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 = 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 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 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 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 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
|
||||||
|
Loading…
Reference in New Issue
Block a user