diff options
author | Luca Rood <dev@lucarood.com> | 2017-05-23 15:25:12 +0300 |
---|---|---|
committer | Luca Rood <dev@lucarood.com> | 2017-05-23 15:25:12 +0300 |
commit | 340e4394d43e8c3eed6ef84dafb4093299f22a29 (patch) | |
tree | 72ab28d125944724f95aaa4904d81e53485aff8d /source/blender/draw/modes/shaders/object_particle_dot_vert.glsl | |
parent | b5426b50fb1390546190203ffb5bad162fdc066e (diff) |
Use custom shader for dot particles
Diffstat (limited to 'source/blender/draw/modes/shaders/object_particle_dot_vert.glsl')
-rw-r--r-- | source/blender/draw/modes/shaders/object_particle_dot_vert.glsl | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/source/blender/draw/modes/shaders/object_particle_dot_vert.glsl b/source/blender/draw/modes/shaders/object_particle_dot_vert.glsl new file mode 100644 index 00000000000..d9d30c8e677 --- /dev/null +++ b/source/blender/draw/modes/shaders/object_particle_dot_vert.glsl @@ -0,0 +1,23 @@ + +uniform mat4 ModelViewProjectionMatrix; +uniform float size; + +in vec3 pos; +out vec4 radii; + +void main() { + gl_Position = ModelViewProjectionMatrix * vec4(pos, 1.0); + gl_PointSize = size; + + // calculate concentric radii in pixels + float radius = 0.5 * size; + + // start at the outside and progress toward the center + radii[0] = radius; + radii[1] = radius - 1.0; + radii[2] = radius - 1.0; + radii[3] = radius - 2.0; + + // convert to PointCoord units + radii /= size; +} |