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

View file

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