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
path: root/source
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2020-03-09 19:08:07 +0300
committerClément Foucault <foucault.clem@gmail.com>2020-03-09 19:09:32 +0300
commit3912a2a227c9674476795407003e019ff9abc34d (patch)
tree58227907f63b345c927362623c01a4fb060aabb9 /source
parent4d0d43ce8ec68746a76b2001dfec7db7ca633fe4 (diff)
Fix T74438: Overlay: Loose verts and particle not draw in some conditions
This was caused by a missing output variable for lineOutput. This triggered some undefined behavior.
Diffstat (limited to 'source')
-rw-r--r--source/blender/draw/engines/overlay/shaders/extra_loose_point_frag.glsl11
-rw-r--r--source/blender/draw/engines/overlay/shaders/particle_frag.glsl5
2 files changed, 13 insertions, 3 deletions
diff --git a/source/blender/draw/engines/overlay/shaders/extra_loose_point_frag.glsl b/source/blender/draw/engines/overlay/shaders/extra_loose_point_frag.glsl
index c27061f8f97..fd3518523ab 100644
--- a/source/blender/draw/engines/overlay/shaders/extra_loose_point_frag.glsl
+++ b/source/blender/draw/engines/overlay/shaders/extra_loose_point_frag.glsl
@@ -1,7 +1,8 @@
in vec4 finalColor;
-out vec4 fragColor;
+layout(location = 0) out vec4 fragColor;
+layout(location = 1) out vec4 lineOutput;
void main()
{
@@ -9,7 +10,13 @@ void main()
float dist = max(centered.x, centered.y);
float fac = dist * dist * 4.0;
- fragColor = mix(colorEditMeshMiddle, finalColor, 0.45 + fac * 0.65);
+ /* Non linear blend. */
+ vec4 col1 = sqrt(colorEditMeshMiddle);
+ vec4 col2 = sqrt(finalColor);
+ fragColor = mix(col1, col2, 0.45 + fac * 0.65);
+ fragColor *= fragColor;
+
+ lineOutput = vec4(0.0);
/* Make the effect more like a fresnel by offsetting
* the depth and creating mini-spheres.
diff --git a/source/blender/draw/engines/overlay/shaders/particle_frag.glsl b/source/blender/draw/engines/overlay/shaders/particle_frag.glsl
index 36928d0c776..a087aae2b2b 100644
--- a/source/blender/draw/engines/overlay/shaders/particle_frag.glsl
+++ b/source/blender/draw/engines/overlay/shaders/particle_frag.glsl
@@ -1,7 +1,8 @@
in vec4 finalColor;
-out vec4 fragColor;
+layout(location = 0) out vec4 fragColor;
+layout(location = 1) out vec4 lineOutput;
void main()
{
@@ -13,4 +14,6 @@ void main()
/* Nice sphere falloff. */
float intensity = sqrt(1.0 - dist * 2.0) * 0.5 + 0.5;
fragColor = finalColor * vec4(intensity, intensity, intensity, 1.0);
+
+ lineOutput = vec4(0.0);
}