foisfo
#1
背景:taichi图形的demo提交里,有网友提交了等离子体模拟,我也试用ggui(GPU渲染)提高帧数,因为涉及到该网友的科研保密,我改过的代码只能部分展现,但在成功之后,我想进一步学习利用ggui来制作gif/video动画(文档参见https://docs.taichi-lang.org/docs/ggui),出现错误提示。
代码和错误提示如下:
#使用ggui
def main():
window = ti.ui.Window(‘two stream instability’, (800, 800),vsync=True)
canvas = window.get_canvas()
video_manager = ti.tools.VideoManager(“OutputDir”)
(后续代码,涉及科研保密省略)
…
…
while window.running:
…
…
canvas.circles(v_x_pos1, color=(0, 0, 1), radius=1 / 400)
canvas.circles(v_x_pos2, color=(1, 0, 0), radius=1 / 400)
img = window.get_image_buffer() -------这句出现错误提示,如截图所示
video_manager.write_frame(img)
window.show()
video_manager.make_video(gif=True, mp4=True)
请问,明明之前已经声明了ggui窗口和canvas,为什么会出现ggui窗口没有这个方法属性,是版本升级的原因吗?
另,我的taichi图形信息是这样的,[Taichi] version 1.1.2, llvm 10.0.0, commit f25cf4a2, win, python 3.9.12
[Taichi] Starting on arch=cuda
我该怎么处理?
foisfo
#2
在参考ggui文档后,我也试用过,先声明一个scene,然后再canvas.scene(scene),然后再
img = window.get_image_buffer()
video_manager.write_frame(img)
window.show()
还是出现同样的错误,我实在没办法了,请问该怎么处理??
zemora
#4
好像是 api 发生了变化,变成了 window.get_image_buffer_as_numpy()
了:
抱歉挖坟,最近我也用到了ggui相关组件,想请问一下为什么window.get_depth_buffer_as_numpy()
有对应拷贝到taichi.field
的版本window.get_depth_buffer(depth)
,而window.get_image_buffer_as_numpy()
却没有相对应的版本支持把window的画面拷贝到taichi.field
呢?未来会不会增加相应的功能呢?
谢谢!