mirror of
https://github.com/X0nk/Bliss-Shader.git
synced 2024-12-23 01:59:39 +08:00
Clean specular.glsl and make it easier to use for myself across dimension. make grass brighter in ambient light.
This commit is contained in:
parent
e5a956ccb0
commit
e74823a918
@ -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 ----- #######
|
||||
|
@ -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 */
|
||||
}
|
@ -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;
|
||||
|
||||
|
||||
|
@ -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){
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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
|
@ -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;
|
||||
}
|
||||
|
@ -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 ]
|
||||
|
||||
|
@ -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;
|
||||
}
|
@ -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) ;
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user