mirror of
https://github.com/3b1b/manim.git
synced 2025-09-01 00:48:45 +00:00
fix 3D bad overlapping
This commit is contained in:
parent
1139b545f9
commit
e5cf0558d8
2 changed files with 7 additions and 11 deletions
|
@ -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:
|
||||||
|
|
|
@ -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()
|
||||||
|
|
Loading…
Add table
Reference in a new issue