forked from krh/vkcube
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvkcube.vert
26 lines (21 loc) · 798 Bytes
/
vkcube.vert
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#version 420 core
layout(std140, set = 0, binding = 0) uniform block {
uniform mat4 modelviewMatrix;
uniform mat4 modelviewprojectionMatrix;
uniform mat3 normalMatrix;
};
layout(location = 0) in vec4 in_position;
layout(location = 1) in vec4 in_color;
layout(location = 2) in vec3 in_normal;
vec4 lightSource = vec4(2.0, 2.0, 20.0, 0.0);
layout(location = 0) out vec4 vVaryingColor;
void main()
{
gl_Position = modelviewprojectionMatrix * in_position;
vec3 vEyeNormal = normalMatrix * in_normal;
vec4 vPosition4 = modelviewMatrix * in_position;
vec3 vPosition3 = vPosition4.xyz / vPosition4.w;
vec3 vLightDir = normalize(lightSource.xyz - vPosition3);
float diff = max(0.0, dot(vEyeNormal, vLightDir));
vVaryingColor = vec4(diff * in_color.rgb, 1.0);
}