请问可以在UnrealEngine5里使用太极么?

想在UE5里写实时流体模拟

Hi @Rechard86 , 这是一个很好的问题,目前如果想要用UE5调用Taichi,可以参考如何在Unity里面使用Taichi的方法:Issues · taichi-dev/taichi · GitHub

感谢回复,研究一下。

您好,我想请教一下,如果想在UE5中调用TaiChi,基本思路是否是先将Taichi 利用TaiCHi aot feature将taichi代码导出为比如说cuda静态库,之后再在UE5中引用taichi_c_api和cuda来运行这些编译好的静态库。另外我想请问一下taichi团队有验证过在UE5中可以正常调用taichi吗?

DACIAN 你好,
Taichi AOT 是一套C接口,附带一个libtaichi_c_api.so的动态库。因为暂时还没有公开发布,你可以通过打开TI_WITH_C_API来编译出这个动态库和头文件。

你可以在GitHub - taichi-dev/taichi-aot-demo: A demo illustrating how to use Taichi as an AOT shader compiler 里面找到一些例子,包括:

  1. 如何AOT编译Python写好的Taichi Kernel
  2. 如何在我们自己实现的渲染器里加载AOT Kernel并执行
  3. 如何把计算结果导出,并传到渲染器里面进行渲染

虽然暂时没有尝试过UE5,但是Unity上面可以成功接入,你可以参考:GitHub - taichi-dev/Taichi-UnityExample

可以的,之前有人做过:
https://twitter.com/iam_chp/status/1547576469559201795?s=20&t=I4le_i1qp6VeIPR4wU7qJw
你可以按他的方法试试

您好,感谢您的回复,我目前已经在UE5中成功调用了TAICHI的C接口,现在有一些疑问想要咨询您:
1、如果使用vulkan作为backend的话,ndarray分配的内存是在cpu端还是在gpu端呢?
2、我目前有一个需求是taichi计算出的输出的数据直接作为input传到UE5中的compute shader中继续使用,请问有什么建议的方法直接在GPU端完成这个工作吗?

  1. 如果是Vulkan后端的话,ndarray是分配到GPU显存上的。
  2. 你可以直接拿到ndarray的GPU显存地址,然后在computer shader中使用。如何拿到ndarray的地址可以参考:taichi/sparse_solver.cpp at 91b6735ecba71230d9be431d8b7a8c8c6004fd50 · taichi-dev/taichi · GitHub