diff options
author | Jeroen Bakker <j.bakker@atmind.nl> | 2018-04-20 11:45:46 +0300 |
---|---|---|
committer | Jeroen Bakker <j.bakker@atmind.nl> | 2018-04-20 11:45:46 +0300 |
commit | cc0c971f84a2fa616c3f5df371f160d9d024fb08 (patch) | |
tree | 7f47d304bb8a213ad2f8927d9e32e8a48df2830c /source/blender/draw/modes/shaders/overlay_face_orientation_vert.glsl | |
parent | 95e39943ef2a5d87d277b67d18570bffc3375e47 (diff) |
Workbench: Added the basics for the OverlayMode
Implemented the face orientation overlay for testing.
Overlay mode is only drawn when there are overlays to be rendered.
The overlay mode is rendered before the object mode.
Diffstat (limited to 'source/blender/draw/modes/shaders/overlay_face_orientation_vert.glsl')
-rw-r--r-- | source/blender/draw/modes/shaders/overlay_face_orientation_vert.glsl | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/source/blender/draw/modes/shaders/overlay_face_orientation_vert.glsl b/source/blender/draw/modes/shaders/overlay_face_orientation_vert.glsl new file mode 100644 index 00000000000..e9518c25400 --- /dev/null +++ b/source/blender/draw/modes/shaders/overlay_face_orientation_vert.glsl @@ -0,0 +1,21 @@ + +uniform mat4 ModelViewProjectionMatrix; + +in vec3 pos; +in vec3 nor; + +uniform mat4 ProjectionMatrix; +uniform mat4 ModelViewMatrix; +uniform mat3 NormalMatrix; + +flat out float facing; + +void main() +{ + gl_Position = ModelViewProjectionMatrix * vec4(pos, 1.0); + vec3 view_normal = normalize(NormalMatrix * nor); + vec3 view_vec = (ProjectionMatrix[3][3] == 0.0) + ? normalize((ModelViewMatrix * vec4(pos, 1.0)).xyz) + : vec3(0.0, 0.0, 1.0); + facing = dot(view_vec, view_normal); +} |