Introduce flat_stroke uniform

This commit is contained in:
Grant Sanderson 2021-01-08 22:26:47 -08:00
parent 8c7e93f829
commit 9a1e103a7f
2 changed files with 14 additions and 0 deletions

View file

@ -16,6 +16,7 @@ class SurfaceMesh(VGroup):
"stroke_width": 1,
"normal_nudge": 1e-2,
"depth_test": True,
"flat_stroke": False,
}
def __init__(self, uv_surface, **kwargs):

View file

@ -62,6 +62,7 @@ class VMobject(Mobject):
# "fill_frag_shader_file": "quadratic_bezier_fill_frag.glsl",
# Could also be Bevel, Miter, Round
"joint_type": "auto",
"flat_stroke": True,
"render_primitive": moderngl.TRIANGLES,
"triangulation_locked": False,
"fill_dtype": [
@ -106,6 +107,7 @@ class VMobject(Mobject):
background=self.draw_stroke_behind_fill,
)
self.set_gloss(self.gloss)
self.set_flat_stroke(self.flat_stroke)
return self
def generate_rgba_array(self, color, opacity):
@ -336,6 +338,16 @@ class VMobject(Mobject):
return self.get_fill_opacity()
return self.get_stroke_opacity()
def set_flat_stroke(self, flat_stroke=True, family=True):
self.flat_stroke = flat_stroke
if family:
for submob in self.submobjects:
submob.set_flat_stroke(flat_stroke, family)
return self
def get_flat_stroke(self):
return self.flat_stroke
# TODO, this currently does nothing
def color_using_background_image(self, background_image_file):
self.background_image_file = background_image_file
@ -970,6 +982,7 @@ class VMobject(Mobject):
}
result = super().get_shader_uniforms()
result["joint_type"] = j_map[self.joint_type]
result["flat_stroke"] = float(self.flat_stroke)
return result
def get_stroke_shader_data(self):