summaryrefslogtreecommitdiff
path: root/advanced_lighting/6.hdr/shaders/blinn.vert
diff options
context:
space:
mode:
authorpryazha <pryadeiniv@mail.ru>2025-03-18 11:31:31 +0500
committerpryazha <pryadeiniv@mail.ru>2025-03-18 11:31:31 +0500
commitd65ddd07a43d5ffdcf2ddf90d6f86626cf9b92d8 (patch)
tree672efce6089ec9c1103be0c1b70a28ec415eeeab /advanced_lighting/6.hdr/shaders/blinn.vert
parentd64a159d05a45e75870f61c37f0defa94f03793e (diff)
Diffstat (limited to 'advanced_lighting/6.hdr/shaders/blinn.vert')
-rw-r--r--advanced_lighting/6.hdr/shaders/blinn.vert34
1 files changed, 34 insertions, 0 deletions
diff --git a/advanced_lighting/6.hdr/shaders/blinn.vert b/advanced_lighting/6.hdr/shaders/blinn.vert
new file mode 100644
index 0000000..f08f38e
--- /dev/null
+++ b/advanced_lighting/6.hdr/shaders/blinn.vert
@@ -0,0 +1,34 @@
+#version 330 core
+layout(location = 0) in vec3 apos;
+layout(location = 1) in vec3 anormal;
+layout(location = 2) in vec2 atexc;
+
+out VS_OUT {
+ vec3 fpos;
+ vec3 fn;
+ vec2 texc;
+} vsout;
+
+uniform mat4 proj;
+uniform mat4 view;
+uniform mat4 model;
+
+uniform bool invert_normals;
+
+void main(void)
+{
+ mat3 normtransf;
+
+ vsout.fpos = vec3(model*vec4(apos, 1.0));
+
+ normtransf = mat3(transpose(inverse(model)));
+
+ if (invert_normals)
+ vsout.fn = normtransf*(-anormal);
+ else
+ vsout.fn = normtransf*anormal;
+
+ vsout.texc = atexc;
+
+ gl_Position = proj*view*model*vec4(apos, 1.0);
+}