fix 3D bad overlapping

This commit is contained in:
MathItYT 2024-10-23 20:31:52 -03:00
parent 1139b545f9
commit e5cf0558d8
2 changed files with 7 additions and 11 deletions

View file

@ -14,6 +14,7 @@ from manimlib.constants import FRAME_WIDTH
from manimlib.mobject.mobject import Mobject
from manimlib.mobject.mobject import Point
from manimlib.utils.color import color_to_rgba
from manimlib.utils.family_ops import extract_mobject_family_members
from typing import TYPE_CHECKING
@ -228,7 +229,7 @@ class Camera(object):
self.clear()
self.refresh_uniforms()
self.fbo.use()
for mobject in mobjects:
for mobject in extract_mobject_family_members(mobjects, True):
mobject.render(self.ctx, self.uniforms)
if self.window:

View file

@ -2039,16 +2039,11 @@ class Mobject(object):
return self.shader_wrapper
def get_shader_wrapper_list(self, ctx: Context) -> list[ShaderWrapper]:
family = self.family_members_with_points()
batches = batch_by_property(family, lambda sm: sm.get_shader_wrapper(ctx).get_id())
result = []
for submobs, sid in batches:
shader_wrapper = submobs[0].shader_wrapper
data_list = [sm.get_shader_data() for sm in submobs]
shader_wrapper.read_in(data_list)
result.append(shader_wrapper)
return result
if len(self.get_points()) == 0:
return []
shader_wrapper = self.get_shader_wrapper(ctx)
shader_wrapper.read_in([self.get_shader_data()])
return [shader_wrapper]
def get_shader_data(self) -> np.ndarray:
indices = self.get_shader_vert_indices()