mirror of
https://github.com/X0nk/Bliss-Shader.git
synced 2025-06-22 16:52:38 +08:00
intial changes for commit #495
This commit is contained in:
@ -28,7 +28,7 @@ vec3 drawMoon(vec3 PlayerPos, vec3 WorldSunVec, vec3 Color, inout vec3 occludeSt
|
||||
|
||||
vec3 LightDir = phase[moonPhase];
|
||||
|
||||
return Shape * pow(clamp(dot(sunNormal,LightDir)/5,0.0,1.5),5) * Color + clamp(Shape * 4.0 * pow(shape2/200,2.0),0.0,1.0)*0.004;
|
||||
return Shape * pow(clamp(dot(sunNormal,LightDir)/5,0.0,1.5),5) * Color * 10.0 + clamp(Shape * 4.0 * pow(shape2/200,2.0),0.0,1.0)*0.004;
|
||||
}
|
||||
|
||||
const float pi = 3.141592653589793238462643383279502884197169;
|
||||
@ -134,27 +134,73 @@ vec4 texture2D_bicubic_offset(sampler2D tex, vec2 uv, float noise, float scale)
|
||||
|
||||
vec2 sphereToCarte(vec3 dir) {
|
||||
float lonlat = clamp(atan(-dir.x, -dir.z), -pi, pi);
|
||||
return vec2(lonlat * (0.5/pi) +0.5,0.5*dir.y+0.5);
|
||||
return vec2(lonlat * (0.5/pi) +0.5, 0.5*dir.y+0.5);
|
||||
}
|
||||
|
||||
vec3 skyFromTex(vec3 pos,sampler2D sampler){
|
||||
|
||||
vec2 p = sphereToCarte(pos);
|
||||
|
||||
vec2 clampUV = vec2(1.0);
|
||||
p = clamp(p*2.0-1.0, -clampUV, clampUV)*0.5+0.5;
|
||||
|
||||
return texture2D(sampler,p*texelSize*256.+vec2(18.5,1.5)*texelSize).rgb;
|
||||
}
|
||||
vec3 skyFromTexLOD(vec3 pos,sampler2D sampler, float LOD){
|
||||
vec2 p = sphereToCarte(pos);
|
||||
|
||||
return texture2DLod(sampler,p*texelSize*256.+vec2(18.5,1.5)*texelSize,LOD).rgb;
|
||||
}
|
||||
|
||||
vec4 skyCloudsFromTex(vec3 pos,sampler2D sampler){
|
||||
|
||||
vec2 p = sphereToCarte(pos);
|
||||
return texture2D(sampler,p*texelSize*256.+vec2(18.5+257.,1.5)*texelSize);
|
||||
}
|
||||
vec4 skyCloudsFromTexLOD(vec3 pos,sampler2D sampler, float LOD){
|
||||
vec2 p = sphereToCarte(pos);
|
||||
return texture2DLod(sampler,p*texelSize*256. + vec2(18.5 + 257., 1.5)*texelSize,LOD);
|
||||
|
||||
vec2 uv = clamp(p, 0.0, 1.0) * texelSize*256. + vec2(18.5+257.,1.5)*texelSize;
|
||||
|
||||
return texture2D(sampler, uv);
|
||||
}
|
||||
|
||||
vec4 skyCloudsFromTexLOD2(vec3 pos,sampler2D sampler, float LOD){
|
||||
vec4 skyCloudsFromTexBLUR(vec3 pos,sampler2D sampler, float scaler){
|
||||
|
||||
vec2 p = sphereToCarte(pos);
|
||||
return texture2DLod(sampler,p*texelSize*256. + vec2(256.0 - 256.0*0.12,1.5)*texelSize,LOD);
|
||||
vec2 scaleA = texelSize*256.;
|
||||
vec2 scaleB = vec2(18.5+257.,1.5)*texelSize;
|
||||
vec2 posi = p;
|
||||
|
||||
vec2 uv = clamp(posi, 0.0, 1.0)*scaleA + scaleB;
|
||||
|
||||
|
||||
vec4 color = texture2D(sampler, uv);
|
||||
|
||||
return color;
|
||||
}
|
||||
|
||||
vec4 skyCloudsFromTexLOD(vec3 pos,sampler2D sampler, float roughness){
|
||||
vec2 p = sphereToCarte(pos);
|
||||
|
||||
roughness = (1-pow(1-roughness,3));
|
||||
|
||||
float Y = min(max(p.y-0.5,0)*50.0,1);
|
||||
p = mix(p, ((p-0.5) - (p-0.5)*roughness) + 0.5, Y);
|
||||
|
||||
// p = ((p-0.5) - (p-0.5)*roughness) + 0.5;
|
||||
|
||||
vec2 clampUV = vec2(1.0);
|
||||
p = clamp(p*2.0-1.0, -clampUV, clampUV)*0.5+0.5;
|
||||
|
||||
vec2 uv = p*texelSize*256.+vec2(18.5+257.,1.5)*texelSize;
|
||||
|
||||
return texture2D(sampler, uv);
|
||||
}
|
||||
|
||||
|
||||
vec4 volumetricsFromTex(vec3 pos,sampler2D sampler, float LOD){
|
||||
vec2 p = sphereToCarte(pos);
|
||||
|
||||
p = clamp(p, 0.0, 1.0);
|
||||
|
||||
vec2 uv = p*texelSize*256. + vec2(256.0 - 256.0*0.12,1.5)*texelSize;
|
||||
|
||||
return texture2DLod(sampler, uv, LOD);
|
||||
}
|
Reference in New Issue
Block a user