mirror of
https://github.com/ManimCommunity/manim.git
synced 2026-06-22 10:01:47 +00:00
Working render to numpy array
This commit is contained in:
parent
5a7da79631
commit
f73b35d86c
3 changed files with 17 additions and 25 deletions
|
|
@ -19,9 +19,7 @@ from manim.renderer.opengl_renderer import OpenGLRenderer
|
|||
|
||||
if __name__ == "__main__":
|
||||
with tempconfig({"renderer": "opengl"}):
|
||||
win = Window(width=1920, height=1080)
|
||||
renderer = OpenGLRenderer(1920, 1080)
|
||||
renderer.use_window_fbo()
|
||||
# vm = OpenGLVMobject([col.RED, col.GREEN])
|
||||
vm = Circle(
|
||||
radius=1, stroke_color=col.YELLOW, fill_opacity=1, fill_color=col.RED
|
||||
|
|
@ -36,16 +34,13 @@ if __name__ == "__main__":
|
|||
camera = OpenGLCameraFrame()
|
||||
renderer.init_camera(camera)
|
||||
|
||||
# image = renderer.render(camera, [vm, vm2])
|
||||
# print(image.shape)
|
||||
# Image.fromarray(image,"RGBA").show()
|
||||
|
||||
label = pyglet.text.Label('Hello, world',
|
||||
font_name='Times New Roman',
|
||||
font_size=36,
|
||||
x=0, y=0,
|
||||
anchor_x='center', anchor_y='center')
|
||||
|
||||
renderer.render(camera, [vm, vm2])
|
||||
image = renderer.get_pixels()
|
||||
print(image.shape)
|
||||
Image.fromarray(image,'RGBA').show()
|
||||
exit(0)
|
||||
win = Window(width=1920, height=1080,vsync=True, config= Config(double_buffer=True,samples=4))
|
||||
renderer.use_window_fbo()
|
||||
@win.event
|
||||
def on_close():
|
||||
win.close()
|
||||
|
|
@ -54,7 +49,7 @@ if __name__ == "__main__":
|
|||
@win.event
|
||||
def on_mouse_motion(x, y, dx, dy):
|
||||
vm.move_to((14.2222*(x/1920-0.5),8*(y/1080-0.5),0))
|
||||
vm.set_color(col.RED.interpolate(col.GREEN,x/1920))
|
||||
# vm.set_color(col.RED.interpolate(col.GREEN,x/1920))
|
||||
# print(x,y)
|
||||
|
||||
@win.event
|
||||
|
|
|
|||
|
|
@ -362,12 +362,12 @@ class OpenGLRenderer(Renderer):
|
|||
vao.release()
|
||||
|
||||
self.ctx.enable(gl.BLEND)
|
||||
# self.ctx.blend_func = (
|
||||
# gl.SRC_ALPHA,
|
||||
# gl.ONE_MINUS_SRC_ALPHA,
|
||||
# gl.ONE,
|
||||
# gl.ONE,
|
||||
# )
|
||||
self.ctx.blend_func = (
|
||||
gl.SRC_ALPHA,
|
||||
gl.ONE_MINUS_SRC_ALPHA,
|
||||
gl.ONE,
|
||||
gl.ONE,
|
||||
)
|
||||
# self.ctx.enable(gl.DEPTH_TEST)
|
||||
# TODO: Handle Submobjects
|
||||
render_shader(
|
||||
|
|
@ -378,10 +378,8 @@ class OpenGLRenderer(Renderer):
|
|||
)
|
||||
|
||||
def get_pixels(self) -> ImageType:
|
||||
raw = self.output_fbo.read(components=4, dtype="f4") # RGBA, floats
|
||||
buf = np.frombuffer(raw, dtype="f4").reshape(
|
||||
(self.pixel_height, self.pixel_width, 4)
|
||||
)
|
||||
raw = self.output_fbo.read(components=4, dtype='f1',clamp=True) # RGBA, floats
|
||||
buf = np.frombuffer(raw, dtype=np.uint8).reshape((1080,1920,-1))
|
||||
return buf
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ class Renderer(ABC):
|
|||
(ImageMobject, self.render_image),
|
||||
]
|
||||
|
||||
def render(self, camera, renderables: list[OpenGLVMobject]) -> ImageType: # Image
|
||||
def render(self, camera, renderables: list[OpenGLVMobject])->None : # Image
|
||||
self.pre_render(camera)
|
||||
for mob in renderables:
|
||||
for type, render_func in self.capabilities:
|
||||
|
|
@ -36,7 +36,6 @@ class Renderer(ABC):
|
|||
f"The type{type(mob)} is not supported in Renderer: {self.__class__}"
|
||||
)
|
||||
self.post_render()
|
||||
return self.get_pixels()
|
||||
|
||||
def pre_render(self, camera):
|
||||
raise NotImplementedError
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue