diff options
Diffstat (limited to 'source/blender/draw/modes/shaders/object_particle_prim_vert.glsl')
-rw-r--r-- | source/blender/draw/modes/shaders/object_particle_prim_vert.glsl | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/source/blender/draw/modes/shaders/object_particle_prim_vert.glsl b/source/blender/draw/modes/shaders/object_particle_prim_vert.glsl index 55b183b6933..a950a9b86ba 100644 --- a/source/blender/draw/modes/shaders/object_particle_prim_vert.glsl +++ b/source/blender/draw/modes/shaders/object_particle_prim_vert.glsl @@ -4,8 +4,7 @@ uniform mat4 ViewProjectionMatrix; uniform mat4 ModelViewMatrix; uniform mat4 ProjectionMatrix; uniform int screen_space; -uniform float pixel_size; -uniform int draw_size; +uniform float draw_size; uniform vec3 color; uniform sampler1D ramp; @@ -23,29 +22,20 @@ vec3 rotate(vec3 vec, vec4 quat) return vec + 2.0 * cross(quat.yzw, cross(quat.yzw, vec) + quat.x * vec); } -float mul_project_m4_v3_zfac(in vec3 co) -{ - return (ViewProjectionMatrix[0][3] * co.x) + - (ViewProjectionMatrix[1][3] * co.y) + - (ViewProjectionMatrix[2][3] * co.z) + ViewProjectionMatrix[3][3]; -} - void main() { - float pix_size = mul_project_m4_v3_zfac(pos) * pixel_size; - if (screen_space == 1) { - gl_Position = ModelViewMatrix * vec4(pos, 1.0) + vec4(inst_pos * pix_size * draw_size, 0.0); + gl_Position = ModelViewMatrix * vec4(pos, 1.0) + vec4(inst_pos * draw_size, 0.0); gl_Position = ProjectionMatrix * gl_Position; } else { - int size = draw_size; + float size = draw_size; if (axis > -1) { size *= 2; } - gl_Position = ModelViewProjectionMatrix * vec4(pos + rotate(inst_pos * pix_size * size, rot), 1.0); + gl_Position = ModelViewProjectionMatrix * vec4(pos + rotate(inst_pos * size, rot), 1.0); } #ifdef USE_AXIS |