Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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.glsl20
1 files changed, 16 insertions, 4 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 7b328c73de3..55b183b6933 100644
--- a/source/blender/draw/modes/shaders/object_particle_prim_vert.glsl
+++ b/source/blender/draw/modes/shaders/object_particle_prim_vert.glsl
@@ -6,6 +6,8 @@ uniform mat4 ProjectionMatrix;
uniform int screen_space;
uniform float pixel_size;
uniform int draw_size;
+uniform vec3 color;
+uniform sampler1D ramp;
in vec3 pos;
in vec4 rot;
@@ -13,8 +15,7 @@ in float val;
in vec3 inst_pos;
in int axis;
-flat out int finalAxis;
-flat out float finalVal;
+flat out vec4 finalColor;
vec3 rotate(vec3 vec, vec4 quat)
{
@@ -47,6 +48,17 @@ void main()
gl_Position = ModelViewProjectionMatrix * vec4(pos + rotate(inst_pos * pix_size * size, rot), 1.0);
}
- finalAxis = axis;
- finalVal = val;
+#ifdef USE_AXIS
+ finalColor.rgb = vec3(0.0);
+ finalColor[axis] = 1.0;
+#else
+ if (val < 0.0) {
+ finalColor.rgb = color;
+ }
+ else {
+ finalColor.rgb = texture(ramp, val).rgb;
+ }
+#endif
+
+ finalColor.a = 1.0;
}