Clean specular.glsl and make it easier to use for myself across dimension. make grass brighter in ambient light.

This commit is contained in:
Xonk 2023-07-25 22:48:08 -04:00
parent e5a956ccb0
commit e74823a918
19 changed files with 585 additions and 766 deletions

View File

@ -9,7 +9,9 @@
####### ----- SSS and waving ----- #######
##ground waving
block.10001 = minecraft:beetroots minecraft:potatoes minecraft:carrots minecraft:wheat minecraft:nether_wart minecraft:kelp minecraft:large_fern:half=upper minecraft:peony:half=upper minecraft:rose_bush:half=upper minecraft:lilac:half=upper minecraft:crimson_roots minecraft:nether_sprouts minecraft:warped_roots minecraft:seagrass minecraft:tall_seagrass:half=upper minecraft:sunflower:half=upper minecraft:tall_grass:half=upper minecraft:wither_rose minecraft:lily_of_the_valley minecraft:cornflower minecraft:sweet_berry_bush minecraft:oxeye_daisy minecraft:pink_tulip minecraft:white_tulip minecraft:orange_tulip minecraft:red_tulip minecraft:azure_bluet minecraft:allium minecraft:blue_orchid minecraft:poppy minecraft:dandelion minecraft:grass minecraft:dead_bush minecraft:oak_sapling minecraft:spruce_sapling minecraft:birch_sapling minecraft:jungle_sapling minecraft:acacia_sapling minecraft:dark_oak_sapling minecraft:fern
block.10001 = minecraft:beetroots minecraft:potatoes minecraft:carrots minecraft:wheat minecraft:nether_wart minecraft:kelp minecraft:large_fern:half=upper minecraft:peony:half=upper minecraft:rose_bush:half=upper minecraft:lilac:half=upper minecraft:crimson_roots minecraft:nether_sprouts minecraft:warped_roots minecraft:seagrass minecraft:tall_seagrass:half=upper minecraft:sunflower:half=upper minecraft:tall_grass:half=upper minecraft:wither_rose minecraft:lily_of_the_valley minecraft:cornflower minecraft:sweet_berry_bush minecraft:oxeye_daisy minecraft:pink_tulip minecraft:white_tulip minecraft:orange_tulip minecraft:red_tulip minecraft:azure_bluet minecraft:allium minecraft:blue_orchid minecraft:poppy minecraft:dandelion minecraft:dead_bush minecraft:oak_sapling minecraft:spruce_sapling minecraft:birch_sapling minecraft:jungle_sapling minecraft:acacia_sapling minecraft:dark_oak_sapling minecraft:fern
block.10009 = minecraft:grass
##air waving
block.10003 = minecraft:azalea_leaves minecraft:flowering_azalea_leaves minecraft:cherry_leaves minecraft:mangrove_leaves minecraft:vine minecraft:oak_leaves minecraft:spruce_leaves minecraft:birch_leaves minecraft:jungle_leaves minecraft:acacia_leaves minecraft:dark_oak_leaves
@ -34,6 +36,7 @@
## grass uwu
block.10008 = minecraft:grass_block:snowy=false
####### ----- lightsources ----- #######

View File

@ -6,7 +6,10 @@
const bool colortex5MipmapEnabled = true;
const bool colortex12MipmapEnabled = true;
// const bool colortex4MipmapEnabled = true;
#ifndef Rough_reflections
const bool colortex4MipmapEnabled = true;
#endif
const bool shadowHardwareFiltering = true;
@ -147,9 +150,10 @@ vec3 viewToWorld(vec3 viewPosition) {
#include "/lib/stars.glsl"
#include "/lib/volumetricClouds.glsl"
#include "/lib/waterBump.glsl"
#include "/lib/specular.glsl"
#define OVERWORLD
#include "/lib/specular.glsl"
#include "/lib/diffuse_lighting.glsl"
float lengthVec (vec3 vec){
@ -466,14 +470,38 @@ void ssAO(inout vec3 lighting, inout float sss, vec3 fragpos,float mulfov, vec2
lighting = lighting*max(occlusion,pow(lightmap.x,4));
}
vec3 DoContrast(vec3 Color, float strength){
vec3 rayTrace_GI(vec3 dir,vec3 position,float dither, float quality){
float Contrast = log(strength);
vec3 clipPosition = toClipSpace3(position);
float rayLength = ((position.z + dir.z * far*sqrt(3.)) > -near) ?
(-near -position.z) / dir.z : far*sqrt(3.);
vec3 direction = normalize(toClipSpace3(position+dir*rayLength)-clipPosition); //convert to clip space
direction.xy = normalize(direction.xy);
return clamp(mix(vec3(0.5), Color, Contrast) ,0,255);
//get at which length the ray intersects with the edge of the screen
vec3 maxLengths = (step(0.,direction)-clipPosition) / direction;
float mult = maxLengths.y;
vec3 stepv = direction * mult / quality*vec3(RENDER_SCALE,1.0) * dither;
vec3 spos = clipPosition*vec3(RENDER_SCALE,1.0) ;
spos.xy += TAA_Offset*texelSize*0.5/RENDER_SCALE;
float biasdist = clamp(position.z*position.z/50.0,1,2); // shrink sample size as distance increases
for(int i = 0; i < int(quality); i++){
spos += stepv;
float sp = sqrt(texelFetch2D(colortex4,ivec2(spos.xy/texelSize/4),0).w/65000.0);
float currZ = linZ(spos.z);
if( sp < currZ) {
float dist = abs(sp-currZ)/currZ;
if (abs(dist) < biasdist*0.05) return vec3(spos.xy, invLinZ(sp))/vec3(RENDER_SCALE,1.0);
}
spos += stepv;
}
return vec3(1.1);
}
vec3 RT(vec3 dir, vec3 position, float noise, float stepsizes){
float dist = 1.0 + clamp(position.z*position.z/50.0,0,2); // shrink sample size as distance increases
@ -787,7 +815,6 @@ void main() {
vec3 totEpsilon = dirtEpsilon*dirtAmount + waterEpsilon;
vec3 scatterCoef = dirtAmount * vec3(Dirt_Scatter_R, Dirt_Scatter_G, Dirt_Scatter_B) / pi;
#ifdef AEROCHROME_MODE
totEpsilon *= 10.0;
scatterCoef *= 0.1;
@ -808,6 +835,7 @@ void main() {
vec3 albedo = toLinear(vec3(dataUnpacked0.xz,dataUnpacked1.x));
vec2 lightmap = dataUnpacked1.yz;
vec3 normal = decode(dataUnpacked0.yw);
////// --------------- UNPACK TRANSLUCENT GBUFFERS --------------- //////
// vec4 dataTranslucent = texture2D(colortex11,texcoord);
@ -817,8 +845,6 @@ void main() {
////// --------------- UNPACK MISC --------------- //////
vec4 SpecularTex = texture2D(colortex8,texcoord);
// float LabSSS = clamp((-65.0 + SpecularTex.z * 255.0) / 190.0 ,0.0,1.0);
float LabSSS = clamp((-64.0 + SpecularTex.z * 255.0) / 191.0 ,0.0,1.0);
vec4 normalAndAO = texture2D(colortex15,texcoord);
@ -832,23 +858,20 @@ void main() {
#endif
#endif
float vanilla_AO = normalAndAO.a;
bool lightningBolt = abs(dataUnpacked1.w-0.5) <0.01;
// masks
bool isLeaf = abs(dataUnpacked1.w-0.55) <0.01;
// bool translucent2 = abs(dataUnpacked1.w-0.6) <0.01; // Weak translucency
// bool translucent4 = abs(dataUnpacked1.w-0.65) <0.01; // Weak translucency
bool lightningBolt = abs(dataUnpacked1.w-0.50) <0.01;
bool entities = abs(dataUnpacked1.w-0.45) < 0.01;
bool hand = abs(dataUnpacked1.w-0.75) < 0.01;
bool blocklights = abs(dataUnpacked1.w-0.8) <0.01;
// vec3 AO = vec3(1.0);
float SkySSS = 0.0;
bool isGrass = abs(dataUnpacked1.w-0.60) < 0.01;
float vanilla_AO = normalAndAO.a;
vec3 filtered = vec3(1.412,1.0,0.0);
if (!hand) filtered = texture2D(colortex3,texcoord).rgb;
vec3 ambientCoefs = normal/dot(abs(normal),vec3(1.));
vec3 ambientCoefs = slopednormal/dot(abs(slopednormal),vec3(1.));
vec3 DirectLightColor = lightCol.rgb/80.0;
vec3 Direct_SSS = vec3(0.0);
@ -863,16 +886,13 @@ void main() {
if(hand) DirectLightColor *= pow(clamp(eyeBrightnessSmooth.y/240. + lightmap.y,0.0,1.0),2.0);
#endif
vec3 AmbientLightColor = averageSkyCol_Clouds;
vec3 Indirect_SSS = vec3(0.0);
int shadowmapindicator = 0;
float cloudShadow = 1.0;
vec3 debug = vec3(0.0);
vec3 AmbientLightColor = averageSkyCol_Clouds;
vec3 Indirect_SSS = vec3(0.0);
vec3 debug = vec3(0.0);
if ( z >= 1.) {//sky
//////////////////////////////// ////////////////////////////////
@ -1030,29 +1050,23 @@ void main() {
vec3 Indirect_lighting = vec3(1.0);
// float skylight = clamp(abs(ambientCoefs.y + 1.0),0.35,2.0);
if(isGrass) ambientCoefs.y = 0.75;
float skylight = clamp(ambientCoefs.y + 0.5,0.25,2.0) * 1.35;
// skylight *= skylight;
// if(texcoord.x >0.5) skylight = clamp(abs(ambientCoefs.y + 1.0),0.35,2.0);
#if indirect_effect == 2 || indirect_effect == 3 || indirect_effect == 4
if (!hand) skylight = 1.0;
#endif
AmbientLightColor += (lightningEffect * 10) * skylight * pow(lightmap.y,2);
// do this to make underwater shading easier.
vec2 newLightmap = lightmap.xy;
// if(isEyeInWater == 1 && !iswater) newLightmap.y = max(newLightmap.y, 0.5);
#ifndef ambientSSS_view
Indirect_lighting = DoAmbientLighting(AmbientLightColor, vec3(TORCH_R,TORCH_G,TORCH_B), newLightmap.xy, skylight);
Indirect_lighting = DoAmbientLighting(AmbientLightColor, vec3(TORCH_R,TORCH_G,TORCH_B), lightmap.xy, skylight);
#else
Indirect_lighting = vec3(0.0);
#endif
vec3 AO = vec3(1.0);
float SkySSS = 0.0;
// vanilla AO
#if indirect_effect == 0
@ -1062,7 +1076,7 @@ void main() {
// SSAO + vanilla AO
#if indirect_effect == 1
AO = vec3( exp( (vanilla_AO*vanilla_AO) * -3) ) ;
if (!hand) ssAO(AO, SkySSS, fragpos, 1.0, blueNoise(gl_FragCoord.xy).rg, FlatNormals , texcoord, ambientCoefs, newLightmap.xy, isLeaf);
if (!hand) ssAO(AO, SkySSS, fragpos, 1.0, blueNoise(gl_FragCoord.xy).rg, FlatNormals , texcoord, ambientCoefs, lightmap.xy, isLeaf);
#endif
// GTAO
@ -1074,12 +1088,12 @@ void main() {
// RTAO
#if indirect_effect == 3
if (!hand) rtAO(AO, normal, blueNoise(gl_FragCoord.xy).rg, fragpos, newLightmap.y, NdotL*Shadows);
if (!hand) rtAO(AO, normal, blueNoise(gl_FragCoord.xy).rg, fragpos, lightmap.y, NdotL*Shadows);
#endif
// SSGI
#if indirect_effect == 4
if (!hand) rtGI(Indirect_lighting, normal, blueNoise(gl_FragCoord.xy).rg, fragpos, newLightmap.y, albedo);
if (!hand) rtGI(Indirect_lighting, normal, blueNoise(gl_FragCoord.xy).rg, fragpos, lightmap.y, albedo);
#endif
#ifndef AO_in_sunlight
@ -1100,12 +1114,12 @@ void main() {
#endif
vec3 ambientColor = ((AmbientLightColor * ambient_brightness) / 30.0 ) * 1.5;
float lightmap = pow(newLightmap.y,3);
float skylightmap = pow(lightmap.y,3);
float uplimit = clamp(1.0-pow(clamp(ambientCoefs.y + 0.5,0.0,1.0),2),0,1);
SSS_forSky = SubsurfaceScattering_sky(albedo, SkySSS, LabSSS);
SSS_forSky *= ambientColor;
SSS_forSky *= lightmap;
SSS_forSky *= skylightmap;
SSS_forSky *= uplimit;
// Combine with the other SSS
@ -1113,12 +1127,10 @@ void main() {
SSS_forSky = vec3((1.0 - SkySSS) * LabSSS);
SSS_forSky *= ambientColor;
SSS_forSky *= lightmap;
SSS_forSky *= skylightmap;
////light up dark parts so its more visible
Indirect_lighting = max(Indirect_lighting, SSS_forSky);
}
#endif
@ -1197,7 +1209,12 @@ void main() {
#endif
#ifdef Specular_Reflections
MaterialReflections(FINAL_COLOR, SpecularTex.r, SpecularTex.ggg, albedo, WsunVec, (Shadows*NdotL)*DirectLightColor, lightmap.y, slopednormal, np3, fragpos, vec3(blueNoise(gl_FragCoord.xy).rg, interleaved_gradientNoise()), hand, entities);
// MaterialReflections(FINAL_COLOR, SpecularTex.r, SpecularTex.ggg, albedo, WsunVec, (Shadows*NdotL)*DirectLightColor, lightmap.y, slopednormal, np3, fragpos, vec3(blueNoise(gl_FragCoord.xy).rg, interleaved_gradientNoise()), hand, entities);
float NdotL_spec = dot(AlteredNormal,WsunVec); NdotL_spec = clamp((-15 + NdotL_spec*255.0) / 240.0 ,0.0,1.0);
vec3 specNoise = vec3(blueNoise(gl_FragCoord.xy).rg, interleaved_gradientNoise());
DoSpecularReflections(FINAL_COLOR, fragpos, np3, WsunVec, specNoise, slopednormal, SpecularTex.r, SpecularTex.g, albedo, DirectLightColor*NdotL_spec*Shadows, lightmap.y, hand);
#endif
Emission(FINAL_COLOR, albedo, SpecularTex.a);
@ -1257,8 +1274,5 @@ void main() {
if( hideGUI < 1.0) gl_FragData[0].rgb += laserColor * pow( clamp( 1.0-abs(focusDist-abs(fragpos.z)) ,0,1),25) ;
#endif
// gl_FragData[0].rgb = debug;
/* DRAWBUFFERS:3 */
}

View File

@ -60,7 +60,9 @@ void main() {
averageSkyCol_Clouds = texelFetch2D(colortex4,ivec2(0,37),0).rgb;
// averageSkyCol = texelFetch2D(colortex4,ivec2(1,37),0).rgb;
// averageSkyCol_Clouds = texelFetch2D(colortex4,ivec2(1,37),0).rgb;;
// sunColor = texelFetch2D(colortex4,ivec2(6,37),0).rgb;
// moonColor = texelFetch2D(colortex4,ivec2(13,37),0).rgb;

View File

@ -316,7 +316,7 @@ void main() {
// bloomy rain effect
float rainDrops = clamp(texture2D(colortex9,texcoord).a, 0.0,1.0);
if(rainDrops > 0.0) bloomyFogMult *= clamp(1.0 - pow(rainDrops*5.0,1),0.0,1.0);
if(rainDrops > 0.0) bloomyFogMult *= clamp(1.0 - pow(rainDrops*5.0,2),0.0,1.0);
/// lava.
if (isEyeInWater == 2){

View File

@ -8,7 +8,7 @@
flat varying vec3 sunColor;
flat varying vec3 moonColor;
flat varying vec3 averageSkyCol_Clouds;
flat varying vec3 averageSkyCol;
@ -96,7 +96,7 @@ void main() {
vec3 fragpos = toScreenSpace(vec3(halfResTC*texelSize,1));
vec4 currentClouds = renderClouds(fragpos,vec2(R2_dither(),blueNoise2()), sunColor/80., moonColor/150., averageSkyCol_Clouds/30.0);
vec4 currentClouds = renderClouds(fragpos,vec2(R2_dither(),blueNoise2()), sunColor/80., moonColor/150., averageSkyCol/30.0);
gl_FragData[0] = currentClouds;

View File

@ -2,7 +2,7 @@
//#extension GL_EXT_gpu_shader4 : disable
#include "/lib/settings.glsl"
flat varying vec3 averageSkyCol_Clouds;
flat varying vec3 averageSkyCol;
flat varying vec3 sunColor;
flat varying vec3 moonColor;
@ -30,7 +30,7 @@ void main() {
gl_Position.xy = (gl_Position.xy*0.5+0.5)*RENDER_SCALE*2.0-1.0;
#endif
averageSkyCol_Clouds = texelFetch2D(colortex4,ivec2(1,37),0).rgb;
averageSkyCol = texelFetch2D(colortex4,ivec2(1,37),0).rgb;
sunColor = texelFetch2D(colortex4,ivec2(6,37),0).rgb;
moonColor = texelFetch2D(colortex4,ivec2(13,37),0).rgb;

View File

@ -227,6 +227,7 @@ void main() {
blockID = mc_Entity.x;
velocity = at_velocity;
if(mc_Entity.x == 10009) normalMat.a = 0.60;
PORTAL = 0;
@ -274,7 +275,7 @@ void main() {
#ifdef ENTITIES
if(entityId == 12345){
LIGHTNING = 1;
normalMat.a = 0.5;
normalMat.a = 0.50;
}
#endif
@ -289,10 +290,11 @@ void main() {
#ifdef WORLD
/////// ----- SSS ON BLOCKS ----- ///////
// strong
if(mc_Entity.x == 10001 || mc_Entity.x == 10003 || mc_Entity.x == 10004) SSSAMOUNT = 1.0;
if(mc_Entity.x == 10001 || mc_Entity.x == 10003 || mc_Entity.x == 10004 || mc_Entity.x == 10009) SSSAMOUNT = 1.0;
// medium
if(mc_Entity.x == 10006 || mc_Entity.x == 200) SSSAMOUNT = 0.75;
@ -340,7 +342,7 @@ void main() {
// #endif
// #endif
if ((mc_Entity.x == 10001 && istopv) && abs(position.z) < 64.0) {
if ((mc_Entity.x == 10001 || mc_Entity.x == 10009 && istopv) && abs(position.z) < 64.0) {
vec3 worldpos = mat3(gbufferModelViewInverse) * position + gbufferModelViewInverse[3].xyz + cameraPosition;
worldpos.xyz += calcMovePlants(worldpos.xyz)*lmtexcoord.w - cameraPosition;
position = mat3(gbufferModelView) * worldpos + gbufferModelView[3].xyz;

View File

@ -219,7 +219,7 @@ screen.Post_Processing = Post Processing
screen.Exposure = Exposure Settings
screen.DepthOfField = Depth Of Field Settings
screen.Purkinje_effect = Purkinje Effect Settings
option.SHARPENING = CAS Sharpening amount
option.SHARPENING = Sharpening amount
option.BLOOM_STRENGTH = Bloom Multiplier
screen.TAA_OPTIONS = Anti-Aliasing Settings
option.SCREENSHOT_MODE = Screenshot Mode

View File

@ -1,466 +1,492 @@
option.PhysicsMod_support=Suporte ao PhysicsMod
screen.Misc_Settings = Configurações Diversas
screen.the_orb=O Orb
option.THE_ORB=O Orb
option.ORB_X=Orb X
option.ORB_Y=Orb Y
option.ORB_Z=Orb Z
option.ORB_ColMult=Orb MultiplicadorCol
option.ORB_R=Orb Vermelho
option.ORB_G=Orb Verde
option.ORB_B=Orb Azul
screen.the_orb = O Orb
option.THE_ORB = O Orb
option.ORB_X = Orb X
option.ORB_Y = Orb Y
option.ORB_Z = Orb Z
option.ORB_ColMult = Orb MultiplicadorCol
option.ORB_R = Orb Vermelho
option.ORB_G = Orb Verde
option.ORB_B = Orb Azul
option.WhiteWorld=Mundo Branco
option.WhiteWorld=Mundo Branco
option.ambientLight_only=Apenas Luz Ambiente
option.Glass_Tint=Tintura de Vidro
option.display_LUT=Mostrar LUT
option.ambientSSS_view=Visualização de SSS vindo do Céu
screen.Sun_and_Moon_Colors = Cores Lua/Sol
option.sunColorR=SolCor Vermelha
option.sunColorG=SolCor Verde
option.sunColorB=SolCor Azul
option.moonColorR=LuaCor Vermelha
option.moonColorG=LuaCor Verde
option.moonColorB=LuaCor Azul
option.colortype=Tipo de Cor
option.Sun_temp=Temperatura do Sol
option.Moon_temp=Temperatura da Lua
screen.Sun_and_Moon_Colors = Cores Lua/Sol
option.sunPathRotation = Ângulo do Sol
option.sun_illuminance = Iluminância do Sol
option.sun_illuminance = Iluminância do Sol
option.moon_illuminance = Iluminância da Lua
option.OLD_LIGHTLEAK_FIX = Prevenão de Vazamento de Luz antiga
screen.Waving_Stuff = Plantas Balançando
option.WAVY_PLANTS = Plantas Balançando
option.WAVY_STRENGTH = Força do Balanço
option.WAVY_SPEED = Velocidade do Balanço
screen.Direct_Light = Luz Direta
screen.Filtering = Configurações do Filtro de Sombras
screen.Shadows = Sombras
option.Variable_Penumbra_Shadows= Sombras de Penumbra Variável(VPS)
option.VPS_Search_Samples=Amostragem de Procura VPS
option.Min_Shadow_Filter_Radius=Raio Minimo do Filtro de Sombra
option.Max_Shadow_Filter_Radius=Raio Máximo do Filtro de Sombra
option.Max_Filter_Depth=Profundidade Máxima do Filtro de Sombra
option.SHADOW_FILTER_SAMPLE_COUNT=Amostragem do Filtro de Sombra
option.SCREENSPACE_CONTACT_SHADOWS = Sombras de Contato
option.RENDER_ENTITY_SHADOWS = Sombras para Entidades
option.Stochastic_Transparent_Shadows=Sombras Transparentes Estocásticas
option.SHADOW_FRUSTRUM_CULLING= Redução de Sombras Fora de Vista
option.SHADOW_FRUSTRUM_CULLING.comment= Essa opção não funciona nas versões 1.17+. Pode aumentar o desempenho, mas cria gráficos incorretos nas sombras distantes.
option.SCREENSPACE_CONTACT_SHADOWS = Sombras de Contato
option.RENDER_ENTITY_SHADOWS = Sombras para Entidades
option.shadowMapResolution = Resolução da Sombra
option.shadowDistance = Distância da Sombra
value.shadowDistance.64.0 = 4 Chunks
value.shadowDistance.80.0 = 5 Chunks
value.shadowDistance.96.0 = 6 Chunks
value.shadowDistance.112.0 = 7 Chunks
value.shadowDistance.128.0 = 8 Chunks
value.shadowDistance.144.0 = 9 Chunks
value.shadowDistance.160.0 = 10 Chunks
value.shadowDistance.176.0 = 11 Chunks
value.shadowDistance.192.0 = 12 Chunks
value.shadowDistance.208.0 = 13 Chunks
value.shadowDistance.224.0 = 14 Chunks
value.shadowDistance.240.0 = 15 Chunks
value.shadowDistance.256.0 = 16 Chunks
value.shadowDistance.272.0 = 17 Chunks
value.shadowDistance.288.0 = 18 Chunks
value.shadowDistance.304.0 = 19 Chunks
value.shadowDistance.320.0 = 20 Chunks
value.shadowDistance.336.0 = 21 Chunks
value.shadowDistance.352.0 = 22 Chunks
value.shadowDistance.368.0 = 23 Chunks
value.shadowDistance.384.0 = 24 Chunks
value.shadowDistance.400.0 = 25 Chunks
value.shadowDistance.416.0 = 26 Chunks
value.shadowDistance.432.0 = 27 Chunks
value.shadowDistance.448.0 = 28 Chunks
value.shadowDistance.464.0 = 29 Chunks
value.shadowDistance.480.0 = 30 Chunks
value.shadowDistance.496.0 = 31 Chunks
value.shadowDistance.512.0 = 32 Chunks
option.shadowDistanceRenderMul = Limite Máximo da Sombra
value.shadowDistanceRenderMul.-1.0 = Não Otimizado
value.shadowDistanceRenderMul.1.0 = Otimizado
screen.Filtering = Ajuste do Filtro de Sombras
option.BASIC_SHADOW_FILTER = Filtro Básico de Sombra
option.SHADOW_FILTER_SAMPLE_COUNT = Amostragem do Filtro Básico de Sombra
option.Min_Shadow_Filter_Radius = Alcance Mínimo do Filtro de Sombra
option.Variable_Penumbra_Shadows = Sombras de Penumbra Variável
option.VPS_Search_Samples = Amostragem de Filtro SPV
option.Max_Shadow_Filter_Radius = Alcance Máximo do Filtro de Sombra
option.Max_Filter_Depth = Fator Tamanho do Sol
screen.Subsurface_Scattering = Espalhamento de Subsuperfície (SSS)
screen.Subsurface_Scattering = Espalhamento de Subsuperfície/SSS
option.LabSSS_Curve = Curva LabSSS
option.MISC_BLOCK_SSS = SSS para blocos aleatórios
option.MOB_SSS = SSS para mobs
option.Ambient_SSS = SSS vindo do Céu
option.ambientsss_brightness = Brilho do SSS vindo do Céu
option.MISC_BLOCK_SSS = SSS Para Blocos Diversos
option.MOB_SSS = SSS Para Criaturas
option.Ambient_SSS = SSS Vindo do Céu
option.ambientsss_brightness = Brilho do SSS Vindo do Céu
option.SSS_TYPE = Modo
option.SSS_TYPE.comment = Rígido significa que os shaders definem o que recebe SSS. LabSSS significa que o pacote de textura define o que recebe SSS. RTX é sem nenhum SSS. Eu tive que roubar esse formato, RRe36
value.SSS_TYPE.0 = RTX
value.SSS_TYPE.1 = Somente Rígido
value.SSS_TYPE.2 = Rígido + LabSSS
value.SSS_TYPE.3 = Somente LabSSS
value.SSS_TYPE.0 = Nenhum
value.SSS_TYPE.1 = Somente Embutido
value.SSS_TYPE.2 = Embutido + LabSSS
value.SSS_TYPE.3 = Somente LabSSS
screen.Ambient_light = Luz Ambiente
option.AO_Strength = Multiplicador de AO
option.GI_Strength = Multiplicador de GI
option.AO_Strength = Quantidade de AO
option.GI_Strength = Quantidade de GI
option.HQ_SSGI = SSGI de Longo Alcance
option.Hand_Held_lights = Luz de Mão
option.ambientOcclusionLevel = Quantidade da AO Vanilla
option.Hand_Held_lights = Luz Portátil
option.ambientOcclusionLevel = Quantidade de Vanilla AO
option.ambient_brightness = Brilho da Luz Ambiente
option.MIN_LIGHT_AMOUNT = Mínimo de Brilho da Luz
option.MIN_LIGHT_AMOUNT = Brilho Mínimo da Luz
option.indirect_effect = Luz Indireta
value.indirect_effect.0 = AO Vanilla
value.indirect_effect.0 = Vanilla AO
value.indirect_effect.1 = SSAO
value.indirect_effect.2 = GTAO
value.indirect_effect.3 = RTAO
value.indirect_effect.4 = SSGI
screen.Ambient_Colors = Cor da Luz Ambiente
screen.Ambient_Colors = Cor da Luz Ambiente
option.ambient_temp = Temperatura
option.AmbientLight_R = Quantia de Vermelho
option.AmbientLight_G = Quantia de Verde
option.AmbientLight_B = Quantia de Azul
option.AmbientLight_R = Quant. Vermelho
option.AmbientLight_G = Quant. Verde
option.AmbientLight_B = Quant. Azul
option.ambient_colortype = Tipo de Coloração
value.ambient_colortype.0 = Temperatura
value.ambient_colortype.1 = RGB
screen.Torch_Colors = Cor da Tocha
option.TORCH_AMOUNT = Multiplicador de Luz da Torcha
option.TORCH_R = Quantia de Vermelho
option.TORCH_G = Quantia de Verde
option.TORCH_B = Quantia de Azul
option.TORCH_AMOUNT = Quantiadade de Luz na Tocha
option.TORCH_R = Quant. Vermelho
option.TORCH_G = Quant. Verde
option.TORCH_B = Quant. Azul
screen.Fog = Configurações da Névoa
option.VL_RENDER_RESOLUTION = Escala de Resolução da Névoa
screen.Fog = Ajustes da Névoa
option.VL_RENDER_RESOLUTION = Dimensionamento da Resolução da Névoa
option.VL_SAMPLES = Amostragem de Névoa
option.BLOOMY_FOG = Quantidade de Névoa Difusa
option.Haze_amount = Quantidade de Neblina Atmosférica
option.RainFog_amount = Multiplicador da Névoa de Chuva
option.Cloud_Fog = Névoa Dentro de Nuvens
option.BorderFog = Névoa nas Bordas de Chunks
option.Haze_amount = Densidade da Névoa Atmosférica
option.RainFog_amount = Quantidade de Névoa na Chuva
option.Cloud_Fog = Névoa Dentro das Nuvens
option.BorderFog = Névoa na Borda dos Chunks
screen.TOD_fog = Névoa Por Horário do Dia
option.TOD_Fog_mult = Multiplicador de Densidade da Névoa
screen.TOD_fog = Névoa por Horário
option.TOD_Fog_mult = Valor de Densidade da Névoa
option.Morning_Uniform_Fog = Densidade da Névoa de Manhã
option.Noon_Uniform_Fog = Densidade da Névoa ao Meio-Dia
option.Evening_Uniform_Fog = Densidade da Névoa a Tarde
option.Night_Uniform_Fog = Densidade da Névoa de Noite
option.Morning_Cloudy_Fog = Densidade da Névoa de Manhã Nublada
option.Noon_Cloudy_Fog = Densidade da Névoa ao Meio-Dia Nublada
option.Evening_Cloudy_Fog = Densidade da Névoa a Tarde Nublada
option.Night_Cloudy_Fog = Densidade da Névoa de Noite Nublada
option.Noon_Uniform_Fog = Densidade da Névoa ao Meio-dia
option.Evening_Uniform_Fog = Densidade da Névoa à Tarde
option.Night_Uniform_Fog = Densidade da Névoa à Noite
option.Morning_Cloudy_Fog = Densidade da Nublagem de Manhã
option.Noon_Cloudy_Fog = Densidade da Nublagem ao Meio-Dia
option.Evening_Cloudy_Fog = Densidade da Nublagem à Tarde
option.Night_Cloudy_Fog = Densidade da Nublagem à Noite
screen.Biome_Fog = Névoa Específica de Bioma
option.Biome_specific_environment = Névoa Específica de Bioma
screen.Biome_Fog = Névoa Própria de Bioma
option.Biome_specific_environment = Névoa Própria de Bioma
screen.Cave_Fog = Névoa de Caverna
option.Cave_fog = Névoa da Caverna
option.CaveFogFallOff = Queda da Névoa
option.CaveFogColor_R = Névoa Vermelho
option.CaveFogColor_G = Névoa Verde
option.CaveFogColor_B = Névoa Azul
screen.Cave_Fog = Névoa em Caverna
option.Cave_Fog = Névoa em Caverna
option.CaveFogFallOff = Diminuição da Névoa
option.CaveFogColor_R = Névoa R
option.CaveFogColor_G = Névoa G
option.CaveFogColor_B = Névoa B
screen.Clouds = Configurações da Nuvem
screen.Clouds = Ajustes das Nuvens
option.VOLUMETRIC_CLOUDS = Nuvens Volumétricas
option.CLOUDS_QUALITY = Escala de Resolução da Nuvem
option.CLOUDS_SHADOWS = Sombra Projetada Pela Nuvem
option.Daily_Weather = Clima Diário
option.Cloud_Speed = Multiplicador de Velocidade da Nuvem
option.Rain_coverage = Cobertura durante Chuva
option.CLOUDS_QUALITY = Dimensionamento da Resolução das Nuvens
option.CLOUDS_SHADOWS = Sombras da Nuvens
option.Daily_Weather = Tempo Diário
option.Cloud_Speed = Quantiade de Velociade das Nuvens
option.Rain_coverage = Cobertura em Dias Chuvosos
option.Cumulus = Nuvens Cúmulos
option.Cumulus_coverage = Cobertura
option.Cumulus_density = Densidade
option.Cumulus_height = Altitude das Cúmulus
option.Cumulus_height = Altura
option.Altostratus = Nuvens de Alto-Estratos
option.Altostratus = Nuvens Alto-estratos
option.Alto_coverage = Cobertura
option.Alto_density = Densidade
screen.Climate = Configurações de Clima
screen.Seasons=Estações
screen.Climate = Ajustes Climáticos
option.Seasons = Cores Sazonais
option.Season_Length = Duração das Estações (Em Dias)
option.Start_Season = Primeira Estação
value.Start_Season.0 = Verão (Padrão)
value.Start_Season.1 = Outono
value.Start_Season.2 = Inverno
value.Start_Season.3 = Primavera
option.Snowy_Winter = Neve Durante o Inverno
screen.Summer_colors = Cores do Verão
option.Summer_R = Quantidade de Vermelho
option.Summer_G = Quantidade de Verde
option.Summer_B = Quantidade de Azul
option.Summer_Leaf_R = Quantidade de Vermelho (para Folhas)
option.Summer_Leaf_G = Quantidade de Verde (para Folhas))
option.Summer_Leaf_B = Quantidade de Azul (para Folhas))
option.Summer_R = Quant. Vermelho
option.Summer_G = Quant. Verde
option.Summer_B = Quant. Azul
option.Summer_Leaf_R = Quant. Vermelho (Para Folhas)
option.Summer_Leaf_G = Quant. Verde (Para Folhas)
option.Summer_Leaf_B = Quant. Azul (Para Folhas)
screen.Fall_colors = Cores do Outono
option.Fall_R = Quantidade de Vermelho
option.Fall_G = Quantidade de Verde
option.Fall_B = Quantidade de Azul
option.Fall_Leaf_R = Quantidade de Vermelho (para Folhas)
option.Fall_Leaf_G = Quantidade de Verde (para Folhas)
option.Fall_Leaf_B = Quantidade de Azul (para Folhas)
option.Fall_R = Quant. Vermelho
option.Fall_G = Quant. Verde
option.Fall_B = Quant. Azul
option.Fall_Leaf_R = Quant. Vermelho (Para Folhas)
option.Fall_Leaf_G = Quant. Verde (Para Folhas)
option.Fall_Leaf_B = Quant. Azul (Para Folhas)
screen.Winter_colors = Cores do Inverno
option.Winter_R = Quantidade de Vermelho
option.Winter_G = Quantidade de Verde
option.Winter_B = Quantidade de Azul
option.Winter_Leaf_R = Quantidade de Vermelho (para Folhas)
option.Winter_Leaf_G = Quantidade de Verde (para Folhas)
option.Winter_Leaf_B = Quantidade de Azul (para Folhas)
option.Winter_R = Quant. Vermelho
option.Winter_G = Quant. Verde
option.Winter_B = Quant. Azul
option.Winter_Leaf_R = Quant. Vermelho (Para Folhas)
option.Winter_Leaf_G = Quant. Verde (Para Folhas)
option.Winter_Leaf_B = Quant. Azul (Para Folhas)
screen.Spring_colors = Cores da Primavera
option.Spring_R = Quant. Vermelho
option.Spring_G = Quant. Verde
option.Spring_B = Quant. Azul
option.Spring_Leaf_R = Quant. Vermelho (Para Folhas)
option.Spring_Leaf_G = Quant. Verde (Para Folhas)
option.Spring_Leaf_B = Quant. Azul (Para Folhas)
screen.Spring_colors = Cores da Primavera
option.Spring_R = Quantidade de Vermelho
option.Spring_G = Quantidade de Verde
option.Spring_B = Quantidade de Azul
option.Spring_Leaf_R = Quantidade de Vermelho (para Folhas)
option.Spring_Leaf_G = Quantidade de Verde (para Folhas)
option.Spring_Leaf_B = Quantidade de Azul (para Folhas)
screen.World = Mundo
screen.Water = Configurações da Água
option.WATER_REFLECTIONS = Reflexos na Água
option.SCREENSPACE_REFLECTIONS = Reflexos no Espaço de Tela (SSR)
screen.Water = Ajustes da Água
option.WATER_REFLECTIONS = Reflexos Especulares na Água
option.SCREENSPACE_REFLECTIONS = Reflexos no Espaço da Tela / SSR
option.SSR_STEPS = Qualidade do SSR
option.WATER_SUN_SPECULAR = Reflexos do Sol/Lua
option.WATER_BACKGROUND_SPECULAR = Reflexos do Céu/Névoa
option.WATER_SUN_SPECULAR = Reflexos do Sol/Lua
option.WATER_BACKGROUND_SPECULAR = Reflexos do Céu/Névoa
option.Refraction = Refração na Água/Vidro
option.Vanilla_like_water=Água Estilo Vanilla
option.Vanilla_like_water.comment=Água com cor e textura vanilla
option.Dirt_Amount = Quantidade de Sujeira
option.rayMarchSampleCount=Amostragem de Ray Marching
option.USE_QUARTER_RES_DEPTH=Usar Profundidade em 1/4 de Resolução
option.Water_Top_Layer = Coordenada Y do Oceano
screen.Water_fog_color = Configurações de Névoa da Água
option.Dirt_Scatter_R = Dispersão Vermelha (Sujeira)
option.Dirt_Scatter_G = Dispersão Verde (Sujeira)
option.Dirt_Scatter_B = Dispersão Azul (Sujeira)
option.Dirt_Absorb_R = Absorção Vermelha (Sujeira)
screen.Water_fog_color = Ajustes da Névoa na Água
option.Dirt_Scatter_R = Disperção Vermelho (Sujeira)
option.Dirt_Scatter_G = Disperção Verde (Sujeira)
option.Dirt_Scatter_B = Disperção Azul (Sujeira)
option.Dirt_Absorb_R = Absorção Vermelho (Sujeira)
option.Dirt_Absorb_G = Absorção Verde (Sujeira)
option.Dirt_Absorb_B = Absorção Azul (Sujeira)
option.Water_Absorb_R = Absorção Vermelha (Água)
option.Water_Absorb_G = Absorção Verde (Água)
option.Water_Absorb_B = Absorção Azul (Água)
screen.Post_Processing = Pós-Pocessamento
screen.DepthOfField = Profundidade de Campo
option.SHARPENING = Quantidade de Nitidez CAS
option.BLOOM_STRENGTH = Multiplicador de Bloom
option.BLOOM_QUALITY=Qualidade do Bloom
screen.TAA_OPTIONS = Antisserrilhamento
screen.Post_Processing = Pós-processamento
screen.Tonemapping = Mapeamento de Tons/Ajustes de Cor
option.TONEMAP = Mapeamento de Tons
option.USE_ACES_COLORSPACE_APPROXIMATION = Usar Aproximação de Espaço de Cores ACES
option.SATURATION = Saturação
option.CROSSTALK = Crosstalk
option.CONTRAST = Contraste
option.FinalR = Vermelho Final
option.FinalG = Verde Final
option.FinalB = Azul Final
screen.Exposure = Ajustes de Exposição
option.AUTO_EXPOSURE = Exposição Automática
option.EXPOSURE_MULTIPLIER = Multiplicador de Exposição
option.Exposure_Speed = Velocidade de Ajuste de Exposição
option.Manual_exposure_value = Valor Manual de Exposição
screen.DepthOfField = Ajustes de Profundidade de Campo
screen.Purkinje_effect = Ajustes da Mudança de Purkinje
option.Purkinje_strength = Intensidade do Purkinje
option.Purkinje_R = Purkinje Vermelho
option.Purkinje_G = Purkinje Verde
option.Purkinje_B = Purkinje Azul
option.Purkinje_Multiplier = Multiplicador de Purkinje
option.SHARPENING = Quantidade de Nitidez CAS
option.BLOOM_STRENGTH = Quantidade de Bloom
screen.TAA_OPTIONS = Ajustes do Antisserrilhamento
option.SCREENSHOT_MODE = Modo Screenshot
option.TAA = TAA
option.BLEND_FACTOR = Coeficiente de Mistura
option.TAA_UPSCALING = Ampliação Temporal
option.SCALE_FACTOR = Coeficiente de Escala
option.BLEND_FACTOR = Determinante de Mistura
option.TAA_UPSCALING = Upscaling Temporal
option.SCALE_FACTOR = Determinante de Tamanho
screen.Tonemapping=Mapeamento de Tons/Cor
option.TONEMAP=Mapeamento de Tom
option.USE_ACES_COLORSPACE_APPROXIMATION=Usar Aproximação de Espaço de Cores ACES
option.SATURATION=Saturação
option.CROSSTALK=Diafonia
option.FinalR=Vermelho Final
option.FinalG=Verde Final
option.FinalB=Azul Final
screen.Exposure=Exposição
option.AUTO_EXPOSURE=Exposição Automática
option.EXPOSURE_MULTIPLIER=Multiplicador de Exposição
option.Exposure_Speed=Velocidade de Ajuste de Exposição
option.Manual_exposure_value=Valor Manual de Exposição
screen.Purkinje_effect=Efeito Purkinje
option.Purkinje_strength=Força do Purkinje
option.Purkinje_R=Purkinje Vermelho
option.Purkinje_G=Purkinje Verde
option.Purkinje_B=Purkinje Azul
option.Purkinje_Multiplier=Multiplicador de Purkinje
screen.LabPBR = Lab PBR
screen.Reflections = Reflexões Especulares
option.Specular_Reflections = Reflexões Especulares
option.Screen_Space_Reflections = Reflexos no Espaço de Tela
option.Rough_reflections = Aspereza Detalhada
option.Sky_reflection = Refletir Céu/Névoa
option.Dynamic_SSR_quality = SSR de Qualidade Dinâmica
option.Roughness_Threshold = Limiar de Reflexão
option.Sun_specular_Strength = Multiplicador de Reflexo do Sol
screen.LabPBR = LabPBR
screen.Reflections = Reflexos Especulares
option.Specular_Reflections = Reflexos Especulares
option.Screen_Space_Reflections = Reflexos no Espaço da Tela / SSR
option.Rough_reflections = Rugosidade Detalhada
option.Sky_reflection = Reflexos do Céu/Névoa
option.Dynamic_SSR_quality = Qualidade Dinâmica do SSR
option.Roughness_Threshold = Nível do Reflexo
option.Sun_specular_Strength = Intensidade do Reflexo do Sol
option.reflection_quality = Qualidade do SSR
screen.Emissives = Emissivos
option.Emissive_Brightness = Multiplicador de Emissão
option.Emissive_Curve = Curva de Emissão
screen.Emissives = Emissivos
option.Emissive_Brightness = Quantidade de Emissão
option.Emissive_Curve = Curva da Emissão
option.EMISSIVE_TYPE = Modo
option.EMISSIVE_TYPE.comment = Rígido significa que o shaders define o que tem emissão. Emissão Lab significa que o pacote de textura define o que tem emissão.
value.EMISSIVE_TYPE.0 = Sem emissão
value.EMISSIVE_TYPE.1 = Somente Rígido
value.EMISSIVE_TYPE.2 = Rígido + Emissão Lab
value.EMISSIVE_TYPE.0 = Nenhuma Emissão
value.EMISSIVE_TYPE.1 = Somente Embutido
value.EMISSIVE_TYPE.2 = Embutido + Emissão Lab
value.EMISSIVE_TYPE.3 = Somente Emissão Lab
screen.POM = Mapeamento de Oclusão de Paralaxe / POM
option.POM = Mapeamento de Oclusão de Paralaxe
screen.POM = Mapameamento de Oclusão Paralaxe / POM
option.POM = Mapameamento de Oclusão Paralaxe
option.MAX_ITERATIONS = Qualidade
option.POM_DEPTH = Profundidade
option.MAX_DIST = Distância Máxima
option.Adaptive_Step_length = Qualidade Dinâmica
option.Horrible_slope_normals = Inclinação Normal Horrível
option.Horrible_slope_normals = Inclinação de Relevo Ruim
screen.Porosity = Porosidade / Poças
option.Porosity = Porosidade
option.Puddles = Poças
option.Puddle_Size = Multiplicador do Tamanho das Poças
screen.Waving_Stuff=Coisas Balançando
option.WAVY_STRENGTH=Força do Balanço
option.WAVY_SPEED=Velocidade do Balanço
option.WAVY_PLANTS=Plantas Balançando
option.Puddle_Size = Ajuste do Tamanho das Poças
option.DOF_QUALITY=Porfundidade de Campo(DoF)
option.DOF_QUALITY=Profundidade de Campo
value.DOF_QUALITY.-1=Desligado
value.DOF_QUALITY.0=Hexagonal
value.DOF_QUALITY.1=Baixo
value.DOF_QUALITY.2=Médio
value.DOF_QUALITY.3=Alto
value.DOF_QUALITY.4=Ultra
option.DOF_ANAMORPHIC_RATIO=Razão Anamórfica
option.AUTOFOCUS=Auto-Foco
value.DOF_QUALITY.5=Variação
screen.JITTER_DOF= Profundidade de Campo por Variação
option.focal=Distância Focal
option.aperture=Abertura
option.MANUAL_FOCUS=Foco Manual
option.DoF_Adaptation_Speed=Velocidade de Adaptação do DoF
option.MANUAL_FOCUS=Foco
option.DOF_ANAMORPHIC_RATIO=Altura Anamórfica
value.MANUAL_FOCUS.-2=Autofoco
value.MANUAL_FOCUS.-1=Controle de Brilho
option.DoF_Adaptation_Speed=Velocidade de Adaptação da Profundidade de Campo
option.FAR_BLUR_ONLY=Apenas Desfoque Distante
screen.Editing=Edição
option.Compositing_Sky=Composição do Céu.
option.CompSky_R=Composição Vermelho
option.CompSky_G=Composição Verde
option.CompSky_B=Composição Azul
option.JITTER_STRENGTH= Intensidade da Variação
option.FOCUS_LASER_COLOR=Cor de Foco do Laser
value.FOCUS_LASER_COLOR.0=Vermnelho
value.FOCUS_LASER_COLOR.1=Verde
value.FOCUS_LASER_COLOR.2=Azul
value.FOCUS_LASER_COLOR.3=Rosa
value.FOCUS_LASER_COLOR.4=Amarelo
value.FOCUS_LASER_COLOR.5=Branco
option.AEROCHROME_MODE=Modo Aerochrome
option.AEROCHROME_MODE.comment=Filme Infravermelho. Pesquise "Aerochrome" pra ter uma idéia do que isso faz.
option.AEROCHROME_PINKNESS=Aerochrome Vermelho:Quociente Rosa
option.AEROCHROME_PINKNESS.comment=Maior = Rosa. Menor = Vermelho
option.AEROCHROME_WOOL_ENABLED=Lã em Aerochrome
option.AEROCHROME_WOOL_ENABLED.comment=Tecnicamente, coisas feitas de lã deveriam ser afetadas, mas isso arruína muitas construções. Habilite para ser mais tecnicamente correto.
option.AEROCHROME_PINKNESS=Aerochrome Proporção Vermelho:Rosa
option.AEROCHROME_WOOL_ENABLED=Lã Aerochrome
option.AEROCHROME_MODE.comment = Filme Infravermelho. Da uma pesquisada "Aerochrome" pra tu ter uma ideia do que isso faz.
option.AEROCHROME_PINKNESS.comment = Maior = Rosa. Menor = Vermelho
option.AEROCHROME_WOOL_ENABLED.comment = A lã também deveria ser afetada, mas não fica muito legal em construções. Habilite se você quiser ser mais tecnicamente correto.
screen.Misc_Settings.comment = Configurações aleatórias para DEPURAÇÃO (Debugging) ou outras modificações divertidas.
screen.Sun_and_Moon_Colors.comment = Ajustar da cor do sol ou da lua.
option.sunPathRotation.comment = Ajustar o ângulo do sol ou da lua
option.sun_illuminance.comment = Ajustar o brilho do sol
option.moon_illuminance.comment = Ajustar o brilho da lua
screen.Misc_Settings.comment = Várias configurações para DEBUGGING ou outras coisas divertidas.
screen.Sun_and_Moon_Colors.comment = Ajuste as Cores do Sol/Lua
option.sunPathRotation.comment = Ajuste o Ângulo do Sol/Lua
option.sun_illuminance.comment = Ajuste o Brilho do Sol
option.moon_illuminance.comment = Ajuste o Brilho da Lua
option.OLD_LIGHTLEAK_FIX.comment = Utiliza um método antigo para prevenir o vazamento de luz dentro de cavernas.
screen.Direct_Light.comment = Ajuste configurações referentes ao sol e as sombras.
screen.Direct_Light.comment = Ajustes para o sol e as sombras.
screen.Shadows.comment = Ajuste as sombras do sol ao seu gosto.
option.SCREENSPACE_CONTACT_SHADOWS.comment = Sombras de Contato no Espaço de Tela. §bO Que é Isso?§r Essas são pequenas sombras para coisas que estão distantes, e também em pequenos detalhes próximos. §aCUSTO DE DESEMPENHO:§r baixo para médio; é mais pesado em resoluções mais altas.
option.RENDER_ENTITY_SHADOWS.comment = §bO Que é Isso?§r São sombras presentes em todos os tipos de entidades como mobs, baús, banners e placas. §aCUSTO DE DESEMPENHO:§r baixo para alto; é bastante pesado quando se tem muitas entidades por perto.
option.shadowMapResolution.comment = A qualidade das sombras do sol projetada por coisas no mundo. §aCUSTO DE DESEMPENHO:§r médio para muito alto; As sombras precisam renderizar o mundo 3D uma segunda vez da perspectiva do sol, é por isso que reduz o desempenho pela metade.
option.shadowDistance.comment = Distância máxima que o mapeamento de sombras consegue renderizar (não é uma distância linear). Eu recomendo a distância de sombra padrão, pois as sombras de contato conseguem lidar com as sombras distantes. §aCUSTO DE DESEMPENHO:§r médio para muito alto; Se a distância de renderização dos chunks for longa, as sombras se tornarão mais pesadas.
screen.Filtering.comment = Ajuste os efeitos de filtragem aplicados às sombras.
option.SHADOW_FILTER_SAMPLE_COUNT.comment = A qualidade do filtro básico para as sombras. Esse filtro apenas suaviza as sombras. §aCUSTO DE DESEMPENHO:§r baixo para médio; Aumentar isso pode reduzir alguns dos ruídos presentes na borda das sombras.
option.Min_Shadow_Filter_Radius.comment = A suavização máxima do filtro básico para as sombras.
option.Variable_Penumbra_Shadows.comment = Esse efeito suaviza as sombras à medida que elas se afastam da fonte de projeção. Esse efeito é usado para criar sombras de alta qualidade e o Espalhamento de Subsuperfície. §aCUSTO DE DESEMPENHO:§r baixo para alto;
option.VPS_Search_Samples.comment = A qualidade de filtragem das sombras de penumbra váriavel. §aCUSTO DE DESEMPENHO:§r baixo para alto; Aumentar isso deve reduzir alguns ruídos do Espalhamento de Subsuperfície e de sombras muito suavizadas.
option.Max_Shadow_Filter_Radius.comment = A suavização máxima que as sombras podem alcançar quando longe da fonte de projeção.
option.Max_Filter_Depth = Fator do tamanho do sol.
option.SCREENSPACE_CONTACT_SHADOWS.comment = Sombras de contato. §bO Que é Isso?§r São pequenas sombras usadas para coisas distantes e também para pequenos detalhes próximos. §aCUSTO DE PERFORMANCE:§r Baixo para Médio; será mais pesado em uma resolução maior.
option.RENDER_ENTITY_SHADOWS.comment = §bO Que é Isso?§r São sombras em todos os tipos de entidades como: criaturas, baús, banners e placas. §aCUSTO DE DESEMPENHO:§r Baixo para Alto; pode ser mais pesado dependendo de quantas entidades estão por perto.
option.shadowMapResolution.comment = Qualidade das sombras do sol projeta por coisas e objetos. §aCUSTO DE PERFORMANCE:§r Médio para Muito Alto; Renderizar as sombras requer renderizar o mundo uma outra vez, mas da perspectiva do sol, por isso elas reduzem a performance pela metade.
option.shadowDistance.comment = Distância máxima que as sombras renderizam. Essa distância não é medida de forma linear em chunks quando colocada em Não Otimizado. §aCUSTO DE PERFORMANCE:§r Médio para Muito Alto; If the chunk render distance is high, the shadows will become more expensive Vai ser mais pesado se a distância de renderização dos chunks for alta.
option.shadowDistanceRenderMul.comment = Renderiza as sombras somente em uma esféra em volta de você, limitada à uma distância máxima de chunks. Se usado Não Otimizado ela não vai renderizar em uma esféra e também não vai ter limite por chunks; pode cobrir uma área muito maior com a mesma configuração de distância. A distância não é medida em chunks se usado Não Otimizado. §aCUSTO DE PERFORMANCE:§r Baixo para Médio. Otimizado é mais rápido e Não Otimizado é mais lento.
screen.Filtering.comment = Ajuste o efeito de filtragem aplicado as sombras.
option.BASIC_SHADOW_FILTER.comment = Filtro básico que suaviza as sombras.
option.SHADOW_FILTER_SAMPLE_COUNT.comment = Qualidade do filtro básico das sombras. Esse filtro apenas suaviza as sombras. §aCUSTO DE PERFORMANCE:§r Baixo para Alto; Aumentar isso reduz um pouco do ruído presente nas bordas das sombras.
option.Min_Shadow_Filter_Radius.comment = A suavidade máxima do filtro básico das sombras.
option.Variable_Penumbra_Shadows.comment = Esse efeito deixa a sombra mais suave, de acordo com o quão longe ela está do que a projetou. Esse efeito cria sombras de alta qualidade e também o espalhamento de subsuperfície. §aCUSTO DE PERFORMANCE:§r Baixo para Alto;
option.VPS_Search_Samples.comment = A qualidade do filtro das sombras de penumbra variável. §aCUSTO DE PERFORMANCE:§r Baixo para Alto; Aumentar isso reduz um pouco do ruído presente no espalhamento de subsuperfície e em sombras muito suavez.
option.Max_Shadow_Filter_Radius.comment = A suavidade máxima que a sombra consegue alcançar quando está longe do que a projetou.
option.Max_Filter_Depth.comment = Ajusta o tamanho do Sol. Se o sol for maior as sombras ficam mais suaves, de acordo com a distância do que as projetou.
screen.Ambient_light.comment = Ajuste as configurações referentes a iluminação das áreas sombreadas
option.AO_Strength.comment = Ajusta a força da oclusão de ambiente criada pelo SSAO, GTAO, RTAO, e SSGI. §bO Que é Isso?§r Oclusão de ambiente é uma suave e pequena sombra no canto das coisas.
option.GI_Strength.comment = Ajusta a força da iluminação global criada pelo SSGI. §bO Que é Isso?§r Iluminação global, nessa situação em especifíco, é o ressalto da luz de uma superfície em outra.
option.HQ_SSGI.comment = Habilita uma iluminação global no espaço de tela de longo alcance . §aCUSTO DE DESEMPENHO:§r muito alto
option.Hand_Held_lights.comment = Habilita a iluminação vindo da mão própria do shaders. §aCUSTO DE DESEMPENHO:§r muito baixo
option.ambientOcclusionLevel.comment = Ajusta a força da oclusão de ambiente vanilla do minecraft. §bO Que é Isso?§r Essa é uma oclusão de ambiente existente no Minecraft mesmo sem um shaders.
option.ambient_brightness.comment = Ajusta o brilho da iluminação em áreas que estão sombreadas.
option.MIN_LIGHT_AMOUNT.comment = Ajusta a quantidade mínima de luz que pode aparecer em áreas sombreadas
option.indirect_effect.comment = Habilita diferentes tipos de efeitos para conseguir uma iluminação de alta qualidade em áreas sombreadas. §aCUSTO DE DESEMPENHO:§r. AO Vanilla: muito baixo. SSAO: baixo para médio. GTAO: médio para alto. RTAO ou SSGI: alto para muito alto.
screen.Ambient_light.comment = Ajustes relacionados a luz em lugares sombreados
option.AO_Strength.comment = Ajuste à força da oclusão ambiental gerada pelo SSAO, GTAO, RTAO, e SSGI. §bO Que é Isso?§r Oclusão ambiental é uma pequena sombra suave no canto das coisas.
option.GI_Strength.comment = Ajuste à força da iluminação global gerada pelo SSGI. §bO Que é Isso?§r Nesse caso, é a luz quicando de uma superfície para outra área.
option.HQ_SSGI.comment = Habilite uma iluminação global de longo alcance. §aCUSTO DE PERFORMANCE:§r Muito Alto
option.Hand_Held_lights.comment = Habilite uma luz portátil do próprio shaders. §aCUSTO DE PERFORMANCE:§r Muito Baixo
option.ambientOcclusionLevel.comment = Ajuste à força da oclusão de ambiente vanilla do Minecraft. §bO Que é Isso?§r Essa é a oclusão de ambiente vanilla do Minecraft, mesmo sem shaders.
option.ambient_brightness.comment = Ajuste o brilho da luz em locais sombreados.
option.MIN_LIGHT_AMOUNT.comment = Ajuste a quantidade mínima de luz presente em locais sombreados.
option.indirect_effect.comment = Habilite diferentes tipos de efeitos para criar uma iluminação de alta qualidade em locais sombreados. §aCUSTO DE PERFORMANCE:§r. Vanilla AO: Muito Baixo. SSAO: Baixo para Médio. GTAO: Médio para Alto. RTAO or SSGI: Alto para Muito Alto.
screen.Ambient_Colors.comment = Ajusta a coloração da luz em áreas sombreadas.
screen.Torch_Colors.comment = Ajuste a coloração da luz de tochas ou outras fontes de luz colocadas.
screen.Ambient_Colors.comment = Ajuste a cor da luz em lugares sombreados.
screen.Torch_Colors.comment = Ajuste a cor da luz da tocha ou outras fontes de luz.
screen.LabPBR.comment = Um punhado de efeitos que usam informações fornecidas por um pacote de textura de formato LabPBR.
screen.Reflections.comment = Ajusta os reflexos que usam informações providas por um pacote de textura LabPBR.
option.Specular_Reflections.comment = Habilita todos os reflexos para pacotes LabPBR. Isso habilita o reflexo do sol, também permite habilitar outros ajustes abaixo. §aCUSTO DE DESEMPENHO:§r baixo
option.Screen_Space_Reflections.comment = Habilita reflexos no espaço de tela. §aCUSTO DE DESEMPENHO:§r médio
option.Rough_reflections.comment = Habilita uma rugosidade mais detalhada para criar reflexos de alta qualidade. Causa uma quantidade alta de ruídos vísiveis. §aCUSTO DE DESEMPENHO:§r médio para alto
option.Sky_reflection.comment = Habilita reflexos do céu e da névoa. §aCUSTO DE DESEMPENHO:§r baixo para médio.
option.Dynamic_SSR_quality.comment = Isso diminui a qualidade dos reflexos no espaço de tela com base em sua visibilidade. Pode aumentar o desempenho à custa da qualidade.
option.Roughness_Threshold.comment = Se a rugosidade chegar nesse limite, todos os reflexos exceto o do sol, não serão renderizados. Pode aumentar o desempenho.
option.Sun_specular_Strength.comment = Ajuste intensidade do brilho do reflexo do sol.
screen.LabPBR.comment = Um punhado de efeitos que usam informações de um pacote de textura que usa o formato LabPBR.
screen.Reflections.comment = Ajuste os reflexos que utilizam informações de um pacote de textura LabPBR.
option.Specular_Reflections.comment = Habilita todos os reflexos para pacotes LabPBR. Isso permite o reflexo do sol, além de várias outras configurações abaixo. §aCUSTO DE PERFORMANCE:§r Baixo
option.Screen_Space_Reflections.comment = Habilita reflexos no espaço de tela. §aCUSTO DE PERFORMANCE:§r Médio
option.Rough_reflections.comment = Habilita uma rugosidade mais detalhada para criar reflexos de qualidade mais alta. Isso causa uma quantidade vísivel de ruído. §aCUSTO DE PERFORMANCE:§r Médio para Alto
option.Sky_reflection.comment = Habilita os reflexos do céu e da névoa. §aCUSTO DA PERFORMANCE:§r Baixo para Médio.
option.Dynamic_SSR_quality.comment = Isso diminui a qualidade dos reflexos baseado na sua visibilidade. Pode aumentar a performance, mas diminui a qualidade.
option.Roughness_Threshold.comment = Se a rugosidade atingir seu limite, todos os reflexos, por excessão do sol, não vão renderizar. Pode aumentar a performance.
option.Sun_specular_Strength.comment = Ajuste o quão brilhante o reflexo do sol é.
option.reflection_quality.comment = Ajuste a qualidade dos reflexos no espaço de tela.
screen.Subsurface_Scattering.comment = §bO Que é Isso?§r O Espalhamento de Subsuperfície é o que acontece quando você coloca uma luz na sua mão e ela começa a brilhar. O sol na verdade realiza a mesma coisa em plantas, tecidos, pele e outras coisas.
option.SSS_TYPE.comment = Ajusta como o espalhamento de subsuperfície é aplicado ao mundo. §bRígido:§r O shaders decide o que vai receber. §bLabSSS:§r O pacote de textura decide o que vai receber. §aCUSTO DE DESEMPENHO:§r muito baixo
option.MOB_SSS.comment = Habilita o espalhamento de subsuperfície em mobs. Jogadores são inclusos. §aCUSTO DE DESEMPENHO:§r muito baixo
option.MISC_BLOCK_SSS.comment = Habilita o espalhamento de subsuperfície para blocos aleatórios que talvez não se encaixem. Isso é sobretudo para a areia e grama. §aCUSTO DE DESEMPENHO:§r muito baixo
option.Ambient_SSS.comment = §bO Que é Isso?§r espalhamento de subsuperfície da luz vindo do céu, em vez do sol. §aCUSTO DE DESEMPENHO:§r muito baixo para médio; se o SSAO estiver habilitado isso tem um custo muito baixo, mas vai custar mais se o SSAO estiver DESLIGADO
option.ambientsss_brightness.comment = Ajuste o brilho do espalhamento de subsuperfície vindo da luz do céu.
screen.Subsurface_Scattering.comment = §bO Que é Isso?§r O espalhamento de subsuperfície é aquele efeito quando você coloca uma luz no seu dedo e ele começa a brilhar. O sol causa esse efeito em várias coisas, como: plantas, tecido, pele e outras coisas.
option.SSS_TYPE.comment = Ajuste como o espalhamento de subsuperfície é aplicado ao mundo. §bEmbutido:§r O shaders decide o que recebe. §bLabSSS:§r O pacote de textura decide o que recebe. §aCUSTO DE PERFORMANCE:§r Muito Baixo
option.MOB_SSS.comment = Habilita espalhamento de subsuperfície para criaturas. Jogadores são incluídos. §aCUSTO DE PERFORMANCE:§r Muito Baixo
option.MISC_BLOCK_SSS.comment = Habilita espalhamento de subsuperfície para blocos diversos que talvez não sejam adequados. Isso é sobre tudo para ao bloco de grama e areia. §aCUSTO DE PERFORMANCE:§r Muito Baixo
option.Ambient_SSS.comment = §bO Que é Isso?§r espalhamento de subsuperfície da luz vinda do céu em vez do sol. §aCUSTO DE PERFORMANCE:§r Muito Baixo para Médio; se o SSAO estiver habilitado o custo é baixo, mas se o SSAO estiver desabilitado o custo é maior.
option.ambientsss_brightness.comment = Ajusta o brilho do espalhamento de subsuperfície vindo da luz do céu.
screen.Emissives.comment = §bO Que é Isso?§r Emissividade é quantidade de luz que algo está exaltando ou o quanto algo está brilhando.
option.Emissive_Brightness.comment = Ajuste o quão brilhante a emissão da textura deve ser.
option.EMISSIVE_TYPE.comment = Ajuste como a emissão de textura é aplicadas ao mundo. §bRígido:§r O shaders decide o que recebe. §bLabSSS:§r O pacote de textura decide o que recebe. §aCUSTO DE DESEMPENHO:§r muito baixo
option.Emissive_Curve.comment = Isso determina o quão rapidamente a textura emissiva atinge seu ponto mais brilhante. 1.0 é linear.
screen.Emissives.comment = §bO Que é Isso?§r Emissividade é quanta luz algo está liberando ou o quão brilhante algo é.
option.Emissive_Brightness.comment = Ajuste o quão brilhante a textura emissiva deve ser.
option.EMISSIVE_TYPE.comment = Ajuste como a textura emissiva é aplicada ao mundo. §bEmbutido:§r O shaders decide o que recebe. §bLabSSS:§r O pacote de textura decide o que recebe. §aCUSTO DE PERFORMANCE:§r Muito Baixo
option.Emissive_Curve.comment = Isso determina a velocidade que a textura emissiva chega no seu ponto mais brilhante. 1.0 é linear.
screen.POM.comment = Ajuste as configurações referentes ao mapeamento de oclusão paralaxe, que usam informações providas por um pacote de textura.
option.POM.comment = §bO Que é Isso?§r Esse efeito tenta criar geometria 3D onde anteriormente não existia nenhuma, usando uma imagem especial de um pacote de textura. Basicamente, esse efeito empurra a textura para dentro, então pode ocorrer alguns artefatos visuais ao olhar por um ângulo íngreme. §aCUSTO DE DESEMPENHO:§r médio para alto
option.MAX_ITERATIONS.comment = Ajuste a qualidade do efeito de mapeamento de oclusão de paralaxe. Caso você perceber camadas individuais ao olhar de perto, aumentar isso criará mais camadas, tornando difícil a visualização delas. §aCUSTO DE DESEMPENHO:§r alto
option.POM_DEPTH.comment = O quão profundo o efeito de mapeamento de oclusão de paralaxe pode ir em uma superfície. §aCUSTO DE DESEMPENHO:§r muito baixo
option.MAX_DIST.comment = Distância máxima da câmera que o efeito de mapeamento de oclusão de paralaxe pode ser renderizado. §aCUSTO DE DESEMPENHO:§r alto
option.Adaptive_Step_length.comment = Isso aumentará a qualidade visual sem realmente aumentar a qualidade real. Isso pode causar alguns artefatos se observado de perto ou se houver um mapa de altura muito detalhado e com váriações intensas de altura .
option.Horrible_slope_normals.comment = Esta é uma implementação mal feita para dar superfície para os lados do mapeamento de oclusão de paralaxe. Eu não recomendo usar isso. §aCUSTO DE DESEMPENHO:§r baixo
screen.POM.comment = Ajustes relacionados ao Mapameamento de Oclusão Paralaxe que usa informações de um pacote de textura.
option.POM.comment = §bO Que é Isso?§r Esse efeito tenta criar um efeito 3D onde não existe um, usando uma imagem especial de um pacote de textura. Esse efeito basicamente puxa para dentro, então pode existir artefátos se visto de alguns ângulos. §aCUSTO DE PERFORMANCE:§r Médio para Alto
option.MAX_ITERATIONS.comment = Ajuste a qualidade do efeito POM. Se você enxergar camadas individuais de perto, aumentar isso criara mais camadas para dificultar a visualização delas. §aCUSTO DE PERFORMANCE:§r Alto
option.POM_DEPTH.comment = A profundidade do efeito POM na superfície. §aCUSTO DE PERFORMANCE:§r Muito Baixo
option.MAX_DIST.comment = A distância máxima da câmera que o efeito POM pode renderizar. §aCUSTO DE PERFORMANCE:§r Alto
option.Adaptive_Step_length.comment = Isso vai aumentar a qualidade visual sem realmente aumentar a qualidade. Isso causa alguns artefátos se você olhar bem de perto ou se tiver um mapa de terreno com váriações de altura.
option.Horrible_slope_normals.comment = Isso é uma implementação mal feita para dar uma superfície nos lados do POM. Não é recomendado usar isso. §aCUSTO DE PERFORMANCE:§r Baixo
screen.Porosity.comment = Ajuste as configurações referentes a umidade e poças
option.Porosity.comment = §bO Que é Isso?§r Porosidade é a descrição do quão poroso algum material é, ou essencialmente quanta aguá ele pode ter dentro dele. Por exemplo, esponjas são bastante porosas; a água é contida dentro dela, deixando-a mais escura como resultado. §aPERFORMANCE COST:§r low
option.Puddles.comment = Habilitar poças quando chover. §aCUSTO DE DESEMPENHO:§r baixo
option.Puddle_Size.comment = Ajuste o tamanho das poças.
screen.Porosity.comment = Ajustes relacionados à umidade e poças
option.Porosity.comment = §bO Que é Isso?§r Porosidade é o quão poroso um material é ou quanta água tem dentro dele. Por exemplo, uma esponja é muito porosa; a aguá é segurada dentro dela e escurece a esponja. §aCUSTO DE PERFORMANCE:§r Baixo
option.Puddles.comment = Habilita poças quando estiver chovendo. §aCUSTO DE PERFORMANCE:§r Baixo
option.Puddle_Size.comment = Ajusta o tamanho das poças.
screen.Fog.comment = Ajuste as configurações referentes à névoa volumétrica raymarched ou à névoa baseada em distância.
option.VL_RENDER_RESOLUTION.comment = Ajuste a resolução da névoa volumétrica. §aCUSTO DE DESEMPENHO:§r alto
option.VL_SAMPLES.comment = Ajuste a qualidade da névoa volumétrica. §aCUSTO DE DESEMPENHO:§r alto
option.BLOOMY_FOG.comment = Ajuste a força do bloom que é aplicado a névoa. §bO Que é Isso?§r Esse efeito faz a névoa parecer suave, ajuda a mitigar um pouco do ruído também. Pode causar um pouco de tremulação em bordas detalhadas. §aCUSTO DE DESEMPENHO:§r muito baixo
option.Haze_amount.comment = Ajuste quão densa é a atmosféra ao seu redor. §bO Que é Isso?§r É aquela neblina azul que você vê na distância.
option.RainFog_amount.comment = Ajusta quão densa a névoa fica quando chove.
option.Cloud_Fog.comment = Habilita uma névoa detalhada quando você estiver dentro ou ao redor de uma nuvem. §aCUSTO DE DESEMPENHO:§r baixo para médio
option.BorderFog.comment = Habilita uma névoa que esconde os chunks não carregados.
screen.Fog.comment = Ajustes relacionados à névoa volumétrica ou névoa distante.
option.VL_RENDER_RESOLUTION.comment = Ajuste a resolução da névoa volumétrica. §aCUSTO DE PERFORMANCE:§r Alto
option.VL_SAMPLES.comment = Ajuste a qualidade da névoa volumétrica. §aCUSTO DE PERFORMANCE:§r Alto
option.BLOOMY_FOG.comment = Ajuste à força do bloom que é aplicada a névoa. §bO Que é Isso?§r Esse efeito faz a névoa ter um aspecto suave, isso ajuda a diminuir o ruído. Pode causar flick em bordas detalhadas. §aCUSTO DE PERFORMANCE:§r Muito Baixo
option.Haze_amount.comment = Ajuste a densidade da atmosféra ao seu redor. §bO Que é Isso?§r É aquela névoa azul que você vê na distância.
option.RainFog_amount.comment = Ajuste a densidade da névoa quando chove.
option.Cloud_Fog.comment = Habilita uma névoa detalhada quando você vai dentro ou do lado de uma nuvem. §aCUSTO DE PERFORMANCE:§r Baixo para Médio
option.BorderFog.comment = Habilita uma névoa que esconde chunks não carregados.
screen.TOD_fog.comment = Ajuste a densidade da névoa que aparece em tempos especifícos do dia.
option.TOD_Fog_mult.comment = Ajustar quanta névoa total aparece em tempos especifícos do dia. Isso não afeta a neblina atmosférica.
screen.TOD_fog.comment = Ajusta a densidade da névoa que aparece em horários especifícos do dia.
option.TOD_Fog_mult.comment = Ajusta quantidade total de névoa que aparece em horários especifícos do dia. Isso não afeta a névoa atmosférica.
screen.Biome_Fog.comment = Ajuste as configurações para a névoa que aparece apenas em biomas especifícos.
option.Biome_specific_environment.comment = Habilita névoa que apenas aparece em biomas especifícos. §aCUSTO DE DESEMPENHO:§r baixo
screen.Biome_Fog.comment = Ajustes para a névoa que apenas aparece em biomas especifícos.
option.Biome_specific_environment.comment = Habilita uma névoa que apenas aparece em biomas especifícos. §aCUSTO DE PERFORMANCE:§r Baixo
screen.Cave_Fog.comment = Ajuste configurações para névoa que aparece quando você está em lugares muito escuros como cavernas.
option.Cave_Fog.comment = Habilita a névoa que aparece quando você está em lugares escuros. É impossível para um shaders dizer de forma exata se você está em uma caverna, então essa névoa pode aparecer em lugares que não são exatamente uma caverna. §aCUSTO DE DESEMPENHO:§r baixo
option.CaveFogFallOff.comment = Ajustar o quão rápido o gradiante da névoa chega no seu brilho máximo.
screen.Cave_Fog.comment = Ajustes para a névoa que aparece em lugares escuros, como cavernas.
option.Cave_Fog = Névoa de Caverna
option.Cave_Fog.comment = Habilita uma névoa que aparece em lugares escuros. Não tem como dizer com precisão se você está em uma caverna, então a névoa pode aparecer em lugares que não são cavernas. §aCUSTO DE PERFORMANCE:§r Baixo
option.CaveFogFallOff.comment = Ajuste a velocidade que a gradiante da névoa chega no seu ponto mais brilhante.
screen.Clouds.comment = Ajuste as configurações referentes às nuvens volumétricas raymarched.
option.VOLUMETRIC_CLOUDS.comment = Habilitar as nuvens. §aCUSTO DE DESEMPENHO:§r médio para alto
option.CLOUDS_QUALITY.comment = Ajuste a resolução das nuvens volumétricas. §aCUSTO DE DESEMPENHO:§r alto
option.CLOUDS_SHADOWS.comment = Habilite sombras que são projetadas pelas nuvens no solo, e a névoa abaixo delas. §aCUSTO DE DESEMPENHO:§r baixo para médio
option.Daily_Weather.comment = Habilite o clima diário. Eu coloquei 8 perfis climáticos, onde o shaders passa por eles todos os dias. Não é possível alterar nenhuma das opções de cobertura de nuvens quando isso está habilitado. §aCUSTO DE DESEMPENHO:§r baixo
option.Cloud_Speed.comment = Ajusta o quão rapidamente as nuvens se movem ao passar do dia.
option.Rain_coverage.comment = Ajuste o quanto as nuvens cobrem o céu durante a chuva.
screen.Clouds.comment = Ajustes relacionados a nuvens volumétricas.
option.VOLUMETRIC_CLOUDS.comment = Habilita as nuvens. §aCUSTO DE PERFORMANCE:§r Médio para Alto
option.CLOUDS_QUALITY.comment = Ajuste a resolução das nuvens volumétricas. §aCUSTO DE PERFORMANCE:§r Alto
option.CLOUDS_SHADOWS.comment = Habilita sombras que são prjetadas pelas sombras no chão e a névoa em baixo. §aCUSTO DE PERFORMANCE:§r Baixo para Médio
option.Daily_Weather.comment = Habilita o clima diário. O shaders alterna entre 8 perfis. Você não pode mudar nenhuma configuração de cobertura quando isso estiver habilitado. §aCUSTO DE PERFORMANCE:§r Baixo
option.Cloud_Speed.comment = Ajuste a velocidade que as nuvens se movem ao decorrer do dia.
option.Rain_coverage.comment = Ajuste a cobertura das nuvens durante a chuva.
option.Cumulus.comment = Habilite as camadas inferiores de nuvens. §aCUSTO DE DESEMPENHO:§r médio
option.Cumulus_coverage.comment = Ajuste o quanto do céu as nuvens inferiores cobrem. Essa opção não funciona enquanto o clima diário estiver ativado.
option.Cumulus_density.comment = Ajuste o quão densa as camadas inferiores de nuvens são.
option.Cumulus_height.comment = Ajuste a altura à qual as camadas de nuvens inferiores voam.
option.Cumulus.comment = Habilite camada inferior de nuvens. §aCUSTO DE PERFORMANCE:§r Médio
option.Cumulus_coverage.comment = Ajuste a cobertura das das camadas inferiores de nuvens. Essa configuração não funciona se o clima diário estiver habilitado.
option.Cumulus_density.comment = Ajuste a densidade das camadas inferiores de nuvens.
option.Cumulus_height.comment = Ajuste a altura das camadas inferiores.
option.Altostratus.comment = Habilite as camadas superiores de nuvens. §aCUSTO DE DESEMPENHO:§r baixo
option.Alto_coverage.comment = Ajuste o quanto do céu as nuvens superiores cobrem. Essa opção não funciona enquanto o clima diário estiver ativado.
option.Alto_density.comment = Ajuste o quão densa as camadas superiores de nuvens são.
option.Altostratus.comment = Habilite camada superior de nuvens. §aCUSTO DE PERFORMANCE:§r Baixo
option.Alto_coverage.comment = Ajuste a cobertura das das camadas superiores de nuvens. Essa configuração não funciona se o clima diário estiver habilitado.
option.Alto_density.comment = Ajuste a densidade das camadas superiores de nuvens.
screen.World.comment = Ajuste as configurações para várias coisas que acontecem no mundo, desde o balançar das plantas até o comportamento da água.
screen.Water.comment = Ajuste configurações referentes a água.
option.WATER_REFLECTIONS.comments = Habilita todos os reflexos para coisas translúcidas. Isso permite que outras configurçaões abaixo sejam ativadas. §aCUSTO DE DESEMPENHO:§r baixo
option.SCREENSPACE_REFLECTIONS.comment = Habilita o reflexos no espaço de tela em coisas translúcidas. §aCUSTO DE DESEMPENHO:§r médio
option.SSR_STEPS.comment = Ajusta a qualidade do reflexo no espaço de tela em coisas trasnlúcidas. §aCUSTO DE DESEMPENHO:§r médio para alto
option.WATER_SUN_SPECULAR.comment = Habilita o reflexo do sol e da lua em coisas translúcidas. §aCUSTO DE DESEMPENHO:§r baixo
option.WATER_BACKGROUND_SPECULAR.comment = Habilita o reflexo do céu e da névoa para coisas translúcidas. §aCUSTO DE DESEMPENHO:§r baixo para médio
option.Refraction.comment = Habilita a refração em coisas translúcidas. §bO Que é Isso?§r Se você olhar para a água, é possível ver a refração da luz distorcendo o que está dentro dela. §aCUSTO DE DESEMPENHO:§r baixo
option.Dirt_Amount.comment = Ajusta a quantidade de sujeira na água. Isso controla a quantidade de névoa presente na água.
option.Water_Top_Layer.comment = Ajuste a coordenada Y em que o oceano deve ser posicionado no mundo.
screen.World.comment = Ajuste configurações para váriadas coisas que acontecem no mundo, o balançar das plantas e a água.
screen.Water.comment = Ajustes relacionados a água.
option.WATER_REFLECTIONS.comments = Habilite todos os reflexos para coisas translúcidas. Isso permite outras configurações abaixo. §aCUSTO DE PERFORMANCE:§r Baixo
option.SCREENSPACE_REFLECTIONS.comment = Habilita reflexos no espaço de tela em coisas translúcidas. §aCUSTO DE PERFORMANCE:§r Médio
option.SSR_STEPS.comment = Ajuste a qualiade dos reflexos em coisas translúcidas. §aCUSTO DE PERFORMANCE:§r Médio pra Alto
option.WATER_SUN_SPECULAR.comment = Habilita reflexos da lua e do sol em coisas translúcidas. §aCUSTO DE PERFORMANCE:§r Baixo
option.WATER_BACKGROUND_SPECULAR.comment = Habilita reflexos do céu e névoa em coisas translúcidas. §aCUSTO DE PERFORMANCE:§r Baixo para Médio
option.Refraction.comment = Habilita refração em coisas translúcidas. §bO Que é Isso?§r Olhe para a água e você vai perceber a refração da luz distorcendo as coisas dentro dela. §aCUSTO DE PERFORMANCE:§r Baixo
option.Dirt_Amount.comment = Ajusta quanta sujeira tem na água. Isso controla quanta névoa tem dentro da água.
option.Water_Top_Layer.comment = Ajusta a coordenada Y que oceano deve estar no mundo.
screen.Water_fog_color.comment = Ajuste a coloração da névoa da água.
screen.Water_fog_color.comment = Ajusta as cores da névoa na água.
screen.Climate.comment = Ajuste as configurações referentes ao clima, como a cor das estações, clima diário e névoa especifíca de bioma.
screen.Climate.comment = Ajustes relacionados ao clima, como: cores sazonais, clima diário e névoa especifíca de bioma.
screen.Seasons = Estações
screen.Seasons.comment = Cores sazonais que se alternam, verão, outono, inverno e primavera.
option.Seasons.comment = Cores sazonais que se alternam, verão, outono, inverno e primavera. §aCUSTO DE DESEMPENHO:§r baixo
option.Season_Length.comment = Controla quão longo uma única estação dura, em dias do minecraft.
option.Snowy_Winter.comment = Habilita neve durante o inverno. §aCUSTO DE DESEMPENHO:§r baixo
option.Seasons.comment = Cores sazonais que se alternam, verão, outono, inverno e primavera. §aCUSTO DE PERFORMANCE:§r Baixo
option.Season_Length.comment = Controla por quanto tempo uma única estação dura, em dias do Minecraft.
option.Snowy_Winter.comment = Habilita neve durante o inverno. §aCUSTO DE PERFORMANCE:§r Baixo
screen.Summer_colors.comment = Ajuste as cores da vegetação durante o verão.
screen.Fall_colors.comment = Ajuste as cores da vegetação durante o outono.
screen.Winter_colors.comment = Ajuste as cores da vegetação durante o inverno.
screen.Spring_colors.comment = Ajuste as cores da vegetação durante a primavera.
screen.Waving_Stuff.comment = Ajuste as configurações referentes ao balançar das coisas .
option.WAVY_PLANTS.comment = Habilita o balançar das plantas. §aCUSTO DE DESEMPENHO:§r muito baixo
option.WAVY_STRENGTH.comment = Ajuste a quantidade com que as plantas balançam.
screen.Waving_Stuff.comment = Ajustes relacionados ao balançar das plantas.
option.WAVY_PLANTS.comment = Habilite o balançar das plantas. §aCUSTO DE PERFORMANCE:§r Muito Baixo
option.WAVY_STRENGTH.comment = Ajuste a intensidade com que as plantas balançam.
option.WAVY_SPEED.comment = Ajuste a velocidade com que as plantas balançam.
screen.Post_Processing.comment = Ajuste configurações para todos os pós-processamentos, como antisserrilhamento e mapeamento de tons.
screen.Exposure.comment = Ajuste configurações referentes à exposição.
screen.DepthOfField.comment = Ajuste configurações referentes ao campo de profundidade.
screen.Purkinje_effect.comment = Ajuste configurações referentes ao efeito purkinje.
option.SHARPENING.comment = Ajuste a quantidade de nitidez adaptativa de contraste aplicada à imagem. Isso pode realçar detalhes perdidos pelo antisserrilhamento ou ampliação.
option.BLOOM_STRENGTH.comment = Ajustar a quantidade de bloom que é aplicado à imagem. §bO Que é Isso?§r Bloom ou incandescência é o suave brilho em tudo, usado para descrever se algo está brilhante ou não.
screen.TAA_OPTIONS.comment = Ajuste configurações referentes ao antisserrilhamento.
option.SCREENSHOT_MODE.comment = Habilita a acumulação de quadros ou frames para obter uma imagem de alta qualidade, sem ruídos. §bO Que é Isso?§r Ele combina quadros de imagens que já aconteceram no próximo quadro que está sendo gerado, semelhante a uma foto de longa exposição.
option.TAA.comment = Habilita o antisserrilhamento temporal. Isso remove todas as bordas serrilhadas das coisas, suaviza a imagem e ajuda a reduzir o ruído de vários efeitos. No entanto, ele pode causar um efeito de ghosting ou efeito de rastro, pois ele utiliza quadros passados para obter informações adicionais do mundo. §aCUSTO DE DESEMPENHO:§r baixo
option.BLEND_FACTOR.comment = Ajusta a qauntidade de histórico de quadros utilizado. Valores altos significam que há menos dependência do histórico de quadros, o que pode resultar em uma imagem irregular e com ruído. Valores baixos dependem mais do histórico de quadros, o que pode resultar em uma imagem borrada e com efeito de rastro.
option.TAA_UPSCALING.comment = Habilita ampliação temporal. Isso conserva uma boa quantidade de qualidade de uma imagem de resolução mais baixa quando ela é ampliada. Assim, você mantém uma aparência de boa resolução em comporação a ampliação típica e ainda continua com um desempenho melhor.
option.SCALE_FACTOR.comment = Ajuste a partir de qual fração da sua resolução realizar a ampliação. Abaixo de 0.5 não é nem um pouco recomendado, e eu apenas tenho como opção porque é engraçado :P
screen.Post_Processing.comment = Ajustes relacionados a todos os efeitos de pós-processamento, do antisserrilhamento ao mapeamentos de tonsC.
screen.Tonemapping.comment = Ajustes relacionados ao mapeamento de tons.
screen.Exposure.comment = Ajustes relacionados a exposição.
screen.DepthOfField.comment = Ajustes relacionados a profundidade de campo.
screen.Purkinje_effect.comment = Ajustes relacionados a mudança purkinje.
option.SHARPENING.comment = Ajuste a quantidade de nitidez CAS que é aplicada à imagem. Isso traz devolta os detalhes perdidos do antisserrilhamento ou upscaling.
option.BLOOM_STRENGTH.comment = Ajuste a quantidade de bloom que é aplicada à imagem. §bO Que é Isso?§r Bloom é o brilho suave em tudo, para descrever se algo é brilhante ou não.
screen.TAA_OPTIONS.comment = Ajustes relacionados ao antisserrilhamento.
option.SCREENSHOT_MODE.comment = Habilite a acumulação de frames para conseguir uma imagem de alta qualidade sem ruídos. §bO Que é Isso?§r Isso junta quadros que já aconteceram no próximo quadro gerado, essencialmente é como se fosse uma foto de longa exposição.
option.TAA.comment = Habilite o antisserrilhamento temporal. Isso remove as bordas irregulares nas coisas, deixa ela mais suave e ajuda a remover o rúido de vários efeitos. Isso vai causar um efeito de rastro, pois isso usa quadros passados para conseguir a informação extra. §aCUSTO DE PERFORMANCE:§r Baixo
option.BLEND_FACTOR.comment = Ajuste a dependência de quadros passados. Valores maiores dependem menos em quadros passados, causando uma imagem com rúido. Valores menores dependem mais em quadros passados, causando uma imagem mais borrada.
option.TAA_UPSCALING.comment = Habilita um upscaling temporal. Isso deixa você ajustar a porcentagem da tela, permitindo que seu jogo mantenha um equilíbrio entre o desempenho e a qualidade de imagem.
option.SCALE_FACTOR.comment = Ajuste de qual fração da sua resolução é feito o upscale. Abaixo de 0.5 não é nem um pouco recomendado e só existe porque é engraçado:P

View File

@ -87,7 +87,7 @@ vec3 sky_opticalDepth(vec3 position, vec3 direction, const float steps) {
}
vec3 sky_transmittance(vec3 position, vec3 direction, const float steps) {
return exp2(-sky_opticalDepth(position, direction, steps) * rLOG2);
return exp(-sky_opticalDepth(position, direction, steps) * rLOG2);
}
@ -95,7 +95,7 @@ vec3 sky_transmittance(vec3 position, vec3 direction, const float steps) {
vec3 calculateAtmosphere(vec3 background, vec3 viewVector, vec3 upVector, vec3 sunVector, vec3 moonVector, out vec2 pid, out vec3 transmittance, const int iSteps, float noise) {
const int jSteps = 4;
vec3 sunvec2 = sunVector;
vec3 viewPosition = (sky_planetRadius + eyeAltitude) * upVector;
@ -111,7 +111,9 @@ vec3 calculateAtmosphere(vec3 background, vec3 viewVector, vec3 upVector, vec3 s
vec3 increment = viewVector * stepSize;
vec3 position = viewVector * sd.x + viewPosition;
position += increment * (0.34*noise);
vec2 phaseSun = sky_phase(dot(viewVector, sunVector ), sky_mieg) ;
vec2 phaseSun = (pow(sky_phase(dot(viewVector, sunVector ), 0.6)*3, vec2(2)) + sky_phase(dot(viewVector, sunVector ), 0.8))/2;
// phaseSun = sky_phase(dot(viewVector, sunVector ), 0.8);
vec2 phaseMoon = sky_phase(dot(viewVector, moonVector), sky_mieg);
vec3 scatteringSun = vec3(0.0);
@ -123,8 +125,8 @@ vec3 calculateAtmosphere(vec3 background, vec3 viewVector, vec3 upVector, vec3 s
// float low_sun = clamp(pow(1.0-sunVector.y,10.0) + 1.0,1.0, 2.0);
float high_sun = clamp(pow(sunVector.y+0.6,5),0.0,1.0) * 3.0; // make sunrise less blue, and allow sunset to be bluer
float low_sun = clamp(((1.0-abs(sunVector.y))*3.) - high_sun,1.0,2.0) ;
float high_sun = clamp(pow(sunvec2.y+0.6,5),0.0,1.0) * 3.0; // make sunrise less blue, and allow sunset to be bluer
float low_sun = clamp(((1.0-abs(sunvec2.y))*3.) - high_sun,1.0,2.0) ;
for (int i = 0; i < iSteps; ++i, position += increment) {
vec3 density = sky_density(length(position));
@ -139,12 +141,12 @@ vec3 calculateAtmosphere(vec3 background, vec3 viewVector, vec3 upVector, vec3 s
scatteringSun += sky_coefficientsScattering * (stepAirmass.xy * phaseSun ) * stepScatteringVisible * sky_transmittance(position, sunVector*0.5+0.1, jSteps) ;
scatteringMoon += sky_coefficientsScattering * (stepAirmass.xy * phaseMoon) * stepScatteringVisible * sky_transmittance(position, moonVector, jSteps);
// Nice way to fake multiple scattering.
scatteringAmbient += sky_coefficientsScattering * stepAirmass.xy * (stepScatteringVisible * low_sun);
scatteringAmbient += sky_coefficientsScattering * stepAirmass.xy * stepScatteringVisible * low_sun;
transmittance *= stepTransmittance ;
}
vec3 scattering = scatteringSun * sunColorBase + (scatteringAmbient) * background + scatteringMoon*moonColorBase ;
vec3 scattering = scatteringSun * sunColorBase + scatteringAmbient * background + scatteringMoon*moonColorBase ;
// scattering = vec3(0,high_sun*255.,0);
return scattering;
}

View File

@ -188,6 +188,9 @@ const float sunPathRotation = -35; //[-90 -89 -88 -87 -86 -85 -84 -83 -82 -81 -8
#define reflection_quality 30 // [6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 25.0 30.0 35.0 40.0 45.0 50.0 55.0 60.0 65.0 70.0 75.0 80.0 85.0 90.0 95.0 100.0 ]
#define Roughness_Threshold 1.5 // [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 ]
#ifdef Specular_Reflections
#define LIGHTSOURCE_REFLECTION
#endif
#define EMISSIVE_TYPE 2 // [0 1 2 3]
#define Emissive_Brightness 10.0 // [1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 45.0 50.0 100.]
@ -205,7 +208,7 @@ const float sunPathRotation = -35; //[-90 -89 -88 -87 -86 -85 -84 -83 -82 -81 -8
#define SSS_TYPE 2 // [0 1 2 3]
#define LabSSS_Curve 1.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 MOB_SSS
#define MISC_BLOCK_SSS
// #define MISC_BLOCK_SSS
#define Ambient_SSS
#define ambientsss_brightness 1 // [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 ]

View File

@ -1,5 +1,4 @@
uniform sampler2D gaux1;
uniform int framemod8;
const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.),
@ -11,28 +10,26 @@ const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.),
vec2(3,7.)/8.,
vec2(7.,-7.)/8.);
vec3 mix_vec3(vec3 X, vec3 Y, float A){
return X * (1.0 - A) + Y * A;
}
float mix_float(float X, float Y, float A){
return X * (1.0 - A) + Y * A;
}
float square(float x){
return x*x;
}
// other shit
float invLinZ (float lindepth){
return -((2.0*near/lindepth)-far-near)/(far-near);
}
vec3 toClipSpace3(vec3 viewSpacePosition) {
return projMAD(gbufferProjection, viewSpacePosition) / -viewSpacePosition.z * 0.5 + 0.5;
}
float linZ(float depth) {
return (2.0 * near) / (far + near - depth * (far - near));
// l = (2*n)/(f+n-d(f-n))
@ -42,7 +39,6 @@ float linZ(float depth) {
}
void frisvad(in vec3 n, out vec3 f, out vec3 r){
if(n.z < -0.9) {
f = vec3(0.,-1,0);
@ -54,54 +50,24 @@ void frisvad(in vec3 n, out vec3 f, out vec3 r){
r = vec3(b, 1. - n.y*n.y*a , -n.y);
}
}
mat3 CoordBase(vec3 n){
vec3 x,y;
frisvad(n,x,y);
return mat3(x,y,n);
}
float unpackRoughness(float x){
float r = 1.0 - x;
return clamp(r*r,0,1);
}
vec2 R2_samples_spec(int n){
vec2 R2_Sample(int n){
vec2 alpha = vec2(0.75487765, 0.56984026);
return fract(alpha * n);
}
vec3 rayTrace_GI(vec3 dir,vec3 position,float dither, float quality){
vec3 clipPosition = toClipSpace3(position);
float rayLength = ((position.z + dir.z * far*sqrt(3.)) > -near) ?
(-near -position.z) / dir.z : far*sqrt(3.);
vec3 direction = normalize(toClipSpace3(position+dir*rayLength)-clipPosition); //convert to clip space
direction.xy = normalize(direction.xy);
//get at which length the ray intersects with the edge of the screen
vec3 maxLengths = (step(0.,direction)-clipPosition) / direction;
float mult = maxLengths.y;
vec3 stepv = direction * mult / quality*vec3(RENDER_SCALE,1.0) * dither;
vec3 spos = clipPosition*vec3(RENDER_SCALE,1.0) ;
spos.xy += TAA_Offset*texelSize*0.5/RENDER_SCALE;
float biasdist = clamp(position.z*position.z/50.0,1,2); // shrink sample size as distance increases
for(int i = 0; i < int(quality); i++){
spos += stepv;
float sp = sqrt(texelFetch2D(colortex4,ivec2(spos.xy/texelSize/4),0).w/65000.0);
float currZ = linZ(spos.z);
if( sp < currZ) {
float dist = abs(sp-currZ)/currZ;
if (abs(dist) < biasdist*0.05) return vec3(spos.xy, invLinZ(sp))/vec3(RENDER_SCALE,1.0);
}
spos += stepv;
}
return vec3(1.1);
}
vec3 rayTraceSpeculars(vec3 dir,vec3 position,float dither, float quality, bool hand, inout float reflectLength){
vec3 rayTraceSpeculars(vec3 dir, vec3 position, float dither, float quality, bool hand, inout float reflectLength){
vec3 clipPosition = toClipSpace3(position);
float rayLength = ((position.z + dir.z * far*sqrt(3.)) > -near) ?
@ -143,34 +109,13 @@ vec3 rayTraceSpeculars(vec3 dir,vec3 position,float dither, float quality, bool
reflectLength += 1.0 / quality; // for shit
}
return vec3(1.1);
}
// vec3 sampleGGXVNDF(vec3 V_, float roughness, float U1, float U2){
// // stretch view
// vec3 V = normalize(vec3(roughness * V_.x, roughness * V_.y, V_.z));
// // orthonormal basis
// vec3 T1 = (V.z < 0.9999) ? normalize(cross(V, vec3(0,0,1))) : vec3(1,0,0);
// vec3 T2 = cross(T1, V);
// // sample point with polar coordinates (r, phi)
// float a = 1.0 / (1.0 + V.z);
// float r = sqrt(U1*0.25);
// float phi = (U2<a) ? U2/a * 3.141592653589793 : 3.141592653589793 + (U2-a)/(1.0-a) * 3.141592653589793;
// float P1 = r*cos(phi);
// float P2 = r*sin(phi)*((U2<a) ? 1.0 : V.z);
// // compute normal
// vec3 N = P1*T1 + P2*T2 + sqrt(max(0.0, 1.0 - P1*P1 - P2*P2))*V;
// // unstretch
// N = normalize(vec3(roughness*N.x, roughness*N.y, N.z));
// return N;
// }
float xonk_fma(float a,float b,float c){
return a * b + c;
}
//// thank you Zombye | the paper: https://ggx-research.github.io/publication/2023/06/09/publication-ggx.html
vec3 SampleVNDFGGX(
vec3 viewerDirection, // Direction pointing towards the viewer, oriented such that +Z corresponds to the surface normal
@ -204,8 +149,7 @@ vec3 SampleVNDFGGX(
return normalize(vec3(alpha * halfway.xy, halfway.z));
}
vec3 GGX(vec3 n, vec3 v, vec3 l, float r, vec3 F0) {
float GGX(vec3 n, vec3 v, vec3 l, float r, float f0) {
r = max(pow(r,2.5), 0.0001);
vec3 h = l + v;
@ -218,333 +162,118 @@ vec3 GGX(vec3 n, vec3 v, vec3 l, float r, vec3 F0) {
float denom = dotNHsq * r - dotNHsq + 1.;
float D = r / (3.141592653589793 * denom * denom);
vec3 F = F0 + (1. - F0) * exp2((-5.55473*dotLH-6.98316)*dotLH);
float F = f0 + (1. - f0) * exp2((-5.55473*dotLH-6.98316)*dotLH);
float k2 = .25 * r;
return dotNL * D * F / (dotLH*dotLH*(1.0-k2)+k2);
}
// pain
void MaterialReflections(
void DoSpecularReflections(
inout vec3 Output,
float roughness,
vec3 f0,
vec3 albedo,
vec3 sunPos,
vec3 directlighting,
float lightmap,
vec3 normal,
vec3 np3,
vec3 fragpos,
vec3 noise,
bool hand,
bool isEntities
vec3 FragPos, // toScreenspace(vec3(screenUV, depth)
vec3 WorldPos,
vec3 LightPos, // should be in world space
vec3 Noise, // xy = noise texure. z = simple blue noise
vec3 Normal, // normals in world space
float Roughness, // red channel of specular texture _S
float F0, // green channel of specular texture _S
vec3 Albedo,
vec3 Diffuse, // should contain the light color and NdotL. and maybe shadows.
float Lightmap, // in anything other than world0, this should be 1.0;
bool Hand // mask for the hand
){
vec3 Reflections_Final = Output;
vec3 SkyReflection = Output;
vec3 SunReflection = vec3(0.0);
vec4 Reflections = vec4(0.0);
vec3 Final_Reflection = Output;
vec3 Background_Reflection = Output;
vec3 Lightsource_Reflection = vec3(0.0);
vec4 SS_Reflections = vec4(0.0);
float reflectLength;
float Outdoors = clamp((lightmap-0.6)*5.0, 0.0,1.0);
Lightmap = clamp((Lightmap-0.6)*5.0, 0.0,1.0);
roughness = unpackRoughness(roughness);
f0 = f0.y == 0.0 ? vec3(0.02) : f0;
Roughness = unpackRoughness(Roughness);
F0 = F0 == 0.0 ? 0.02 : F0;
// Roughness = 0.0;
// F0 = 0.9;
// f0 = vec3(0.9);
// roughness = 0.5;
mat3 Basis = CoordBase(Normal);
vec3 ViewDir = -WorldPos*Basis;
mat3 basis = CoordBase(normal);
vec3 normSpaceView = -np3*basis ;
// roughness stuff
#ifdef Rough_reflections
int seed = frameCounter%40000;
vec2 ij = fract(R2_samples_spec(seed) + noise.rg) ;
vec3 H = SampleVNDFGGX(normSpaceView, vec2(roughness), ij.xy);
if(hand) H = normalize(vec3(0.0,0.0,1.0));
vec3 SamplePoints = SampleVNDFGGX(ViewDir, vec2(Roughness), fract(R2_Sample(frameCounter%40000) + Noise.xy));
if(Hand) SamplePoints = normalize(vec3(0.0,0.0,1.0));
#else
vec3 H = normalize(vec3(0.0,0.0,1.0));
vec3 SamplePoints = normalize(vec3(0.0,0.0,1.0));
#endif
vec3 Ln = reflect(-ViewDir, SamplePoints);
vec3 L = Basis * Ln;
float Fresnel = pow(clamp(1.0 + dot(-Ln, SamplePoints),0.0,1.0), 5.0); // Schlick's approximation
float RayContribution = mix_float(F0, 1.0, Fresnel); // ensure that when the angle is 0 that the correct F0 is used.
vec3 Ln = reflect(-normSpaceView, H);
vec3 L = basis * Ln;
#ifdef Rough_reflections
if(Hand) RayContribution = RayContribution * pow(1.0-Roughness,3.0);
#else
RayContribution = RayContribution * pow(1.0-Roughness,3.0);
#endif
// fresnel stuff
float fresnel = pow(clamp(1.0 + dot(-Ln, H),0.0,1.0),5.0);
vec3 F = mix_vec3(f0, vec3(1.0), fresnel);
vec3 rayContrib = F;
bool hasReflections = Roughness_Threshold == 1.0 ? true : F0 * (1.0 - Roughness * Roughness_Threshold) > 0.01;
float rayContribLuma = dot(rayContrib,vec3(0.333333));
float VisibilityFactor = rayContribLuma * pow(1.0-roughness,3.0);
bool hasReflections = Roughness_Threshold == 1.0 ? true : (f0.y * (1.0 - roughness * Roughness_Threshold)) > 0.01;
// mulitply all reflections by the albedo if it is a metal.
vec3 Metals = F0 > 229.5/255.0 ? mix_vec3(Albedo, vec3(1.0), Fresnel) : vec3(1.0);
SunReflection = directlighting * GGX(normal, -np3, sunPos, roughness, vec3(f0.y));
// --------------- BACKGROUND REFLECTIONS
// apply background reflections to the final color. make sure it does not exist based on the lightmap
#ifdef Sky_reflection
//pow(clamp(1.0-VisibilityFactor,0,1),0.3)*
if( Roughness_Threshold == 1.0 || (f0.y * (1.0 - roughness * Roughness_Threshold)) > 0.005) SkyReflection = skyCloudsFromTex(L, colortex4).rgb / 30.;
if(hasReflections) Background_Reflection = (skyCloudsFromTexLOD(L, colortex4, sqrt(Roughness) * 9.0).rgb / 30.0) * Metals;
// take fresnel and lightmap levels into account and write to the final color
Final_Reflection = mix_vec3(Output, Background_Reflection, Lightmap * RayContribution);
#endif
if (hasReflections) { // Skip sky reflection and SSR if its just not very visible anyway
#ifdef Screen_Space_Reflections
float rayQuality = mix_float(reflection_quality,6.0,rayContribLuma); // Scale quality with ray contribution
#ifndef Dynamic_SSR_quality
rayQuality = reflection_quality;
// --------------- SCREENSPACE REFLECTIONS
// apply screenspace reflections to the final color and mask out background reflections.
#ifdef Screen_Space_Reflections
if(hasReflections){
#ifdef Dynamic_SSR_quality
float SSR_Quality = mix_float(reflection_quality, 6.0, RayContribution); // Scale quality with ray contribution
#else
float SSR_Quality = reflection_quality;
#endif
noise.b = mix_float(noise.b, 0.5 + (noise.b-0.5),rayContribLuma);
if(hand) {rayQuality = max(rayQuality,30.0); noise.b = 0.5 + (noise.b-0.5);}
vec3 rtPos = rayTraceSpeculars(mat3(gbufferModelView) * L, fragpos.xyz, (noise.b), rayQuality, hand, reflectLength);
float LOD = clamp(reflectLength * 6.0, 0.0,6.0);
// LOD = 0.0;
if (rtPos.z < 1.0) { // Reproject on previous frame
vec3 previousPosition = mat3(gbufferModelViewInverse) * toScreenSpace(rtPos) + gbufferModelViewInverse[3].xyz + cameraPosition-previousCameraPosition;
float reflectLength = 0.0;
vec3 RaytracePos = rayTraceSpeculars(mat3(gbufferModelView) * L, FragPos, Noise.z, SSR_Quality, Hand, reflectLength);
float LOD = clamp(pow(reflectLength, pow(1.0-sqrt(Roughness),5.0) * 3.0) * 6.0, 0.0, 6.0); // use higher LOD as the reflection goes on, to blur it. this helps denoise a little.
if (RaytracePos.z < 1.0){
vec3 previousPosition = mat3(gbufferModelViewInverse) * toScreenSpace(RaytracePos) + gbufferModelViewInverse[3].xyz + cameraPosition-previousCameraPosition;
previousPosition = mat3(gbufferPreviousModelView) * previousPosition + gbufferPreviousModelView[3].xyz;
previousPosition.xy = projMAD(gbufferPreviousProjection, previousPosition).xy / -previousPosition.z * 0.5 + 0.5;
if (previousPosition.x > 0.0 && previousPosition.y > 0.0 && previousPosition.x < 1.0 && previousPosition.x < 1.0) {
Reflections.a = 1.0;
Reflections.rgb = texture2DLod(colortex5,previousPosition.xy,LOD).rgb;
}
}
#endif
}
// check if the f0 is within the metal ranges, then tint by albedo if it's true.
// // the brightening is disgusting
// vec3 Metals = f0.y > 229.5/255.0 ? clamp((albedo / max(pow(luma(albedo),0.1),0.4)) + fresnel,0.0,1.0) : vec3(1.0);
vec3 Metals = f0.y > 229.5/255.0 ? clamp(albedo + fresnel,0.0,1.0) : vec3(1.0);
SunReflection *= Metals;
#ifdef Sky_reflection
SkyReflection *= Metals;
#endif
#ifdef Screen_Space_Reflections
Reflections.rgb *= Metals;
#endif
// background reflections
SkyReflection = mix_vec3(Output, SkyReflection, Outdoors);
// composite background and SSR.
Reflections.rgb = mix_vec3(SkyReflection, Reflections.rgb, Reflections.a);
// put reflections onto the scene
#ifdef Rough_reflections
Output = hand ? mix_vec3(Output, Reflections.rgb, VisibilityFactor) : mix_vec3(Output, Reflections.rgb, rayContribLuma);
#else
Output = mix_vec3(Output, Reflections.rgb, VisibilityFactor);
#endif
Output += SunReflection;
}
void MaterialReflections_N(
inout vec3 Output,
float roughness,
vec3 f0,
vec3 albedo,
vec3 normal,
vec3 np3,
vec3 fragpos,
vec3 noise,
bool hand
){
vec3 Reflections_Final = Output;
float reflectLength = 0.0;
roughness = unpackRoughness(roughness);
f0 = f0.y == 0.0 ? vec3(0.02) : f0;
// roughness = 0.0;
// f0 = vec3(0.9);
float visibilityFactor = clamp(exp2((pow(roughness,3.0) / f0.y) * -4),0,1);
mat3 basis = CoordBase(normal);
vec3 normSpaceView = -np3*basis ;
// roughness stuff
#ifdef Rough_reflections
int seed = (frameCounter%40000);
vec2 ij = fract(R2_samples_spec(seed) + noise.rg) ;
vec3 H = SampleVNDFGGX(normSpaceView, vec2(roughness), ij.xy);
if(hand) H = normalize(vec3(0.0,0.0,1.0));
#else
vec3 H = normalize(vec3(0.0,0.0,1.0));
#endif
vec3 Ln = reflect(-normSpaceView, H);
vec3 L = basis * Ln;
// fresnel stuff
float fresnel = pow(clamp(1.0 + dot(-Ln, H),0.0,1.0),5.0);
vec3 F = mix(f0, vec3(1.0), fresnel);
vec3 rayContrib = F;
// float NdotV = clamp(normalize(dot(np3, L))*10000.,0.,1.);
bool hasReflections = (f0.y * (1.0 - roughness * Roughness_Threshold)) >= 0.0;
if (Roughness_Threshold == 1.0){ hasReflections = true; }
// SSR, Sky, and Sun reflections
vec4 Reflections = vec4(0.0);
vec3 FogReflection = vec3(0.0);
#ifdef Screen_Space_Reflections
if ( hasReflections ) { // Skip SSR if ray contribution is low
float rayQuality = reflection_quality;
vec3 rtPos = rayTraceSpeculars( mat3(gbufferModelView) * L,fragpos.xyz, noise.b, reflection_quality, hand, reflectLength);
float LOD = clamp( reflectLength * 6.0 ,0.0,6.0);
if (rtPos.z < 1. ){ // Reproject on previous frame
vec3 previousPosition = mat3(gbufferModelViewInverse) * toScreenSpace(rtPos) + gbufferModelViewInverse[3].xyz + cameraPosition-previousCameraPosition;
previousPosition = mat3(gbufferPreviousModelView) * previousPosition + gbufferPreviousModelView[3].xyz;
previousPosition.xy = projMAD(gbufferPreviousProjection, previousPosition).xy / -previousPosition.z * 0.5 + 0.5;
if (previousPosition.x > 0.0 && previousPosition.y > 0.0 && previousPosition.x < 1.0 && previousPosition.x < 1.0) {
Reflections.a = 1.0;
Reflections.rgb = texture2DLod(colortex5,previousPosition.xy,LOD).rgb;
SS_Reflections.a = 1.0;
SS_Reflections.rgb = texture2DLod(colortex5, previousPosition.xy, LOD).rgb * Metals;
}
}
// make sure it takes the fresnel into account for SSR.
SS_Reflections.rgb = mix_vec3(Output, SS_Reflections.rgb, RayContribution);
// occlude the background with the SSR and write to the final color.
Final_Reflection = mix_vec3(Final_Reflection, SS_Reflections.rgb, SS_Reflections.a);
}
#endif
// check if the f0 is within the metal ranges, then tint by albedo if it's true.
vec3 Metals = f0.y > 229.5/255.0 ? clamp(albedo + fresnel,0.0,1.0) : vec3(1.0);
Reflections.rgb *= Metals;
#ifdef Sky_reflection
// reflect nether fog color instead of a sky.
FogReflection = gl_Fog.color.rgb * 0.5 * NetherFog_brightness;
FogReflection *= 1.0 + sqrt(roughness) * 15.0; // brighten rough spots for some highlights that look neat
FogReflection *= Metals;
FogReflection = mix(Output, FogReflection, pow(fresnel, 0.2)+0.1); // make sure the background contains the fog reflection.
#else
FogReflection = Output;
// --------------- LIGHTSOURCE REFLECTIONS
// slap the main lightsource reflections to the final color.
#ifdef LIGHTSOURCE_REFLECTION
Lightsource_Reflection = Diffuse * GGX(Normal, -WorldPos, LightPos, Roughness, F0) * Metals;
Final_Reflection += Lightsource_Reflection;
#endif
Reflections.rgb = mix(FogReflection, Reflections.rgb, Reflections.a); // make background only where ssr is not.
Reflections_Final = mix(Output, Reflections.rgb, luma(rayContrib)); // apply reflections to final scene color.
#ifdef Rough_reflections
Output = hand ? mix_vec3(Output, Reflections_Final, visibilityFactor) : Reflections_Final;
#else
Output = mix_vec3(Output, Reflections_Final, visibilityFactor);
#endif
// Output = vec3(reflectLength);
}
void MaterialReflections_E(
inout vec3 Output,
float roughness,
vec3 f0,
vec3 albedo,
vec3 normal,
vec3 np3,
vec3 fragpos,
vec3 noise,
bool hand,
vec3 lightCol,
vec3 lightDir,
bool isEntities
){
vec3 Reflections_Final = Output;
float reflectLength = 0.0;
roughness = unpackRoughness(roughness);
f0 = f0.y == 0.0 ? vec3(0.02) : f0;
// roughness = 0.1;
// f0 = vec3(0.9);
float visibilityFactor = clamp(exp2((pow(roughness,3.0) / f0.y) * -4),0,1);
mat3 basis = CoordBase(normal);
vec3 normSpaceView = -np3*basis ;
// roughness stuff
#ifdef Rough_reflections
int seed = (frameCounter%40000);
vec2 ij = fract(R2_samples_spec(seed) + noise.rg) ;
vec3 H = SampleVNDFGGX(normSpaceView, vec2(roughness), ij.xy);
if(hand) H = normalize(vec3(0.0,0.0,1.0));
#else
vec3 H = normalize(vec3(0.0,0.0,1.0));
#endif
vec3 Ln = reflect(-normSpaceView, H);
vec3 L = basis * Ln;
// fresnel stuff
float fresnel = pow(clamp(1.0 + dot(-Ln, H),0.0,1.0),5.0);
vec3 F = mix(f0, vec3(1.0), fresnel);
vec3 rayContrib = F;
// float NdotV = clamp(normalize(dot(np3, L))*10000.,0.,1.);
bool hasReflections = (f0.y * (1.0 - roughness * Roughness_Threshold)) >= 0.0;
if (Roughness_Threshold == 1.0){ hasReflections = true; }
vec3 Ln_2 = reflect(-normSpaceView, normalize(vec3(0.0,0.0,1.0)));
vec3 L_2 = basis * Ln_2;
vec3 FogReflection = skyCloudsFromTexLOD(L_2, colortex4, sqrt(roughness) * 9.0).rgb / 150.0;
FogReflection = mix(FogReflection, lightCol * 2 * clamp(dot(L_2, lightDir),0,1), roughness);
FogReflection *= 1.0 + roughness * 2.0;
vec4 Reflections = vec4(0.0);
#ifdef Screen_Space_Reflections
if ( hasReflections ) { // Skip SSR if ray contribution is low
float rayQuality = reflection_quality;
vec3 rtPos = rayTraceSpeculars( mat3(gbufferModelView) * L,fragpos.xyz, noise.b, reflection_quality, hand, reflectLength);
float LOD = clamp( reflectLength * 6.0 ,0.0,6.0);
if(hand) LOD = 6.0;
if(isEntities) LOD = 4.0;
if (rtPos.z < 1. ){ // Reproject on previous frame
vec3 previousPosition = mat3(gbufferModelViewInverse) * toScreenSpace(rtPos) + gbufferModelViewInverse[3].xyz + cameraPosition-previousCameraPosition;
previousPosition = mat3(gbufferPreviousModelView) * previousPosition + gbufferPreviousModelView[3].xyz;
previousPosition.xy = projMAD(gbufferPreviousProjection, previousPosition).xy / -previousPosition.z * 0.5 + 0.5;
if (previousPosition.x > 0.0 && previousPosition.y > 0.0 && previousPosition.x < 1.0 && previousPosition.x < 1.0) {
Reflections.a = 1.0;
Reflections.rgb = texture2DLod(colortex5,previousPosition.xy,LOD).rgb;
}
}
}
#endif
// check if the f0 is within the metal ranges, then tint by albedo if it's true.
vec3 Metals = f0.y > 229.5/255.0 ? clamp(albedo + fresnel,0.0,1.0) : vec3(1.0);
Reflections.rgb *= Metals;
FogReflection *= Metals;
Reflections.rgb = mix(FogReflection, Reflections.rgb, Reflections.a); // make background only where ssr is not.
Reflections_Final = mix(Output, Reflections.rgb, luma(rayContrib)); // apply reflections to final scene color.
#ifdef Rough_reflections
Output = hand ? mix_vec3(Output, Reflections_Final, visibilityFactor) : Reflections_Final;
#else
Output = mix_vec3(Output, Reflections_Final, visibilityFactor);
#endif
Output = Final_Reflection;
}

View File

@ -171,8 +171,6 @@ vec3 Cloud_lighting(
vec3 moonLighting = exp(MoonShadowing * coeeff/4 + powder) * moonContribution;
return skyLighting + moonLighting + sunLighting ;
// return skyLighting;
}
@ -193,13 +191,6 @@ float CustomPhase(float LightPos, float S_1, float S_2){
return A;
}
float PhaseHG(float cosTheta, float g) {
float denom = 1 + g * g + 2 * g * cosTheta;
const float Inv4Pi = 0.07957747154594766788;
return Inv4Pi * (1 - g * g) / (denom * sqrt(denom));
}
uniform vec3 lightningEffect;
vec4 renderClouds(
@ -299,7 +290,6 @@ vec4 renderClouds(
Sunlight += HighAlt_shadow;
#endif
// float phase = PhaseHG(-SdotV, (1.0-cumulus));
float ambientlightshadow = 1.0 - clamp(exp((progress_view.y - (MaxCumulusHeight - 50)) / 100.0),0.0,1.0) ;

View File

@ -82,7 +82,13 @@ float ld(float dist) {
vec2 RENDER_SCALE = vec2(1.0);
#undef LIGHTSOURCE_REFLECTION
#define NETHERSPECULAR
#include "/lib/specular.glsl"
#include "/lib/nether_fog.glsl"
@ -464,7 +470,9 @@ void main() {
#ifdef Specular_Reflections
MaterialReflections_N(gl_FragData[0].rgb, SpecularTex.r, vec3(SpecularTex.g), albedo, normal, np3, fragpos, vec3(blueNoise(gl_FragCoord.xy).rg,noise), hand);
// MaterialReflections_N(gl_FragData[0].rgb, SpecularTex.r, vec3(SpecularTex.g), albedo, normal, np3, fragpos, vec3(blueNoise(gl_FragCoord.xy).rg,noise), hand);
vec3 specNoise = vec3(blueNoise(gl_FragCoord.xy).rg, interleaved_gradientNoise());
DoSpecularReflections(gl_FragData[0].rgb, fragpos, np3, vec3(0.0), specNoise, normal, SpecularTex.r, SpecularTex.g, albedo, vec3(0.0), 1.0, hand);
#endif
Emission(gl_FragData[0].rgb, albedo, SpecularTex.a);

View File

@ -13,6 +13,7 @@ uniform sampler2D colortex13;
uniform sampler2D colortex11;
uniform sampler2D colortex7;
uniform sampler2D colortex3;
uniform sampler2D colortex4;
uniform sampler2D colortex2;
uniform sampler2D colortex0;
uniform sampler2D noisetex;
@ -192,5 +193,12 @@ void main() {
}
gl_FragData[0].r = bloomyfogmult;
#ifdef display_LUT
vec2 movedTC = texcoord;
vec3 thingy = texture2D(colortex4,movedTC).rgb / 150. * 5.0;
if(luma(thingy) > 0.0 ) color.rgb = thingy;
#endif
gl_FragData[1].rgb = clamp(color,6.11*1e-5,65000.0);
}

View File

@ -75,6 +75,18 @@ void main() {
gl_FragData[0] = vec4(0.0);
//Sky gradient with clouds
if (gl_FragCoord.x > 18.+257. && gl_FragCoord.y > 1. && gl_FragCoord.x < 18+257+257.){
vec2 p = clamp(floor(gl_FragCoord.xy-vec2(18.+257,1.))/256.+tempOffsets/256.,0.0,1.0);
vec3 viewVector = cartToSphere(p);
vec3 BackgroundColor = (gl_Fog.color.rgb / max(dot(gl_Fog.color.rgb,vec3(0.3333)),0.01)) * 3.0;
BackgroundColor *= abs(viewVector.y+0.5);
gl_FragData[0] = vec4(BackgroundColor,1.0);
}
//Exposure values
if (gl_FragCoord.x > 10. && gl_FragCoord.x < 11. && gl_FragCoord.y > 19.+18. && gl_FragCoord.y < 19.+18.+1 )
gl_FragData[0] = vec4(exposure,avgBrightness,exposureF,1.0);

View File

@ -84,6 +84,8 @@ vec2 RENDER_SCALE = vec2(1.0);
#include "/lib/end_fog.glsl"
#undef LIGHTSOURCE_REFLECTION
#define ENDSPECULAR
#include "/lib/specular.glsl"
@ -453,8 +455,13 @@ void main() {
// finalize
gl_FragData[0].rgb = (Indirect_lighting + LightSource) * albedo;
// #ifdef Specular_Reflections
// MaterialReflections_E(gl_FragData[0].rgb, SpecularTex.r, SpecularTex.ggg, albedo, normal, np3, fragpos, vec3(blueNoise(gl_FragCoord.xy).rg,noise), hand, LightColor * LightFalloff, normalize(-LightPos), entities);
// #endif
#ifdef Specular_Reflections
MaterialReflections_E(gl_FragData[0].rgb, SpecularTex.r, SpecularTex.ggg, albedo, normal, np3, fragpos, vec3(blueNoise(gl_FragCoord.xy).rg,noise), hand, LightColor * LightFalloff, normalize(-LightPos), entities);
vec3 specNoise = vec3(blueNoise(gl_FragCoord.xy).rg, interleaved_gradientNoise());
DoSpecularReflections(gl_FragData[0].rgb, fragpos, np3, vec3(0.0), specNoise, normal, SpecularTex.r, SpecularTex.g, albedo, vec3(0.0), 1.0, hand);
#endif
if(!hand) gl_FragData[0].rgb *= ssao(fragpos,noise,FlatNormals) * AO;

View File

@ -12,6 +12,7 @@ uniform sampler2D depthtex1;
uniform sampler2D colortex13;
uniform sampler2D colortex11;
uniform sampler2D colortex7;
uniform sampler2D colortex4;
uniform sampler2D colortex3;
uniform sampler2D colortex2;
uniform sampler2D colortex0;
@ -183,5 +184,16 @@ void main() {
}
gl_FragData[0].r = bloomyfogmult;
#ifdef display_LUT
vec2 movedTC = texcoord;
vec3 thingy = texture2D(colortex4,movedTC).rgb / 30.0;
if(luma(thingy) > 0.0 ) color.rgb = thingy;
#endif
gl_FragData[1].rgb = clamp(color,6.11*1e-5,65000.0);
}

View File

@ -83,11 +83,12 @@ 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);
mat2x3 vL = getVolumetricRays(fract(frameCounter/1.6180339887),mat3(gbufferModelView)*viewVector*1024.,fract(frameCounter/2.6180339887));
float absorbance = dot(vL[1],vec3(0.22,0.71,0.07));
mat2x3 vl = getVolumetricRays(fract(frameCounter/1.6180339887),mat3(gbufferModelView)*viewVector*1024.,fract(frameCounter/2.6180339887));
float absorbance = dot(vl[1],vec3(0.22,0.71,0.07));
gl_FragData[0] = clamp(vec4(vl[0]*0.7,absorbance),0.000001,65000.);
gl_FragData[0] = vec4(vL[0].rgb * (1.0-absorbance),1.0);
}
//Temporally accumulate sky and light values