mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2024-11-29 23:22:32 +00:00
59 lines
No EOL
1.2 KiB
GLSL
Executable file
59 lines
No EOL
1.2 KiB
GLSL
Executable file
uniforms
|
|
{
|
|
mat4 world;
|
|
mat4 view;
|
|
mat4 projection;
|
|
|
|
vec4 campos; //w is set to fade factor (distance, at wich fog color completely overrides pixel color)
|
|
|
|
vec4 highlightcolor;
|
|
|
|
vec4 fogsettings;
|
|
vec4 fogcolor;
|
|
|
|
samplerCube texture1;
|
|
}
|
|
|
|
shader world3d_skybox
|
|
{
|
|
in
|
|
{
|
|
vec3 Position;
|
|
vec4 Color;
|
|
vec2 TextureCoordinate;
|
|
vec3 Normal;
|
|
}
|
|
|
|
v2f
|
|
{
|
|
vec3 Tex;
|
|
vec4 viewpos;
|
|
}
|
|
|
|
out
|
|
{
|
|
vec4 FragColor;
|
|
}
|
|
|
|
vertex
|
|
{
|
|
v2f.viewpos = view * world * vec4(in.Position, 1.0);
|
|
gl_Position = projection * v2f.viewpos;
|
|
vec3 worldpos = (world * vec4(in.Position, 1.0)).xyz;
|
|
vec4 skynormal = vec4(0.0, 1.0, 0.0, 0.0);
|
|
vec3 normal = normalize((world * skynormal).xyz);
|
|
v2f.Tex = reflect(worldpos - campos.xyz, normal);
|
|
}
|
|
|
|
fragment
|
|
{
|
|
vec4 ncolor = texture(texture1, v2f.Tex);
|
|
out.FragColor = vec4(highlightcolor.rgb * highlightcolor.a + (ncolor.rgb - 0.4 * highlightcolor.a), 1.0);
|
|
|
|
#if defined(ALPHA_TEST)
|
|
if (out.FragColor.a < 0.5) discard;
|
|
#endif
|
|
|
|
if (fogsettings.x >= 0.0) out.FragColor = mix(out.FragColor, fogcolor, clamp((-v2f.viewpos.z - fogsettings.x) / (fogsettings.y - fogsettings.x), 0.0, 1.0));
|
|
}
|
|
} |