diff options
Diffstat (limited to 'source/blender/gpu/shaders/gpu_shader_3D_point_uniform_size_aa_vert.glsl')
-rw-r--r-- | source/blender/gpu/shaders/gpu_shader_3D_point_uniform_size_aa_vert.glsl | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/source/blender/gpu/shaders/gpu_shader_3D_point_uniform_size_aa_vert.glsl b/source/blender/gpu/shaders/gpu_shader_3D_point_uniform_size_aa_vert.glsl new file mode 100644 index 00000000000..287f95b48ab --- /dev/null +++ b/source/blender/gpu/shaders/gpu_shader_3D_point_uniform_size_aa_vert.glsl @@ -0,0 +1,26 @@ + +uniform mat4 ModelViewProjectionMatrix; +uniform float size; + +#if __VERSION__ == 120 + attribute vec3 pos; + varying vec2 radii; +#else + in vec3 pos; + out vec2 radii; +#endif + +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; + + // convert to PointCoord units + radii /= size; +} |