summaryrefslogtreecommitdiff
path: root/res/shaders/simple_shader.vert
diff options
context:
space:
mode:
Diffstat (limited to 'res/shaders/simple_shader.vert')
-rwxr-xr-xres/shaders/simple_shader.vert30
1 files changed, 30 insertions, 0 deletions
diff --git a/res/shaders/simple_shader.vert b/res/shaders/simple_shader.vert
new file mode 100755
index 0000000..be802f7
--- /dev/null
+++ b/res/shaders/simple_shader.vert
@@ -0,0 +1,30 @@
+#version 450
+
+layout(location = 0) in vec3 position;
+layout(location = 1) in vec3 color;
+layout(location = 2) in vec3 normal;
+layout(location = 3) in vec2 uv;
+
+layout(location = 0) out vec3 fragColor;
+
+layout(set = 0, binding = 0) uniform GlobalUbo {
+ mat4 projectionViewMatrix;
+ vec3 directionToLight;
+} ubo;
+
+layout(push_constant) uniform Push {
+ mat4 modelMatrix;
+ mat4 normalMatrix;
+} push;
+
+const float AMBIENT = 0.02;
+
+void main() {
+ gl_Position = ubo.projectionViewMatrix * push.modelMatrix * vec4(position, 1.0);
+
+ vec3 normalWorldSpace = normalize(mat3(push.normalMatrix) * normal);
+
+ float lightIntensity = AMBIENT + max(dot(normalWorldSpace, ubo.directionToLight), 0);
+
+ fragColor = lightIntensity * color;
+} \ No newline at end of file