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:
authorPhilipp Oeser <info@graphics-engineer.com>2021-05-21 14:42:13 +0300
committerJeroen Bakker <jeroen@blender.org>2021-07-26 09:31:23 +0300
commitb529a84ec3864f83a00dd75e884598786134e563 (patch)
tree10fdd1ba88411429a59dbe79b2cb5ffd3f87f10a /release
parent2d32bf14e47e830dcb38d98f7d29d803fc31a6c9 (diff)
Fix T88015: Round end caps on Freestyle lines not shaped as documented
This might be an artistic choice, but round end caps are supposed to be a "half circle centered at the end point of the line" as documented here: https://docs.blender.org/manual/en/dev/render/freestyle/ parameter_editor/line_style/strokes.html#caps They are a shashed half circle instead. This patch makes this pure half circles [and also fixes the case where thickness of beginning was used for both beginning and end of the stroke] Maniphest Tasks: T88015 Differential Revision: https://developer.blender.org/D11340
Diffstat (limited to 'release')
-rw-r--r--release/scripts/freestyle/modules/freestyle/shaders.py6
1 files changed, 2 insertions, 4 deletions
diff --git a/release/scripts/freestyle/modules/freestyle/shaders.py b/release/scripts/freestyle/modules/freestyle/shaders.py
index 28b8aa9b23e..95e1c873657 100644
--- a/release/scripts/freestyle/modules/freestyle/shaders.py
+++ b/release/scripts/freestyle/modules/freestyle/shaders.py
@@ -1153,11 +1153,9 @@ class RoundCapShader(StrokeShader):
return
# calculate the number of additional vertices to form caps
thickness_beg = sum(stroke[0].attribute.thickness)
- caplen_beg = thickness_beg / 2.0
nverts_beg = max(5, int(thickness_beg))
thickness_end = sum(stroke[-1].attribute.thickness)
- caplen_end = (thickness_end) / 2.0
nverts_end = max(5, int(thickness_end))
# adjust the total number of stroke vertices
@@ -1169,7 +1167,7 @@ class RoundCapShader(StrokeShader):
# reshape the cap at the beginning of the stroke
q, attr = buffer[1]
p, attr = buffer[0]
- direction = (p - q).normalized() * caplen_beg
+ direction = (p - q).normalized() * thickness_beg
n = 1.0 / nverts_beg
R, L = attr.thickness
for t, svert in zip(range(nverts_beg, 0, -1), stroke):
@@ -1180,7 +1178,7 @@ class RoundCapShader(StrokeShader):
# reshape the cap at the end of the stroke
q, attr = buffer[-2]
p, attr = buffer[-1]
- direction = (p - q).normalized() * caplen_beg
+ direction = (p - q).normalized() * thickness_end
n = 1.0 / nverts_end
R, L = attr.thickness
for t, svert in zip(range(nverts_end, 0, -1), reversed(stroke)):