Grafika2023/PlanetCreator/cw 6/shaders/shader_5_1_tex.frag

37 lines
882 B
GLSL
Raw Normal View History

2024-01-11 17:57:31 +01:00
#version 430 core
2024-02-07 15:31:46 +01:00
float AMBIENT = 0.2;
2024-01-11 17:57:31 +01:00
2024-02-07 15:36:10 +01:00
uniform vec3 color;
2024-01-11 17:57:31 +01:00
uniform vec3 lightPos;
2024-02-07 15:36:10 +01:00
uniform sampler2D colorTexture;
2024-01-11 17:57:31 +01:00
2024-02-07 15:31:46 +01:00
const float PI = 3.14159265359;
2024-01-11 17:57:31 +01:00
in vec3 vecNormal;
in vec3 worldPos;
in vec2 texCoord;
out vec4 outColor;
2024-02-07 15:31:46 +01:00
2024-01-11 17:57:31 +01:00
void main()
{
2024-02-07 15:31:46 +01:00
vec3 lightDir = normalize(lightPos - worldPos);
vec3 normal = normalize(vecNormal);
float diffuse = max(0.0, dot(normal, lightDir));
diffuse = clamp(diffuse + 0.2, 0.0, 1.0);
vec3 viewDir = normalize(-worldPos);
vec3 halfwayDir = normalize(lightDir + viewDir);
float specularStrength = 0.7; // Increase specular strength
float specular = pow(max(0.0, dot(normal, halfwayDir)), 32);
vec4 textureColor = texture(colorTexture, texCoord);
vec3 finalColor = textureColor.rgb * (AMBIENT + diffuse) + specularStrength * specular;
outColor = vec4(finalColor, textureColor.a);
2024-01-11 17:57:31 +01:00
}