mirror of
https://github.com/Merlin1809/Eclipse-Shader.git
synced 2026-10-10 13:03:06 +08:00
change default clouds to be more similar to bliss, fix some stuff, add pixelization setting
This commit is contained in:
@@ -1130,8 +1130,8 @@ block.500=minecraft:end_portal
|
||||
block.501=minecraft:acacia_sign minecraft:bamboo_sign minecraft:birch_sign minecraft:cherry_sign minecraft:crimson_sign minecraft:dark_oak_sign minecraft:jungle_sign minecraft:mangrove_sign minecraft:oak_sign minecraft:pale_oak_sign minecraft:spruce_sign minecraft:warped_sign minecraft:acacia_wall_sign minecraft:bamboo_wall_sign minecraft:birch_wall_sign minecraft:cherry_wall_sign minecraft:crimson_wall_sign minecraft:dark_oak_wall_sign minecraft:jungle_wall_sign minecraft:mangrove_wall_sign minecraft:oak_wall_sign minecraft:pale_oak_wall_sign minecraft:spruce_wall_sign minecraft:warped_wall_sign
|
||||
|
||||
# glowing ores
|
||||
block.502= emerald_ore deepslate_emerald_ore gold_ore deepslate_gold_ore iron_ore deepslate_iron_ore diamond_ore deepslate_diamond_ore redstone_ore deepslate_redstone_ore copper_ore deepslate_copper_ore lapis_ore deepslate_lapis_ore coal_ore deepslate_coal_ore nether_quartz_ore nether_gold_ore \
|
||||
block.502=emerald_ore deepslate_emerald_ore gold_ore deepslate_gold_ore iron_ore deepslate_iron_ore diamond_ore deepslate_diamond_ore redstone_ore deepslate_redstone_ore copper_ore deepslate_copper_ore lapis_ore deepslate_lapis_ore coal_ore deepslate_coal_ore nether_quartz_ore nether_gold_ore \
|
||||
create:zinc_ore create:deepslate_zinc_ore
|
||||
|
||||
## blocks where shader grass should is taller around, basically just full building blocks
|
||||
block.503= mycelium dirt_path clay mud farmland crimson_nylium warped_nylium dripstone_block calcite soul_soil soul_sand calcite obsidian bedrock beehive lodestone barrel respawn_anchor infested_deepslate infested_cobblestone infested_stone ancient_debris raw_iron_block raw_gold_block raw_copper_block muddy_mangrove_roots bone_block waxed_oxidized_cut_copper waxed_oxidized_chiseled_copper waxed_oxidized_copper waxed_weathered_cut_copper waxed_weathered_chiseled_copper waxed_weathered_copper waxed_exposed_cut_copper waxed_exposed_chiseled_copper waxed_exposed_copper waxed_chiseled_copper waxed_cut_copper waxed_copper_block oxidized_cut_copper oxidized_chiseled_copper oxidized_copper weathered_cut_copper weathered_chiseled_copper weathered_copper exposed_cut_copper exposed_chiseled_copper exposed_copper chiseled_copper cut_copper copper_block iron_block emerald_block gold_block diamond_block lapis_block netherite_block coal_block basalt smooth_basalt polished_basalt purpur_block purpur_pillar prismarine dark_prismarine blackstone gilded_blackstone polished_blackstone chiseled_polished_blackstone red_sandstone chiseled_sandstone chiseled_red_sandstone smooth_sandstone smooth_red_sandstone cut_sandstone cut_red_sandstone chiseled_tuff polished_tuff reinforced_deepslate chiseled_deepslate polished_deepslate deepslate_tiles cracked_deepslate_tiles tuff andesite polished_andesite diorite polished_diorite granite polished_granite quartz_block chiseled_quartz_block quartz_pillar smooth_quartz quartz_bricks infested_stone_bricks infested_cracked_stone_bricks infested_mossy_stone_bricks infested_chiseled_stone_bricks polished_blackstone_bricks cracked_polished_blackstone_bricks end_stone end_stone_bricks deepslate_bricks cracked_deepslate_bricks tuff_bricks chiseled_tuff_bricks mud_bricks prismarine_bricks nether_bricks cracked_nether_bricks chiseled_nether_bricks red_nether_bricks netherrack bricks smooth_stone stone_bricks cracked_stone_bricks mossy_stone_bricks chiseled_stone_bricks mossy_cobblestone rooted_dirt coarse_dirt podzol gravel suspicious_gravel stone cobblestone sandstone deepslate cobbled_deepslate dirt oak_planks oak_log stripped_oak_log oak_wood stripped_oak_wood acacia_planks acacia_log stripped_acacia_log acacia_wood stripped_acacia_wood birch_planks birch_log stripped_birch_log brich_wood stripped_brich_wood spruce_planks spruce_log stripped_spruce_log spruce_wood stripped_spruce_wood dark_oak_planks dark_oak_log stripped_dark_oak_log dark_oak_wood stripped_dark_oak_wood jungle_planks jungle_log stripped_jungle_log jungel_wood stripped_jungel_wood mangrove_planks mangrove_log stripped_mangrove_log mangrove_wood stripped_mangrove_wood cherry_planks cherry_log stripped_cherry_log cherry_wood stripped_cherry_wood warped_planks warped_stem stripped_warped_stem warped_hyphae stripped_warped_hyphae crimson_planks crimson_stem stripped_crimson_stem crimson_hyphae stripped_crimson_hyphae bamboo_planks bamboo_block stripped_bamboo_block bamboo_mosaic
|
||||
block.503=mycelium dirt_path clay mud farmland crimson_nylium warped_nylium dripstone_block calcite soul_soil soul_sand calcite obsidian bedrock beehive lodestone barrel respawn_anchor infested_deepslate infested_cobblestone infested_stone ancient_debris raw_iron_block raw_gold_block raw_copper_block muddy_mangrove_roots bone_block waxed_oxidized_cut_copper waxed_oxidized_chiseled_copper waxed_oxidized_copper waxed_weathered_cut_copper waxed_weathered_chiseled_copper waxed_weathered_copper waxed_exposed_cut_copper waxed_exposed_chiseled_copper waxed_exposed_copper waxed_chiseled_copper waxed_cut_copper waxed_copper_block oxidized_cut_copper oxidized_chiseled_copper oxidized_copper weathered_cut_copper weathered_chiseled_copper weathered_copper exposed_cut_copper exposed_chiseled_copper exposed_copper chiseled_copper cut_copper copper_block iron_block emerald_block gold_block diamond_block lapis_block netherite_block coal_block basalt smooth_basalt polished_basalt purpur_block purpur_pillar prismarine dark_prismarine blackstone gilded_blackstone polished_blackstone chiseled_polished_blackstone red_sandstone chiseled_sandstone chiseled_red_sandstone smooth_sandstone smooth_red_sandstone cut_sandstone cut_red_sandstone chiseled_tuff polished_tuff reinforced_deepslate chiseled_deepslate polished_deepslate deepslate_tiles cracked_deepslate_tiles tuff andesite polished_andesite diorite polished_diorite granite polished_granite quartz_block chiseled_quartz_block quartz_pillar smooth_quartz quartz_bricks infested_stone_bricks infested_cracked_stone_bricks infested_mossy_stone_bricks infested_chiseled_stone_bricks polished_blackstone_bricks cracked_polished_blackstone_bricks end_stone end_stone_bricks deepslate_bricks cracked_deepslate_bricks tuff_bricks chiseled_tuff_bricks mud_bricks prismarine_bricks nether_bricks cracked_nether_bricks chiseled_nether_bricks red_nether_bricks netherrack bricks smooth_stone stone_bricks cracked_stone_bricks mossy_stone_bricks chiseled_stone_bricks mossy_cobblestone rooted_dirt coarse_dirt podzol gravel suspicious_gravel stone cobblestone sandstone deepslate cobbled_deepslate dirt oak_planks oak_log stripped_oak_log oak_wood stripped_oak_wood acacia_planks acacia_log stripped_acacia_log acacia_wood stripped_acacia_wood birch_planks birch_log stripped_birch_log brich_wood stripped_brich_wood spruce_planks spruce_log stripped_spruce_log spruce_wood stripped_spruce_wood dark_oak_planks dark_oak_log stripped_dark_oak_log dark_oak_wood stripped_dark_oak_wood jungle_planks jungle_log stripped_jungle_log jungel_wood stripped_jungel_wood mangrove_planks mangrove_log stripped_mangrove_log mangrove_wood stripped_mangrove_wood cherry_planks cherry_log stripped_cherry_log cherry_wood stripped_cherry_wood warped_planks warped_stem stripped_warped_stem warped_hyphae stripped_warped_hyphae crimson_planks crimson_stem stripped_crimson_stem crimson_hyphae stripped_crimson_hyphae bamboo_planks bamboo_block stripped_bamboo_block bamboo_mosaic
|
||||
@@ -284,7 +284,6 @@ float ld(float dist) {
|
||||
float luma(vec3 color) {
|
||||
return dot(color,vec3(0.21, 0.72, 0.07));
|
||||
}
|
||||
uniform vec3 eyePosition;
|
||||
|
||||
#if defined DISTANT_HORIZONS && DH_CHUNK_FADING > 0
|
||||
float R2_dither(){
|
||||
|
||||
@@ -466,8 +466,6 @@ void Emission(
|
||||
if( Emission < 254.5/255.0) Lighting = mix(Lighting, Albedo * 5.0 * Emissive_Brightness, pow(Emission, Emissive_Curve));
|
||||
}
|
||||
|
||||
uniform vec3 eyePosition;
|
||||
|
||||
//////////////////////////////VOID MAIN//////////////////////////////
|
||||
//////////////////////////////VOID MAIN//////////////////////////////
|
||||
//////////////////////////////VOID MAIN//////////////////////////////
|
||||
|
||||
@@ -465,11 +465,13 @@ vec2 SSRT_Shadows(vec3 viewPos, bool depthCheck, vec3 lightDir, float noise, boo
|
||||
float SSS = 0.0;
|
||||
|
||||
float _near = near; float _far = far*4.0;
|
||||
|
||||
|
||||
#if defined DISTANT_HORIZONS || defined VOXY
|
||||
if (depthCheck) {
|
||||
_near = dhVoxyNearPlane;
|
||||
_far = dhVoxyFarPlane;
|
||||
}
|
||||
#endif
|
||||
|
||||
vec3 position = toClipSpace3_DH(viewPos, depthCheck) ;
|
||||
|
||||
@@ -492,11 +494,16 @@ vec2 SSRT_Shadows(vec3 viewPos, bool depthCheck, vec3 lightDir, float noise, boo
|
||||
|
||||
for (int i = 0; i < int(samples); i++) {
|
||||
|
||||
float sampleDepth = convertHandDepth_2(texelFetch2D(depthtex1, ivec2(newPos.xy/texelSize),0).x,hand);
|
||||
float sampleDepth;
|
||||
|
||||
#if defined DISTANT_HORIZONS || defined VOXY
|
||||
if(depthCheck) sampleDepth = texelFetch2D(dhVoxyDepthTex1, ivec2(newPos.xy/texelSize),0).x;
|
||||
if(depthCheck) {
|
||||
sampleDepth = texelFetch2D(dhVoxyDepthTex1, ivec2(newPos.xy/texelSize),0).x;
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
sampleDepth = convertHandDepth_2(texelFetch2D(depthtex1, ivec2(newPos.xy/texelSize),0).x,hand);
|
||||
}
|
||||
|
||||
if(sampleDepth < newPos.z){
|
||||
float linearCurrentPos = swapperlinZ(newPos.z, _near, _far);
|
||||
@@ -555,12 +562,16 @@ float SSRT_FlashLight_Shadows(vec3 viewPos, bool depthCheck, vec3 lightDir, floa
|
||||
|
||||
|
||||
for (int i = 0; i < int(samples); i++) {
|
||||
|
||||
float samplePos = texelFetch2D(depthtex2, ivec2(newPos.xy/texelSize).xy,0).x;
|
||||
float samplePos;
|
||||
|
||||
#if defined DISTANT_HORIZONS || defined VOXY
|
||||
if(depthCheck) samplePos = texelFetch2D(dhVoxyDepthTex1, ivec2(newPos.xy/texelSize),0).x;
|
||||
if(depthCheck) {
|
||||
samplePos = texelFetch2D(dhVoxyDepthTex1, ivec2(newPos.xy/texelSize),0).x;
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
samplePos = texelFetch2D(depthtex2, ivec2(newPos.xy/texelSize),0).x,hand;
|
||||
}
|
||||
|
||||
if(samplePos < newPos.z && samplePos > 0.0){// && (samplePos <= max(minZ,maxZ) && samplePos >= min(minZ,maxZ))){
|
||||
shadows = 0.0;
|
||||
@@ -882,7 +893,7 @@ uniform float wetness;
|
||||
#endif
|
||||
}
|
||||
|
||||
roughness = mix(roughness, 0.5*(1+snowR), wetnessStages * Puddle_Reflection_Sharpness);
|
||||
roughness = mix(roughness, 0.5*(1.0+snowR), wetnessStages * Puddle_Reflection_Sharpness);
|
||||
|
||||
if(f0 < 229.5/255.0 ) albedo = pow(albedo * (1.0 - 0.08*wetnessStages), vec3(1.0 + 0.7*wetnessStages));
|
||||
}
|
||||
|
||||
@@ -32,6 +32,10 @@ uniform float viewWidth;
|
||||
uniform float aspectRatio;
|
||||
uniform vec3 relativeEyePosition;
|
||||
|
||||
#ifdef PIXELATED
|
||||
uniform vec2 view_res;
|
||||
#endif
|
||||
|
||||
uniform int hideGUI;
|
||||
|
||||
uniform vec3 previousCameraPosition;
|
||||
@@ -95,7 +99,7 @@ void doCameraGridLines(inout vec3 color, vec2 UV){
|
||||
|
||||
vec3 doMotionBlur(vec2 texcoord, float depth, float noise, bool hand){
|
||||
|
||||
float samples = 4.0;
|
||||
const float samples = 4.0;
|
||||
vec3 color = vec3(0.0);
|
||||
|
||||
float blurMult = 1.0;
|
||||
@@ -151,12 +155,14 @@ void main() {
|
||||
|
||||
float noise = blueNoise();
|
||||
|
||||
#ifdef MOTION_BLUR
|
||||
#if defined MOTION_BLUR
|
||||
float depth = texture2D(depthtex0, texcoord*RENDER_SCALE).r;
|
||||
bool hand = depth < 0.56;
|
||||
float depth2 = convertHandDepth_2(depth, hand);
|
||||
|
||||
vec3 COLOR = doMotionBlur(texcoord, depth2, noise, hand);
|
||||
#elif defined PIXELATED
|
||||
vec3 COLOR = texelFetch(colortex7, ivec2(gl_FragCoord.xy)-ivec2(mod(gl_FragCoord.xy, PIXELIZATION_STRENGTH)),0).rgb;
|
||||
#else
|
||||
vec3 COLOR = texture2D(colortex7,texcoord).rgb;
|
||||
#endif
|
||||
@@ -166,6 +172,10 @@ void main() {
|
||||
applyGameplayEffects(COLOR, texcoord, noise);
|
||||
#endif
|
||||
|
||||
#if MAX_COLORS_PER_CHANNEL > 1
|
||||
COLOR = floor(COLOR*(MAX_COLORS_PER_CHANNEL-1))/(MAX_COLORS_PER_CHANNEL-1);
|
||||
#endif
|
||||
|
||||
#ifdef FILM_GRAIN
|
||||
// basic film grain implementation from https://www.shadertoy.com/view/4sXSWs slightly edited
|
||||
float x = (texcoord.x + 4.0 ) * (texcoord.y + 4.0 ) * (frameTimeCounter * 10.0);
|
||||
|
||||
@@ -31,7 +31,7 @@ void main() {
|
||||
if (abs(frameTimeCounter - lastFrameTimeCount) > WATER_SIM_FRAMETIME) {
|
||||
float playerTallness = 1.5;
|
||||
if(is_sneaking) playerTallness = 1.2;
|
||||
#if !defined IS_LPV_ENABLED
|
||||
#if !defined IS_LPV_ENABLED && !defined SHADER_GRASS
|
||||
vec3 rayStart = vec3(0.0);
|
||||
#else
|
||||
vec3 rayStart = vec3(-relativeEyePosition);
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
"worldTime",
|
||||
"moonElevation",
|
||||
"worldTimeSmooth",
|
||||
#if CUMULONIMBUS > 0
|
||||
#if CUMULONIMBUS == 1
|
||||
"cumulonimbusStrength",
|
||||
#endif
|
||||
"framemod4_DH",
|
||||
|
||||
+22
-5
@@ -1,6 +1,6 @@
|
||||
option.SHADER_VERSION_LABEL = §d§lECLIPSE§r - A Bliss Edit
|
||||
prefix.SHADER_VERSION_LABEL = V
|
||||
value.SHADER_VERSION_LABEL.482 = 5.1.4
|
||||
value.SHADER_VERSION_LABEL.482 = 5.2.0
|
||||
|
||||
# if you're here to translate, this is not a joke, these do what they say
|
||||
profile.POTATO=§4Potato
|
||||
@@ -92,6 +92,8 @@ option.STARS_AMOUNT = Stars Amount
|
||||
option.STARS_BRIGHTNESS = Stars Brightness
|
||||
screen.Misc_Settings = Other Settings
|
||||
screen.EXPERIMENTAL_STUFF = Experimental Stuff
|
||||
value.MAX_COLORS_PER_CHANNEL.0 = Unlimited
|
||||
|
||||
screen.DEBUG_STUFF = §cDebug Settings§r
|
||||
screen.LEGACY_STUFF = Legacy Settings
|
||||
screen.Mod_support = Settings For Supported Mods
|
||||
@@ -883,11 +885,17 @@ option.DOF_QUALITY=Depth Of Field
|
||||
value.DOF_QUALITY.2=Medium
|
||||
value.DOF_QUALITY.3=High
|
||||
value.DOF_QUALITY.4=Ultra
|
||||
value.DOF_QUALITY.5=Jitter
|
||||
value.DOF_QUALITY.5=Jitter §aDISABLE AUTOFOCUS & ENABLE SCREENSHOT MODE §c(VOXY NOT SUPPORTED!)
|
||||
option.MANUAL_FOCUS=Focus
|
||||
option.DOF_ANAMORPHIC_RATIO=Anamorphic Ratio
|
||||
value.MANUAL_FOCUS.-2=Autofocus
|
||||
value.MANUAL_FOCUS.-2=Auto-Focus
|
||||
value.MANUAL_FOCUS.-1=Brightness Slider
|
||||
option.focal = Focal Length
|
||||
option.fstop = F-Stop
|
||||
option.DoF_Adaptation_Speed = Auto-Focusing Speed
|
||||
option.FAR_BLUR_ONLY = Disable Blur Near Camera
|
||||
option.REMOVE_HAND_BLUR = Disable Blur On Player Hand
|
||||
option.DOF_DISPERSION_MULT = Chromatic Aberration Offset
|
||||
|
||||
screen.JITTER_DOF=Jitter DOF Settings
|
||||
option.JITTER_STRENGTH=Jitter Strength
|
||||
@@ -909,7 +917,7 @@ option.AEROCHROME_WOOL_ENABLED.comment = Technically wool things should be affec
|
||||
|
||||
option.EMISSIVE_ORES = Emissive Ores
|
||||
option.EMISSIVE_ORES_STRENGTH = Emissive Ores Brightness
|
||||
option.PLANET_CURVATURE = Planet Curvature §c(Voxy not supported!)
|
||||
option.PLANET_CURVATURE = Planet Curvature §c(VOXY NOT SUPPORTED!)
|
||||
option.CURVATURE_AMOUNT = Curvature Amount
|
||||
|
||||
screen.selection_box_outline = Selection Box Outline
|
||||
@@ -1218,4 +1226,13 @@ option.TAA_MODE.comment = §bStandard:§r has the best antialiasing ability - us
|
||||
option.MOTION_BLUR.comment = §bWhat is this?§r This effect makes the entire screen blur in whatever direction you move the camera, or wherever you move within the world. §aPERFORMANCE COST:§r very low
|
||||
option.CHROMATIC_ABERRATION.comment = §bWhat is this?§r This effect makes the edges of the screen have a color shift of red and blue. §aPERFORMANCE COST:§r very very low
|
||||
option.VIGNETTE.comment = §bWhat is this?§r This effect makes the edges of the screen increasingly dark the closer to the edges it gets. §aPERFORMANCE COST:§r very very low
|
||||
option.TONEMAP.comment = §bWhat is this?§r This fits the internal HDR or whatever range of color the shader is doing, to look nice on your SDR monitor. it will control general color processing - the contrast, saturation, white point, black point, hue shift, path to white, ect - each one has a different look
|
||||
option.TONEMAP.comment = §bWhat is this?§r This fits the internal HDR or whatever range of color the shader is doing, to look nice on your SDR monitor. it will control general color processing - the contrast, saturation, white point, black point, hue shift, path to white, ect - each one has a different look
|
||||
option.DOF_QUALITY.comment= §bWhat is this?§r This is the "un-focus" blur in the background and foreground when a camera focuses its lense on something, sometimes referred to as "bokeh". §aPERFORMANCE COST:§r low to high
|
||||
option.MANUAL_FOCUS.comment= §bWhat is this?§r control how the camera lense focuses. "Auto-Focus" will focus on what you look at. "brightness Slider" lets you manually focus using the brightness setting in video settings. "Manual Focus" only focuses on a fixed point some distance away from the camera in meters.
|
||||
option.DOF_ANAMORPHIC_RATIO.comment= §bWhat is this?§r This is a recreation of the Anamorphic lense distorion, where it will stretch the out of focus/bokeh.
|
||||
option.focal.comment =
|
||||
option.aperture.comment =
|
||||
option.DoF_Adaptation_Speed.comment = §bWhat is this?§r This controls how quickly auto focus adjusts to where you are looking.
|
||||
option.FAR_BLUR_ONLY.comment = §bWhat is this?§r make it such that it cannot do an unfocus blur on objects near you, only objects far away.
|
||||
option.REMOVE_HAND_BLUR.comment = §bWhat is this?§r remove all blurring on your hand.
|
||||
option.DOF_DISPERSION_MULT.comment = §bWhat is this?§r This adds a color offset for red and blue, for a cool effect.
|
||||
@@ -1,6 +1,6 @@
|
||||
option.SHADER_VERSION_LABEL = §d§lECLIPSE§r - Bliss 编辑版
|
||||
prefix.SHADER_VERSION_LABEL = 版本
|
||||
value.SHADER_VERSION_LABEL.482 = 5.1.4
|
||||
value.SHADER_VERSION_LABEL.482 = 5.2.0
|
||||
|
||||
# 如果你是来翻译的,这不是玩笑,这些选项的功能正如其名
|
||||
profile.POTATO=§4土豆 (极低配置)
|
||||
|
||||
@@ -47,11 +47,16 @@
|
||||
|
||||
for (int i = 0; i < int(samples); i++) {
|
||||
|
||||
float samplePos = texelFetch2D(depthtex2, ivec2(newPos.xy/texelSize).xy,0).x;
|
||||
|
||||
float samplePos;
|
||||
|
||||
#if defined DISTANT_HORIZONS || defined VOXY
|
||||
if(depthCheck) samplePos = texelFetch2D(dhVoxyDepthTex1, ivec2(newPos.xy/texelSize),0).x;
|
||||
if(depthCheck) {
|
||||
samplePos = texelFetch2D(dhVoxyDepthTex1, ivec2(newPos.xy/texelSize),0).x;
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
samplePos = texelFetch2D(depthtex2, ivec2(newPos.xy/texelSize),0).x,hand;
|
||||
}
|
||||
|
||||
if(samplePos < newPos.z && samplePos > 0.0){// && (samplePos <= max(minZ,maxZ) && samplePos >= min(minZ,maxZ))){
|
||||
shadows = 0.0;
|
||||
|
||||
@@ -99,7 +99,13 @@ void applyGameplayEffects(inout vec3 color, in vec2 texcoord, float noise){
|
||||
//////////////////////// APPLY DISTORTION /////////////////////
|
||||
// all of the distortion will be based around zooming the UV in the center
|
||||
vec2 zoomUV = 0.5 + (texcoord - 0.5) * (1.0 - distortmask);
|
||||
vec3 distortedColor = texture2D(colortex7, zoomUV).rgb;
|
||||
|
||||
#ifndef PIXELATED
|
||||
vec3 distortedColor = texture2D(colortex7, zoomUV).rgb;
|
||||
#else
|
||||
vec2 fragCoord = zoomUV*view_res;
|
||||
vec3 distortedColor = texelFetch(colortex7, ivec2(fragCoord)-ivec2(mod(fragCoord, PIXELIZATION_STRENGTH)), 0).rgb;
|
||||
#endif
|
||||
|
||||
#if defined WATER_ON_CAMERA_EFFECT || defined ON_FIRE_DISTORT_EFFECT
|
||||
// apply the distorted water color to the scene, but revert back to before when it ends
|
||||
|
||||
+19
-10
@@ -472,21 +472,21 @@ uniform vec3 unsigned_WmoonVecSmooth;
|
||||
#define CLOUD_SAMPLE_MULTIPLIER 1.0 // [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 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 15.0]
|
||||
|
||||
#define CloudLayer0
|
||||
#define CloudLayer0_coverage 0.9 // [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.8 // [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 500.0 // [-300.0 -290.0 -280.0 -270.0 -260.0 -250.0 -240.0 -230.0 -220.0 -210.0 -200.0 -190.0 -180.0 -170.0 -160.0 -150.0 -140.0 -130.0 -120.0 -110.0 -100.0 -90.0 -80.0 -70.0 -60.0 -50.0 -40.0 -30.0 -20.0 -10.0 0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 110.0 120.0 130.0 140.0 150.0 160.0 170.0 180.0 190.0 200.0 210.0 220.0 230.0 240.0 250.0 260.0 270.0 280.0 290.0 300.0 310.0 320.0 330.0 340.0 350.0 360.0 370.0 380.0 390.0 400.0 410.0 420.0 430.0 440.0 450.0 460.0 470.0 480.0 490.0 500.0 510.0 520.0 530.0 540.0 550.0 560.0 570.0 580.0 590.0 600.0 700.0 800.0 900.0 1000.0 1250.0 1500.0 1750.0 2000.0 2250.0 2500.0 2750.0 3000.0 4000.0 5000.0]
|
||||
#define CloudLayer0_tallness 180.0 // [0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 110.0 120.0 130.0 140.0 150.0 160.0 170.0 180.0 190.0 200.0 210.0 220.0 230.0 240.0 250.0 260.0 270.0 280.0 290.0 300.0 310.0 320.0 330.0 340.0 350.0 360.0 370.0 380.0 390.0 400.0 410.0 420.0 430.0 440.0 450.0 460.0 470.0 480.0 490.0 500.0 510.0 520.0 530.0 540.0 550.0 560.0 570.0 580.0 590.0 600.0 700.0 800.0 900.0 1000.0 1250.0 1500.0 1750.0 2000.0 2250.0 2500.0 2750.0 3000.0 4000.0 5000.0]
|
||||
#define CloudLayer0_coverage 1.0 // [0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0]
|
||||
#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.0 // [-300.0 -290.0 -280.0 -270.0 -260.0 -250.0 -240.0 -230.0 -220.0 -210.0 -200.0 -190.0 -180.0 -170.0 -160.0 -150.0 -140.0 -130.0 -120.0 -110.0 -100.0 -90.0 -80.0 -70.0 -60.0 -50.0 -40.0 -30.0 -20.0 -10.0 0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 110.0 120.0 130.0 140.0 150.0 160.0 170.0 180.0 190.0 200.0 210.0 220.0 230.0 240.0 250.0 260.0 270.0 280.0 290.0 300.0 310.0 320.0 330.0 340.0 350.0 360.0 370.0 380.0 390.0 400.0 410.0 420.0 430.0 440.0 450.0 460.0 470.0 480.0 490.0 500.0 510.0 520.0 530.0 540.0 550.0 560.0 570.0 580.0 590.0 600.0 700.0 800.0 900.0 1000.0 1250.0 1500.0 1750.0 2000.0 2250.0 2500.0 2750.0 3000.0 4000.0 5000.0]
|
||||
#define CloudLayer0_tallness 130.0 // [0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 110.0 120.0 130.0 140.0 150.0 160.0 170.0 180.0 190.0 200.0 210.0 220.0 230.0 240.0 250.0 260.0 270.0 280.0 290.0 300.0 310.0 320.0 330.0 340.0 350.0 360.0 370.0 380.0 390.0 400.0 410.0 420.0 430.0 440.0 450.0 460.0 470.0 480.0 490.0 500.0 510.0 520.0 530.0 540.0 550.0 560.0 570.0 580.0 590.0 600.0 700.0 800.0 900.0 1000.0 1250.0 1500.0 1750.0 2000.0 2250.0 2500.0 2750.0 3000.0 4000.0 5000.0]
|
||||
#define CloudLayer0_scale 1.0 // [0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0]
|
||||
#define CloudLayer0_detail 600.0 // [100.0 150.0 200.0 250.0 300.0 350.0 400.0 450.0 500.0 550.0 600.0 650.0 700.0 750.0]
|
||||
#define CloudLayer0_distance 100000.0 // [1000.0 5000.0 10000.0 20000.0 30000.0 40000.0 50000.0 60000.0 70000.0 80000.0 90000.0 100000.0 110000.0 120000.0 130000.0 140000.0 150000.0 160000.0 170000.0 180000.0 190000.0 200000.0 250000.0 300000.0 350000.0 400000.0 450000.0 500000.0]
|
||||
|
||||
#define CloudLayer1
|
||||
#define CloudLayer1_coverage 0.9 // [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.8 // [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 800.0 // [-300.0 -290.0 -280.0 -270.0 -260.0 -250.0 -240.0 -230.0 -220.0 -210.0 -200.0 -190.0 -180.0 -170.0 -160.0 -150.0 -140.0 -130.0 -120.0 -110.0 -100.0 -90.0 -80.0 -70.0 -60.0 -50.0 -40.0 -30.0 -20.0 -10.0 0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 110.0 120.0 130.0 140.0 150.0 160.0 170.0 180.0 190.0 200.0 210.0 220.0 230.0 240.0 250.0 260.0 270.0 280.0 290.0 300.0 310.0 320.0 330.0 340.0 350.0 360.0 370.0 380.0 390.0 400.0 410.0 420.0 430.0 440.0 450.0 460.0 470.0 480.0 490.0 500.0 510.0 520.0 530.0 540.0 550.0 560.0 570.0 580.0 590.0 600.0 700.0 800.0 900.0 1000.0 1250.0 1500.0 1750.0 2000.0 2250.0 2500.0 2750.0 3000.0 4000.0 5000.0]
|
||||
#define CloudLayer1_tallness 300.0 // [0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 110.0 120.0 130.0 140.0 150.0 160.0 170.0 180.0 190.0 200.0 210.0 220.0 230.0 240.0 250.0 260.0 270.0 280.0 290.0 300.0 310.0 320.0 330.0 340.0 350.0 360.0 370.0 380.0 390.0 400.0 410.0 420.0 430.0 440.0 450.0 460.0 470.0 480.0 490.0 500.0 510.0 520.0 530.0 540.0 550.0 560.0 570.0 580.0 590.0 600.0 700.0 800.0 900.0 1000.0 1250.0 1500.0 1750.0 2000.0 2250.0 2500.0 2750.0 3000.0 4000.0 5000.0]
|
||||
#define CloudLayer1_coverage 1.0 // [0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0]
|
||||
#define CloudLayer1_density 0.6 // [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 400.0 // [-300.0 -290.0 -280.0 -270.0 -260.0 -250.0 -240.0 -230.0 -220.0 -210.0 -200.0 -190.0 -180.0 -170.0 -160.0 -150.0 -140.0 -130.0 -120.0 -110.0 -100.0 -90.0 -80.0 -70.0 -60.0 -50.0 -40.0 -30.0 -20.0 -10.0 0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 110.0 120.0 130.0 140.0 150.0 160.0 170.0 180.0 190.0 200.0 210.0 220.0 230.0 240.0 250.0 260.0 270.0 280.0 290.0 300.0 310.0 320.0 330.0 340.0 350.0 360.0 370.0 380.0 390.0 400.0 410.0 420.0 430.0 440.0 450.0 460.0 470.0 480.0 490.0 500.0 510.0 520.0 530.0 540.0 550.0 560.0 570.0 580.0 590.0 600.0 700.0 800.0 900.0 1000.0 1250.0 1500.0 1750.0 2000.0 2250.0 2500.0 2750.0 3000.0 4000.0 5000.0]
|
||||
#define CloudLayer1_tallness 280.0 // [0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 110.0 120.0 130.0 140.0 150.0 160.0 170.0 180.0 190.0 200.0 210.0 220.0 230.0 240.0 250.0 260.0 270.0 280.0 290.0 300.0 310.0 320.0 330.0 340.0 350.0 360.0 370.0 380.0 390.0 400.0 410.0 420.0 430.0 440.0 450.0 460.0 470.0 480.0 490.0 500.0 510.0 520.0 530.0 540.0 550.0 560.0 570.0 580.0 590.0 600.0 700.0 800.0 900.0 1000.0 1250.0 1500.0 1750.0 2000.0 2250.0 2500.0 2750.0 3000.0 4000.0 5000.0]
|
||||
#define CloudLayer1_scale 1.0 // [0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0]
|
||||
#define CloudLayer1_detail 450.0 // [100.0 150.0 200.0 250.0 300.0 350.0 400.0 450.0 500.0 550.0 600.0 650.0 700.0 750.0]
|
||||
#define CloudLayer1_detail 250.0 // [100.0 150.0 200.0 250.0 300.0 350.0 400.0 450.0 500.0 550.0 600.0 650.0 700.0 750.0]
|
||||
#define CloudLayer1_distance 100000.0 // [1000.0 5000.0 10000.0 20000.0 30000.0 40000.0 50000.0 60000.0 70000.0 80000.0 90000.0 100000.0 110000.0 120000.0 130000.0 140000.0 150000.0 160000.0 170000.0 180000.0 190000.0 200000.0 250000.0 300000.0 350000.0 400000.0 450000.0 500000.0]
|
||||
|
||||
#define CUMULONIMBUS 0 // [0 1 2]
|
||||
@@ -758,6 +758,8 @@ const vec3 aerochrome_color = mix(vec3(1.0, 0.0, 0.0), vec3(0.715, 0.303, 0.631)
|
||||
|
||||
|
||||
// #define MOTION_BLUR
|
||||
#ifdef MOTION_BLUR
|
||||
#endif
|
||||
#define MOTION_BLUR_STRENGTH 1.0 // [0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 3.0 4.0 5.0]
|
||||
|
||||
// #define CHROMATIC_ABERRATION
|
||||
@@ -769,6 +771,13 @@ const vec3 aerochrome_color = mix(vec3(1.0, 0.0, 0.0), vec3(0.715, 0.303, 0.631)
|
||||
// #define FILM_GRAIN
|
||||
#define FILM_GRAIN_STRENGTH 2.5 // [0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0]
|
||||
|
||||
// #define PIXELATED
|
||||
#ifdef PIXELATED
|
||||
#endif
|
||||
#define PIXELIZATION_STRENGTH 4 // [2 3 4 5 6 7 8 9 10 16 32 64]
|
||||
|
||||
#define MAX_COLORS_PER_CHANNEL 0 // [0 4 8 16 32 64 128 256 512]
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
// ----- GAMEPLAY POST EFFECT RELATED SETTINGS ----- //
|
||||
///////////////////////////////////////////////////////
|
||||
@@ -1171,7 +1180,7 @@ const vec3 aerochrome_color = mix(vec3(1.0, 0.0, 0.0), vec3(0.715, 0.303, 0.631)
|
||||
#endif
|
||||
|
||||
// only iris 1.7+ allows tessellation
|
||||
#if MC_VERSION < 12001 || MC_VERSION == 12002
|
||||
#ifndef IRIS_FEATURE_TESSELLATION_SHADERS
|
||||
#undef SHADER_GRASS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -272,7 +272,7 @@ float getCloudShape(int LayerIndex, int LOD, in vec3 position, float minHeight,
|
||||
|
||||
#ifdef CloudLayer1
|
||||
case LARGECUMULUS_LAYER: {
|
||||
erosion += (1.0 - densityAtPos(samplePos * CloudLayer1_detail * CloudLayer1_scale / 4.5)) * sqrt(omShape);
|
||||
erosion += (1.0 - densityAtPos(samplePos * CloudLayer1_detail * CloudLayer1_scale / 3.571428)) * sqrt(omShape);
|
||||
|
||||
float falloff = 1.0 - clamp(posToMax/(CloudLayer1_tallness/CloudLayer1_scale),0.0,1.0);
|
||||
erosion += abs(densityAtPos(samplePos * CloudLayer1_detail * CloudLayer1_scale) - falloff) * 0.75 * (omShape*omShape) * (1.0-falloff*0.5);
|
||||
@@ -525,17 +525,17 @@ float getCloudScattering(
|
||||
|
||||
for (int i = 0; i < samples; i++){
|
||||
if((LayerIndex == ALTOSTRATUS_LAYER) || (LayerIndex == CIRRUS_LAYER)){
|
||||
shadowRayPosition = rayPosition + sunVis * sunVector * (1.0 + i * dither) / (pow(abs(sunVector.y*0.5),3.0) * 0.995 + 0.005) + moonVis * moonVector * (1.0 + i * dither) / (pow(abs(moonVector.y*0.5),3.0) * 0.995 + 0.005);
|
||||
shadowRayPosition = rayPosition + sunVector*sunVis * (0.25 + i * dither) * 200.0 + moonVector*moonVis * (0.25 + i * dither) * 200.0;
|
||||
} else
|
||||
#if CUMULONIMBUS > 0
|
||||
if((LayerIndex == LARGECUMULUS_LAYER) || (LayerIndex == SMALLCUMULUS_LAYER))
|
||||
#endif
|
||||
{
|
||||
shadowRayPosition = rayPosition + lightVec * (1.0 + i + dither)*20.0;
|
||||
shadowRayPosition = rayPosition + lightVec * (0.25 + i + dither)*20.0;
|
||||
}
|
||||
#if CUMULONIMBUS > 0
|
||||
else {
|
||||
shadowRayPosition = rayPosition + lightVec * (1.0 + i + dither)*isLarge;
|
||||
shadowRayPosition = rayPosition + lightVec * (0.5 + i + dither)*isLarge;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -680,7 +680,7 @@ vec4 raymarchCloud(
|
||||
}
|
||||
if (density == 0.0) return vec4(color, totalAbsorbance);
|
||||
|
||||
bool ifAboveOrBelowPlane = max(mix(-1.0, 1.0, clamp(cameraPosition.y - minHeight,0.0,1.0)) * normalize(rayDirection).y,0.0) > 0.0;
|
||||
bool ifAboveOrBelowPlane = max(mix(-1.0, 1.0, clamp(cameraPosition.y - minHeight,0.0,1.0)) * normalize(rayDirection).y + 0.0001,0.0) > 0.0;
|
||||
|
||||
// check if the ray staring position is going farther than the reference distance, if yes, dont begin marching. this is to check for intersections with the world.
|
||||
// check if the camera is above or below the cloud plane, so it doesnt waste work on the opposite hemisphere
|
||||
@@ -838,7 +838,7 @@ vec4 raymarchCloud(
|
||||
float skylightOcclusion = 1.0;
|
||||
#if defined CloudLayer1 && defined CloudLayer0
|
||||
if(LayerIndex == SMALLCUMULUS_LAYER) {
|
||||
float upperLayerOcclusion = getCloudShape(LARGECUMULUS_LAYER, 0, rayPosition + vec3(0.0,1.0,0.0) * max((CloudLayer1_height+20) - rayPosition.y,0.0), CloudLayer1_height, CloudLayer1_height+CloudLayer1_height);
|
||||
float upperLayerOcclusion = getCloudShape(LARGECUMULUS_LAYER, 0, rayPosition + vec3(0.0,1.0,0.0) * max((CloudLayer1_height+20) - rayPosition.y,0.0), CloudLayer1_height, CloudLayer1_height+CloudLayer1_height/CloudLayer1_scale);
|
||||
skylightOcclusion = mix(mix(0.0,0.2,densityLarge), 1.0, pow(1.0 - upperLayerOcclusion*densityLarge,5));
|
||||
}
|
||||
#endif
|
||||
@@ -855,7 +855,7 @@ vec4 raymarchCloud(
|
||||
#if defined CloudLayer0 && defined CloudLayer1
|
||||
if(LayerIndex == SMALLCUMULUS_LAYER){
|
||||
shadowStartPos = rayPosition + mainLightVec / abs(mainLightVec.y) * max((CloudLayer1_height + 20.0) - rayPosition.y, 0.0);
|
||||
sunShadowMask += 3.0 * getCloudShape(LARGECUMULUS_LAYER, 0, shadowStartPos, CloudLayer1_height, CloudLayer1_height+CloudLayer1_tallness)*densityLarge;
|
||||
sunShadowMask += 3.0 * getCloudShape(LARGECUMULUS_LAYER, 0, shadowStartPos, CloudLayer1_height, CloudLayer1_height+CloudLayer1_tallness/CloudLayer1_scale)*densityLarge;
|
||||
}
|
||||
#endif
|
||||
// cumulonimbus layer -> other cumulus layers
|
||||
@@ -1010,9 +1010,7 @@ vec4 GetVolumetricClouds(
|
||||
NormPlayerPos.y += 0.03 * heightRelativeToClouds;
|
||||
#endif
|
||||
|
||||
const float maxSamples = 20.0*CLOUD_SAMPLE_MULTIPLIER;
|
||||
const float minSamples = 12.0*CLOUD_SAMPLE_MULTIPLIER;
|
||||
int samples = int(clamp(maxSamples / exp2(abs(NormPlayerPos.y)), minSamples, maxSamples));
|
||||
int samples = int(10.0*CLOUD_SAMPLE_MULTIPLIER);
|
||||
// int samples = 30;
|
||||
|
||||
///------- setup the ray
|
||||
@@ -1138,7 +1136,7 @@ vec4 GetVolumetricClouds(
|
||||
cloudheight = 4000;
|
||||
minHeight = 600;
|
||||
maxHeight = cloudheight + minHeight;
|
||||
int cumulonimbusSamples = int(1.5*samples);
|
||||
int cumulonimbusSamples = 2*samples;
|
||||
|
||||
cloudDist.xz = vec2(8.0);
|
||||
rayDirection = NormPlayerPos.xyz * (cloudheight/length(NormPlayerPos.xyz/cloudDist)/cumulonimbusSamples);
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user