mirror of https://github.com/qt/qt3d.git
34 lines
755 B
GLSL
34 lines
755 B
GLSL
#version 430 core
|
|
|
|
out vec4 color;
|
|
|
|
in VertexBlock
|
|
{
|
|
flat vec3 color;
|
|
vec3 pos;
|
|
vec3 normal;
|
|
} frag_in;
|
|
|
|
const vec4 lightPosition = vec4(0.0, 0.0, 0.0, 0.0);
|
|
const vec3 lightIntensity = vec3(1.0, 1.0, 1.0);
|
|
const vec3 ka = vec3(0.1, 0.1, 0.1);
|
|
const vec3 ks = vec3(0.8, 0.8, 0.8);
|
|
const float shininess = 50.0;
|
|
|
|
vec3 ads()
|
|
{
|
|
vec3 n = normalize( frag_in.normal);
|
|
vec3 s = normalize( vec3(lightPosition) - frag_in.pos );
|
|
vec3 v = normalize( -frag_in.pos );
|
|
vec3 h = normalize( v + s );
|
|
return lightIntensity * (ka +
|
|
frag_in.color * max( dot(s, frag_in.normal ), 0.0 ) +
|
|
ks * pow( max( dot( h, n ), 0.0 ), shininess ) );
|
|
}
|
|
|
|
|
|
void main(void)
|
|
{
|
|
color = vec4(ads(), 1.0);
|
|
}
|