#shaders/shaders.properties #Minecraft Settings oldLighting=false underwaterOverlay=false sun=true moon=true clouds=off stars=true vignette=false dynamicHandLight=true program.composite4.enabled=TAA_UPSCALING #Get the correct alpha value : S_A*(1-DST_A)+DST_A blend.gbuffers_textured= SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE blend.gbuffers_armor_glint= SRC_ALPHA ZERO ONE_MINUS_DST_ALPHA ONE blend.gbuffers_textured_lit= SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE blend.gbuffers_weather= 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 # SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE ZERO # SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE blend.gbuffers_hand_water=SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE ZERO blend.gbuffers_entities = off blend.gbuffers_hand = off blend.gbuffers_block= off blend.gbuffers_basic= off blend.gbuffers_damagedblock= SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE blend.gbuffers_skytextured=off alphaTest.gbuffers_armor_glint=false alphaTest.gbuffers_entities=GREATER 0.1 alphaTest.gbuffers_weather=false alphaTest.gbuffers_water=false alphaTest.gbuffers_skybasic=false alphaTest.gbuffers_skytextured=false alphaTest.gbuffers_hand=true sliders = 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 NetherFog_brightness WeatherDay 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 Cloud_Height Dynamic_sky_day ambient_brightness AmbientLight_R AmbientLight_G AmbientLight_B cloud_speed Rain_coverage override_R override_G override_B override_Cloudy_Fog_Density override_cloudyfog_fade override_fog override_Uniform_Fog_Density override_uniformfog_fade override_Bloomy_Fog override_Sun_Strength Moon_temp Haze_amount UniformFog_amount CloudyFog_amount TimeOfDayFog_multiplier RainFog_amount CaveFog_amount uniformfog_fade cloudyfog_fade cloudray_amount Swamp_cloudyfog_height Jungle_cloudyfog_fade Swamp_uniformfog_height Jungle_uniformfog_fade noise_mode Distant_shadow_quality ambient_temp Sun_temp Puddle_Size Cloud_Size LabSSS_Curve Emissive_Curve Emissive_Brightness AO_Strength Swamp_Sun_Strength Jungle_Sun_Strength Swamp_Bloomy_Fog Jungle_Bloomy_Fog Swamp_Mie Jungle_Mie Swamp_cloudyfog_Density Jungle_Cloudy_Fog_Density Swamp_UniformFog_Density Jungle_Uniform_Fog_Density Swamp_Bloomy_Fog Jungle_Bloomy_Fog Swamp_Mie Jungle_Mie Swamp_R Swamp_G Swamp_B Jungle_R Jungle_G Jungle_B Jungle_fog_strength Swamp_fog_strength Lush_fog_strength Snells_Window_Width self_shadow_samples Shadow_brightness Cloud_top_cutoff Cloud_base_cutoff Cloud_fade_amount BLOOMY_FOG FOG_RAIN_MULTIPLIER FOG_TOD_MULTIPLIER CLOUDY_FOG_AMOUNT BASE_FOG_AMOUNT WAVY_SPEED WAVY_STRENGTH ANTI_GHOSTING BLOOM_STRENGTH shadowDistance shadowDistanceRenderMul FinalR FinalG FinalB Ambient_Mult 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 SKY_BRIGHTNESS_DAY SKY_BRIGHTNESS_NIGHT BLEND_FACTOR FLICKER_REDUCTION MOTION_REJECTION VL_SAMPLES Exposure_Speed POM_MAP_RES POM_DEPTH MAX_ITERATIONS MAX_DIST SSR_STEPS ambientOcclusionLevel SEA_LEVEL ATMOSPHERIC_DENSITY CLOUDS_SHADOWS_STRENGTH moon_illuminance moonColorR moonColorG moonColorB fog_mieg1 fog_mieg2 fog_coefficientRayleighR fog_coefficientRayleighG SATURATION Manual_exposure_value focal aperture_stops MANUAL_FOCUS SHADOW_FILTER_SAMPLE_COUNT Max_Filter_Depth VPS_Search_Samples Min_Shadow_Filter_Radius Max_Shadow_Filter_Radius SSAO_SAMPLES Water_Top_Layer fog_coefficientRayleighB SHARPENING rayMarchSampleCount Dirt_Mie_Phase 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 RENDER_SCALE_X RENDER_SCALE_Y 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 cloudDensity cloudCoverage fbmAmount fbmPower1 fbmPower2 cloudMieG cloudMieG2 cloudMie2Multiplier Strong_SSS_strength Medium_SSS_strength Weak_SSS_strength Shadow_brightness Roughness_Threshold Sun_specular_Strength reflection_quality Roughness_Strength SSS_mode DOF_QUALITY DOF_ANAMORPHIC_RATIO AEROCHROME_PINKNESS DOF_JITTER_FOCUS JITTER_STRENGTH screen.columns=2 screen = \ [Direct_Light] [World] \ [Ambient_light] [Fog] \ [Post_Processing] [Clouds] \ [Misc_Settings] [Climate] \ [JITTER_DOF] # screen = [Direct_Light] [World] # [Ambient_light] [Fog] # [Post_Processing] [Clouds] # [Misc_Settings] [Climate] screen.JITTER_DOF = \ DOF_JITTER DOF_JITTER_SHADOW \ DOF_JITTER_FOCUS JITTER_STRENGTH \ DOF_CAMERA_WIDTH FOCUS_LASER_COLOR \ ######## LIGHTING ### DIRECT LIGHT screen.Direct_Light.columns=1 screen.Direct_Light = [Shadows] [Subsurface_Scattering] [Sun_and_Moon_Colors] sunPathRotation sun_illuminance moon_illuminance screen.Shadows.columns=1 screen.Shadows = SCREENSPACE_CONTACT_SHADOWS Stochastic_Transparent_Shadows SHADOW_FRUSTRUM_CULLING CAVE_LIGHT_LEAK_FIX [Filtering] shadowMapResolution shadowDistance shadowDistanceRenderMul screen.Subsurface_Scattering.columns=1 screen.Subsurface_Scattering = Variable_Penumbra_Shadows Strong_SSS_strength Medium_SSS_strength LabPBR_subsurface_scattering LabSSS_Curve mob_SSS misc_block_SSS screen.Filtering.columns=1 screen.Filtering = Variable_Penumbra_Shadows VPS_Search_Samples Min_Shadow_Filter_Radius Max_Shadow_Filter_Radius Max_Filter_Depth SHADOW_FILTER_SAMPLE_COUNT ### AMBIENT LIGHT screen.Ambient_light.columns=1 screen.Ambient_light = [Torch] [Ambient] [ambientlight_colors] indirect_effect HQ_SSGI AO_Strength GI_Strength AO_in_sunlight screen.ambientlight_colors.columns=1 screen.ambientlight_colors = ambient_brightness ambient_colortype ambient_temp AmbientLight_R AmbientLight_G AmbientLight_B screen.Torch.columns=1 screen.Torch = TORCH_AMOUNT Emissive_Brightness Emissive_Curve TORCH_R TORCH_G TORCH_B screen.Ambient.columns=1 screen.Ambient = ambientOcclusionLevel MIN_LIGHT_AMOUNT Ambient_Mult SEPARATE_AO ######## WORLD screen.World.columns=1 screen.World = [LabPBR] [Waving_Stuff] [Water] AEROCHROME_MODE AEROCHROME_PINKNESS AEROCHROME_WOOL_ENABLED ### SPECULARS screen.Reflections.columns=2 screen.Reflections = Specular_Reflections Sun_specular_Strength Screen_Space_Reflections reflection_quality Rough_reflections Roughness_Threshold Sky_reflection ### WAVING STUFF screen.Waving_Stuff.columns=1 screen.Waving_Stuff = WAVY_STRENGTH WAVY_SPEED WAVY_PLANTS ## POM screen.POM.columns=1 screen.POM = POM MAX_ITERATIONS POM_DEPTH MAX_DIST Adaptive_Step_length Horrible_slope_normals ######## CLIMATE screen.Climate.columns=1 screen.Climate = [Weather] [Biome_Fog] [Seasons] ## DAILY WEATHER screen.Weather.columns=1 screen.Weather = Daily_Weather WeatherDay ## BIOME SPECIFICS screen.Biome_Fog.columns=1 screen.Biome_Fog = Biome_specific_environment ## SEASONS screen.Seasons.columns=1 screen.Seasons = Seasons Season_Length Snowy_Winter [Summer_colors] [Fall_colors] [Winter_colors] [Spring_colors] screen.Summer_colors.columns=1 screen.Summer_colors = Summer_R Summer_G Summer_B Summer_Leaf_R Summer_Leaf_G Summer_Leaf_B screen.Fall_colors.columns=1 screen.Fall_colors = Fall_R Fall_G Fall_B Fall_Leaf_R Fall_Leaf_G Fall_Leaf_B screen.Winter_colors.columns=1 screen.Winter_colors = Winter_R Winter_G Winter_B Winter_Leaf_R Winter_Leaf_G Winter_Leaf_B screen.Spring_colors.columns=1 screen.Spring_colors = Spring_R Spring_G Spring_B Spring_Leaf_R Spring_Leaf_G Spring_Leaf_B ######## ATMOSPHERICS screen.Atmospherics.columns=1 screen.Atmospherics = [Sky] [Fog] [Biome_Fog] [Clouds] Altostratus Cumulus_Clouds Allow_Vanilla_sky ### SKY screen.Sky.columns=1 screen.Sky = [Sky_coefficients] [Sun_and_Moon_Colors] sunPathRotation screen.Sky_coefficients.columns=1 screen.Sky_coefficients = Sky_Brightness sky_mieg sky_coefficientRayleighR sky_coefficientRayleighG sky_coefficientRayleighB sky_coefficientMieR sky_coefficientMieG sky_coefficientMieB ### CLOUDS screen.Clouds.columns=2 # screen.Clouds = VOLUMETRIC_CLOUDS Altostratus cloud_LevelOfDetail cloud_ShadowLevelOfDetail CLOUDS_QUALITY cloudDensity cloudCoverage Rain_coverage cloud_speed fbmAmount fbmPower1 fbmPower2 Cloud_top_cutoff Cloud_base_cutoff Shadow_brightness self_shadow_samples CLOUDS_SHADOWS VL_CLOUDS_SHADOWS screen.Clouds = VOLUMETRIC_CLOUDS CLOUDS_QUALITY Cumulus Altostratus Cumulus_coverage Alto_coverage Cumulus_density Alto_density CLOUDS_SHADOWS ### FOG screen.Fog.columns=1 screen.Fog = VL_RENDER_RESOLUTION VL_SAMPLES BLOOMY_FOG Haze_amount RainFog_amount [TOD_fog] [Biome_Fog] [Cave_Fog] BorderFog screen.TOD_fog.columns=2 screen.TOD_fog = TOD_Fog_mult Morning_Uniform_Fog Morning_Cloudy_Fog Noon_Uniform_Fog Noon_Cloudy_Fog Evening_Uniform_Fog Evening_Cloudy_Fog Night_Uniform_Fog Night_Cloudy_Fog screen.Cave_Fog.columns=1 screen.Cave_Fog = Cave_fog CaveFog_amount CaveFogFallOff CaveFogColor_R CaveFogColor_G CaveFogColor_B screen.Fog_Color.columns=1 screen.Fog_Color = fog_mieg1 fog_mieg2 fog_coefficientRayleighR fog_coefficientRayleighG fog_coefficientRayleighB fog_coefficientMieR fog_coefficientMieG fog_coefficientMieB ### WATER screen.Water.columns=1 screen.Water = Refraction Vanilla_like_water Dirt_Amount Dirt_Mie_Phase rayMarchSampleCount SCREENSPACE_REFLECTIONS SSR_STEPS USE_QUARTER_RES_DEPTH SUN_MICROFACET_SPECULAR Water_Top_Layer lightMapDepthEstimation [Water_fog_color] screen.Water_fog_color.columns=1 screen.Water_fog_color = 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 ######## POST screen.Post_Processing.columns=1 screen.Post_Processing = [TAA_OPTIONS] [Purkinje_effect] [Tonemapping] [Exposure] [DepthOfField] SHARPENING BLOOM_STRENGTH BLOOM_QUALITY ### TAA screen.TAA_OPTIONS.columns = 1 screen.TAA_OPTIONS= SCREENSHOT_MODE SPLIT_RENDER TAA BLEND_FACTOR TAA_UPSCALING RENDER_SCALE_X RENDER_SCALE_Y ### DOF screen.DepthOfField.columns = 1 screen.DepthOfField = DOF_QUALITY DOF_ANAMORPHIC_RATIO AUTOFOCUS focal aperture_stops MANUAL_FOCUS DoF_Adaptation_Speed FAR_BLUR_ONLY ### EXPOSURE screen.Exposure.columns = 1 screen.Exposure = AUTO_EXPOSURE EXPOSURE_MULTIPLIER Exposure_Speed Manual_exposure_value ### TONEMAPS screen.Tonemapping.columns = 1 screen.Tonemapping = TONEMAP USE_ACES_COLORSPACE_APPROXIMATION SATURATION CROSSTALK FinalR FinalG FinalB ### PURKINJE screen.Purkinje_effect.columns = 1 screen.Purkinje_effect = Purkinje_strength Purkinje_strength Purkinje_R Purkinje_G Purkinje_B Purkinje_Multiplier ######## MISC SETTINGS screen.Misc_Settings.columns=1 screen.Misc_Settings = [the_orb] WhiteWorld ambientLight_only Glass_Tint display_LUT DISABLE_ALPHA_MIPMAPS screen.the_orb.columns = 1 screen.the_orb = THE_ORB ORB_X ORB_Y ORB_Z ORB_ColMult ORB_R ORB_G ORB_B screen.LabPBR.columns = 1 screen.LabPBR = [Reflections] [Subsurface_Scattering] [Emissives] [POM] [Porosity] screen.Emissives.columns = 1 screen.Emissives = LabPBR_Emissives Emissive_Brightness Emissive_Curve screen.Porosity.columns = 1 screen.Porosity = Puddles Puddle_Size Porosity screen.Sun_and_Moon_Colors.columns = 1 screen.Sun_and_Moon_Colors = sunColorR sunColorG sunColorB moonColorR moonColorG moonColorB colortype Sun_temp Moon_temp screen.Advanced = 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 ######## moonphase based weather uniform.float.CumulusCoverage = smooth(1, if( \ moonPhase == 0, 0.3, \ moonPhase == 1, 0.8, \ moonPhase == 2, 0.2, \ moonPhase == 3, 0.0, \ moonPhase == 4, 0.8, \ moonPhase == 5, 0.5, \ moonPhase == 6, -0.5, \ 0.6 ), 60, 60) uniform.float.CirrusCoverage = smooth(2, if( \ moonPhase == 0, 0.5, \ moonPhase == 1, 0.65, \ moonPhase == 2, 0.6, \ moonPhase == 3, 0.0, \ moonPhase == 4, 0.5, \ moonPhase == 5, 0.5, \ moonPhase == 6, 0.6, \ 0.5 ), 60, 60) uniform.float.CirrusThickness = smooth(3, if( \ moonPhase == 0, 0.05, \ moonPhase == 1, 0.2, \ moonPhase == 2, 0.2, \ moonPhase == 3, 0.0, \ moonPhase == 4, 0.0, \ moonPhase == 5, 0.05, \ moonPhase == 6, 0.2, \ 0.1 ), 60, 60) uniform.float.Day = smooth(4, if( \ moonPhase == 0, 1, \ moonPhase == 1, 2, \ moonPhase == 2, 3, \ moonPhase == 3, 4, \ moonPhase == 4, 5, \ moonPhase == 5, 6, \ moonPhase == 6, 7, \ 8 ), 5, 5) # Biome uniforms uniform.float.isJungles = smooth(6, if(in(biome,23,24,25), 1,0), 25,25) uniform.float.isSwamps = smooth(7, if(in(biome,6,7), 1,0), 25,25) uniform.float.isLush = smooth(8, if(in(biome,10,50), 1,0), 25,25) uniform.float.isDeserts = smooth(9, if(in(biome,5), 1,0), 25,25) uniform.float.isWastes = smooth(10, if(in(biome,51), 1,0), 5, 5) uniform.float.isWarpedForest = smooth(11, if(in(biome,52), 1,0), 5, 5) uniform.float.isCrimsonForest = smooth(12, if(in(biome,53), 1,0), 5, 5) uniform.float.isSoulValley = smooth(13, if(in(biome,54), 1,0), 5, 5) uniform.float.isBasaltDelta = smooth(14, if(in(biome,55), 1,0), 5, 5) # uniform.float.ifEndBoss = smooth(if(bossBattle == 2, 1, 0 ), 1, 1) # uniform.float.EndSequence1 = smooth(if(hideGUI == 1, 1.0, 0.0), 30, 0) # uniform.float.EndSequence2 = smooth(if(EndSequence1 > 0.95, 1.0, 0.0), 1.25, 0) # uniform.float.Winter = smooth(14, if( worldDay > 0 && worldDay < 10), 5, 5) # thank you sixthsurge! # uniform.float.lightningFlash = smooth(if(equals(skyColor.r, skyColor.g, 0.01) && skyColor.r > 0.3, 1.0, 0.0), 0, 0.5) texture.noise=texture/noises.png texture.composite.colortex6=texture/blueNoise.png separateAo=true alphaTest.shadow= GREATER 0.1 beacon.beam.depth=true rain.depth=false variable.float.texelSizeX = 1.0/viewWidth variable.float.texelSizeY = 1.0/viewHeight uniform.vec2.texelSize=vec2(texelSizeX,texelSizeY) uniform.int.framemod8 = frameCounter%8 variable.float.normSunVec = sqrt(sunPosition.x*sunPosition.x+sunPosition.y*sunPosition.y+sunPosition.z*sunPosition.z) variable.float.normUpVec = sqrt(upPosition.x*upPosition.x+upPosition.y*upPosition.y+upPosition.z*upPosition.z) variable.float.sunPosX = sunPosition.x/normSunVec variable.float.sunPosY = sunPosition.y/normSunVec variable.float.sunPosZ = sunPosition.z/normSunVec uniform.vec3.sunVec=vec3(sunPosX,sunPosY,sunPosZ) variable.float.upPosX = upPosition.x/normUpVec variable.float.upPosY = upPosition.y/normUpVec variable.float.upPosZ = upPosition.z/normUpVec uniform.vec3.upVec=vec3(upPosX,upPosY,upPosZ) uniform.float.sunElevation = sunPosX*upPosX+sunPosY*upPosY+sunPosZ*upPosZ uniform.float.lightSign = clamp(sunElevation * 1000000000000000000, 0.0, 1.0) * 2.0 - 1.0 #Max angle at frustrum diagonal variable.float.maxAngle = atan(1.0 / gbufferProjection.1.1 * sqrt(1.0+(aspectRatio * aspectRatio))) uniform.float.cosFov = cos(maxAngle) variable.float.viewDirX = gbufferModelViewInverse.2.0 variable.float.viewDirY = gbufferModelViewInverse.2.1 variable.float.viewDirZ = gbufferModelViewInverse.2.2 variable.float.normView = sqrt(viewDirX*viewDirX + viewDirY*viewDirY + viewDirZ*viewDirZ) variable.float.shViewDirX = (shadowModelView.0.0 * viewDirX + shadowModelView.1.0 * viewDirY + shadowModelView.2.0 * viewDirZ)/normView variable.float.shViewDirY = (shadowModelView.0.1 * viewDirX + shadowModelView.1.1 * viewDirY + shadowModelView.2.1 * viewDirZ)/normView variable.float.shViewDirZ = (shadowModelView.0.2 * viewDirX + shadowModelView.1.2 * viewDirY + shadowModelView.2.2 * viewDirZ)/normView uniform.vec3.shadowViewDir = vec3(shViewDirX, shViewDirY, shViewDirZ) variable.float.shStartX = (shadowModelView.0.0 * gbufferModelViewInverse.3.0 + shadowModelView.1.0 * gbufferModelViewInverse.3.1 + shadowModelView.2.0 * gbufferModelViewInverse.3.2) variable.float.shStartY = (shadowModelView.0.1 * gbufferModelViewInverse.3.0 + shadowModelView.1.1 * gbufferModelViewInverse.3.1 + shadowModelView.2.1 * gbufferModelViewInverse.3.2) variable.float.shStartZ = (shadowModelView.0.2 * gbufferModelViewInverse.3.0 + shadowModelView.1.2 * gbufferModelViewInverse.3.1 + shadowModelView.2.2 * gbufferModelViewInverse.3.2) uniform.vec3.shadowCamera = vec3(shStartX + shadowModelView.3.0 + shViewDirX*2., shStartY + shadowModelView.3.1 + shViewDirY*2., shStartZ + shadowModelView.3.2 + shViewDirZ*2.0) variable.float.wSunX = (gbufferModelViewInverse.0.0 * sunPosX + gbufferModelViewInverse.1.0 * sunPosY + gbufferModelViewInverse.2.0 * sunPosZ) variable.float.wSunY = (gbufferModelViewInverse.0.1 * sunPosX + gbufferModelViewInverse.1.1 * sunPosY + gbufferModelViewInverse.2.1 * sunPosZ) variable.float.wSunZ = (gbufferModelViewInverse.0.2 * sunPosX + gbufferModelViewInverse.1.2 * sunPosY + gbufferModelViewInverse.2.2 * sunPosZ) variable.float.shSunX = (shadowModelView.0.0 * wSunX + shadowModelView.1.0 * wSunY + shadowModelView.2.0 * wSunZ) variable.float.shSunY = (shadowModelView.0.1 * wSunX + shadowModelView.1.1 * wSunY + shadowModelView.2.1 * wSunZ) variable.float.shSunZ = (shadowModelView.0.2 * wSunX + shadowModelView.1.2 * wSunY + shadowModelView.2.2 * wSunZ) uniform.vec3.shadowLightVec = vec3(lightSign*shSunX, lightSign*shSunY, lightSign*shSunZ) uniform.float.shadowMaxProj = 150.0/abs(sunPosY) # photon shit uniform.vec2.view_res = vec2(viewWidth, viewHeight) uniform.vec2.view_pixel_size = vec2(1.0 / viewWidth, 1.0 / viewHeight)