/* * Copyright (C) 2018 Tomasz Kramkowski * SPDX-License-Identifier: MIT */ #version 330 core layout (location = 0) in vec3 pos; layout (location = 1) in vec3 norm; layout (location = 2) in vec2 uv; out vec3 fnorm; out vec3 fpos; out vec2 fuv; out vec3 lipos; uniform mat4 model; uniform mat4 view; uniform mat4 proj; uniform vec3 light; void main() { gl_Position = proj * view * model * vec4(pos, 1.0); fpos = vec3(view * model * vec4(pos, 1.0)); fuv = uv; // TODO: Try to work out how to only do this ONCE in C or see if it matters fnorm = mat3(transpose(inverse(view * model))) * norm; lipos = vec3(view * vec4(light, 1.0)); }