diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-04-17 14:00:09 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-04-17 14:24:48 +0300 |
commit | 60b33ea327767e9ad1478c00279648a3c67f9f0e (patch) | |
tree | e5e715ca9d970e8206a1eb3a6e7d9febfc4308ec /source/blender/gpu/shaders | |
parent | ad648b769395492e9735eec7fe3998619952b1d8 (diff) |
GPU: Add GPU_SHADER_INSTANCE_VARIYING_ID_VARIYING_SIZE.
Will be used for probe outline id drawing.
Diffstat (limited to 'source/blender/gpu/shaders')
-rw-r--r-- | source/blender/gpu/shaders/gpu_shader_flat_id_frag.glsl | 8 | ||||
-rw-r--r-- | source/blender/gpu/shaders/gpu_shader_instance_variying_size_variying_id_vert.glsl | 23 |
2 files changed, 31 insertions, 0 deletions
diff --git a/source/blender/gpu/shaders/gpu_shader_flat_id_frag.glsl b/source/blender/gpu/shaders/gpu_shader_flat_id_frag.glsl new file mode 100644 index 00000000000..aa6f30531ae --- /dev/null +++ b/source/blender/gpu/shaders/gpu_shader_flat_id_frag.glsl @@ -0,0 +1,8 @@ + +flat in uint finalId; +out uint fragId; + +void main() +{ + fragId = finalId; +} diff --git a/source/blender/gpu/shaders/gpu_shader_instance_variying_size_variying_id_vert.glsl b/source/blender/gpu/shaders/gpu_shader_instance_variying_size_variying_id_vert.glsl new file mode 100644 index 00000000000..49750dddb3c --- /dev/null +++ b/source/blender/gpu/shaders/gpu_shader_instance_variying_size_variying_id_vert.glsl @@ -0,0 +1,23 @@ + +uniform mat4 ViewProjectionMatrix; +uniform int baseId; + +/* ---- Instanciated Attribs ---- */ +in vec3 pos; + +/* ---- Per instance Attribs ---- */ +in mat4 InstanceModelMatrix; +#ifdef UNIFORM_SCALE +in float size; +#else +in vec3 size; +#endif +in int callId; + +flat out uint finalId; + +void main() +{ + gl_Position = ViewProjectionMatrix * InstanceModelMatrix * vec4(pos * size, 1.0); + finalId = uint(baseId + callId); +} |