mirror of
https://github.com/X0nk/Bliss-Shader.git
synced 2024-12-22 09:38:52 +08:00
rebase fixes
This commit is contained in:
parent
91cf2b42c8
commit
ad391ff185
@ -397,6 +397,23 @@ float ComputeShadowMap(inout vec3 directLightColor, vec3 playerPos, float maxDis
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
void convertHandDepth(inout float depth) {
|
||||||
|
float ndcDepth = depth * 2.0 - 1.0;
|
||||||
|
ndcDepth /= MC_HAND_DEPTH;
|
||||||
|
depth = ndcDepth * 0.5 + 0.5;
|
||||||
|
}
|
||||||
|
void Emission(
|
||||||
|
inout vec3 Lighting,
|
||||||
|
vec3 Albedo,
|
||||||
|
float Emission,
|
||||||
|
float exposure
|
||||||
|
){
|
||||||
|
float autoBrightnessAdjust = mix(5.0, 100.0, clamp(exp(-10.0*exposure),0.0,1.0));
|
||||||
|
if( Emission < 254.5/255.0) Lighting = mix(Lighting, Albedo * Emissive_Brightness * autoBrightnessAdjust * 0.1, pow(Emission, Emissive_Curve)); // old method.... idk why
|
||||||
|
}
|
||||||
|
|
||||||
|
uniform vec3 eyePosition;
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////VOID MAIN//////////////////////////////
|
//////////////////////////////VOID MAIN//////////////////////////////
|
||||||
//////////////////////////////VOID MAIN//////////////////////////////
|
//////////////////////////////VOID MAIN//////////////////////////////
|
||||||
@ -547,8 +564,13 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
|
|||||||
lightmap.y = 1.0;
|
lightmap.y = 1.0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef Hand_Held_lights
|
#if defined Hand_Held_lights && !defined LPV_ENABLED
|
||||||
lightmap.x = max(lightmap.x, HELD_ITEM_BRIGHTNESS*clamp( pow(max(1.0-length(feetPlayerPos)/HANDHELD_LIGHT_RANGE,0.0),1.5),0.0,1.0));
|
#ifdef IS_IRIS
|
||||||
|
vec3 playerCamPos = eyePosition;
|
||||||
|
#else
|
||||||
|
vec3 playerCamPos = cameraPosition;
|
||||||
|
#endif
|
||||||
|
lightmap.x = max(lightmap.x, HELD_ITEM_BRIGHTNESS*clamp( pow(max(1.0-length((feetPlayerPos+cameraPosition) - playerCamPos)/HANDHELD_LIGHT_RANGE,0.0),1.5),0.0,1.0));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
vec3 Indirect_lighting = vec3(0.0);
|
vec3 Indirect_lighting = vec3(0.0);
|
||||||
@ -584,19 +606,12 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
|
|||||||
|
|
||||||
float skylight = max(pow(viewToWorld(flatnormal).y*0.5+0.5,0.1) + SkylightDir, 0.2);
|
float skylight = max(pow(viewToWorld(flatnormal).y*0.5+0.5,0.1) + SkylightDir, 0.2);
|
||||||
AmbientLightColor *= skylight;
|
AmbientLightColor *= skylight;
|
||||||
|
|
||||||
|
Indirect_lighting = doIndirectLighting(AmbientLightColor, MinimumLightColor, lightmap.y);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef NETHER_SHADER
|
#ifdef NETHER_SHADER
|
||||||
// vec3 AmbientLightColor = skyCloudsFromTexLOD2(worldSpaceNormal, colortex4, 6).rgb / 15.0;
|
Indirect_lighting = skyCloudsFromTexLOD2(worldSpaceNormal, colortex4, 6).rgb / 30.0 ;
|
||||||
|
|
||||||
// vec3 up = skyCloudsFromTexLOD2(vec3( 0, 1, 0), colortex4, 6).rgb/ 30.0;
|
|
||||||
// vec3 down = skyCloudsFromTexLOD2(vec3( 0,-1, 0), colortex4, 6).rgb/ 30.0;
|
|
||||||
|
|
||||||
// up *= pow( max( worldSpaceNormal.y, 0), 2);
|
|
||||||
// down *= pow( max(-worldSpaceNormal.y, 0), 2);
|
|
||||||
// AmbientLightColor += up + down;
|
|
||||||
|
|
||||||
vec3 AmbientLightColor = vec3(0.1);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef END_SHADER
|
#ifdef END_SHADER
|
||||||
@ -613,12 +628,17 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
|
|||||||
|
|
||||||
Direct_lighting = lightColors * endFogPhase(lightPos) * NdotL;
|
Direct_lighting = lightColors * endFogPhase(lightPos) * NdotL;
|
||||||
|
|
||||||
vec3 AmbientLightColor = vec3(0.5,0.75,1.0) * 0.9 + 0.1;
|
vec3 AmbientLightColor = vec3(0.3,0.6,1.0) * 0.5;
|
||||||
AmbientLightColor *= clamp(1.5 + dot(worldSpaceNormal, normalize(feetPlayerPos))*0.5,0,2);
|
|
||||||
|
Indirect_lighting = AmbientLightColor + 0.7 * AmbientLightColor * dot(worldSpaceNormal, normalize(feetPlayerPos));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
///////////////////////// BLOCKLIGHT LIGHTING OR LPV LIGHTING OR FLOODFILL COLORED LIGHTING
|
||||||
#ifdef IS_LPV_ENABLED
|
#ifdef IS_LPV_ENABLED
|
||||||
vec3 normalOffset = 0.5*worldSpaceNormal;
|
vec3 normalOffset = vec3(0.0);
|
||||||
|
|
||||||
|
if (any(greaterThan(abs(worldSpaceNormal), vec3(1.0e-6))))
|
||||||
|
normalOffset = 0.5*worldSpaceNormal;
|
||||||
|
|
||||||
#if LPV_NORMAL_STRENGTH > 0
|
#if LPV_NORMAL_STRENGTH > 0
|
||||||
if (any(greaterThan(abs(normal), vec3(1.0e-6)))) {
|
if (any(greaterThan(abs(normal), vec3(1.0e-6)))) {
|
||||||
@ -632,7 +652,7 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
|
|||||||
const vec3 lpvPos = vec3(0.0);
|
const vec3 lpvPos = vec3(0.0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Indirect_lighting = DoAmbientLightColor(feetPlayerPos, lpvPos, AmbientLightColor, MinimumLightColor, vec3(TORCH_R,TORCH_G,TORCH_B), lightmap.xy, exposure);
|
Indirect_lighting += doBlockLightLighting( vec3(TORCH_R,TORCH_G,TORCH_B), lightmap.x, exposure, feetPlayerPos, lpvPos);
|
||||||
|
|
||||||
vec3 FinalColor = (Indirect_lighting + Direct_lighting) * Albedo;
|
vec3 FinalColor = (Indirect_lighting + Direct_lighting) * Albedo;
|
||||||
|
|
||||||
@ -662,6 +682,10 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
|
|||||||
|
|
||||||
float roughness = pow(1.0-specularValues.r,2.0);
|
float roughness = pow(1.0-specularValues.r,2.0);
|
||||||
float f0 = isReflective ? max(specularValues.g, 0.02) : specularValues.g;
|
float f0 = isReflective ? max(specularValues.g, 0.02) : specularValues.g;
|
||||||
|
|
||||||
|
#ifdef HAND
|
||||||
|
f0 = max(specularValues.g, 0.02);
|
||||||
|
#endif
|
||||||
|
|
||||||
// f0 = SpecularTex.g;
|
// f0 = SpecularTex.g;
|
||||||
// roughness = pow(1.0-specularValues.r,2.0);
|
// roughness = pow(1.0-specularValues.r,2.0);
|
||||||
@ -759,9 +783,9 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
|
|||||||
gl_FragData[0].rgb = FinalColor*0.1;
|
gl_FragData[0].rgb = FinalColor*0.1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// #if EMISSIVE_TYPE == 2 || EMISSIVE_TYPE == 3
|
#if EMISSIVE_TYPE == 2 || EMISSIVE_TYPE == 3
|
||||||
// Emission(gl_FragData[0].rgb, Albedo, SpecularTex.b, exposure);
|
Emission(gl_FragData[0].rgb, Albedo, SpecularTex.b, exposure);
|
||||||
// #endif
|
#endif
|
||||||
|
|
||||||
#if defined DISTANT_HORIZONS && defined DH_OVERDRAW_PREVENTION && !defined HAND
|
#if defined DISTANT_HORIZONS && defined DH_OVERDRAW_PREVENTION && !defined HAND
|
||||||
bool WATER = texture2D(colortex7, gl_FragCoord.xy*texelSize).a > 0.0 && length(feetPlayerPos) > far-16*4 && texture2D(depthtex1, gl_FragCoord.xy*texelSize).x >= 1.0;
|
bool WATER = texture2D(colortex7, gl_FragCoord.xy*texelSize).a > 0.0 && length(feetPlayerPos) > far-16*4 && texture2D(depthtex1, gl_FragCoord.xy*texelSize).x >= 1.0;
|
||||||
@ -769,8 +793,9 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
|
|||||||
if(WATER) gl_FragData[0].a = 0.0;
|
if(WATER) gl_FragData[0].a = 0.0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
gl_FragData[1] = vec4(Albedo, MATERIALS);
|
#ifndef HAND
|
||||||
|
gl_FragData[1] = vec4(Albedo, MATERIALS);
|
||||||
|
#endif
|
||||||
#if DEBUG_VIEW == debug_DH_WATER_BLENDING
|
#if DEBUG_VIEW == debug_DH_WATER_BLENDING
|
||||||
if(gl_FragCoord.x*texelSize.x < 0.47) gl_FragData[0] = vec4(0.0);
|
if(gl_FragCoord.x*texelSize.x < 0.47) gl_FragData[0] = vec4(0.0);
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user