在unity中使用taichi进行软体仿真

我想在unity中使用taichi,也尝试了Taichi-UnityExample-main,但是目前taichi_unity的实例好像不完善,操作比较复杂,我有三个疑问想请教一下。

首先,我理解的是先将python文件中的cgraph与kernel文件编译成tcm文件,然后在unity下通过c#脚本调用,是否理解正确?如果我想在unity中使用自己写的taichi python代码,也是这个流程嘛?
其次,在运行unity implicitFem时,经过一段时间后,整个程序便会帧率骤降,有50帧降到5帧,在profile中显示EditorLoop占用了大量的时间:


这是什么问题造成的呢?
最后,我想了解一下taichi的AOT-demo,是必须先编译好taichi之后才能使用嘛?

3 Likes

我刚自己编译了一下AOT Demo, Unity我还没试,那我就回答最后一个问题吧。

目前AOT编译的时候是需要连接 libtaichi_c_api.so 的,这个动态链接库可以自己编译Taichi,也可以直接从Taichi PyPI Nightly上下载,具体可以参考教程:taichi-aot-demo/tutorial.md at master · taichi-dev/taichi-aot-demo · GitHub

PS:在编译Taichi的时候需要关闭LLVM(目前有符号冲突问题),TAICHI_CMAKE_ARGS="-DTI_WITH_LLVM=OFF" python3 setup.py develop --user
然后在编译AOT demo的时候:TAICHI_C_API_INSTALL_DIR=/c-api dir/ cmake .. -DTI_WITH_CUDA=OFF -DTI_WITH_CPU=OFF

@tianlajiangjun 话说现在Unity Example repo已经修复了一波,再试一下?

好的,谢谢老师。我看文档说只有Linux的可以使用taichi nightly里的libtaichi_c_api.so,Windows需要编译taichi,是这样子的嘛?

感谢提醒,因为疫情原因,我只能使用笔记本电脑跑,目前低帧率跑了一会没有出现相同问题。之后可能得用台式机试试