关于ggui的建议以及taichi源码如何编译求助

ggui很好用

ggui的建议

  • 缺少了截图鸭,没有截图功能的gui是不完整的,认真脸。
  • 文档中关于vulkan的安装需要强调一下,或者有一些warning打印,对新手友好一些
  • ggui中mesh,如果不用每帧上传数据,给个mesh的id,能配置model矩阵,或者RST矩阵等,不用每帧更新,性能更高,也会对刚体模拟系统更友好,最近也在筹划着把PBD用taichi实现一遍

taichi如何编译

  • 起因:最近想抽时间帮ggui做一个raytracing的backend,因为我自己本身使用optix,dxr,vulkan-raytrace三种api多年了,感觉自己应该有这个能力写
  • 关键问题:taichi源码如何编译,非常抱歉,因为我对编译原理一窍不通,所以LLVM怎么配置我捣鼓了半天都没成功,我查了开发者文档也没写明怎么配置LLVM,希望有大手子指下一下,拜托了
5 Likes

关于Taichi的编译,请问参考的是这个开发者文档吗?

里面有 llvm-10.0.0 的配置方法,一般我自己编译Taichi的话都是按照上面来的,我重新贴在这里:

wget https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.0/llvm-10.0.0.src.tar.xz
tar xvJf llvm-10.0.0.src.tar.xz
cd llvm-10.0.0.src
mkdir build
cd build
cmake .. -DLLVM_ENABLE_RTTI:BOOL=ON -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="X86;NVPTX" -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_TERMINFO=OFF
# If you are building on Apple M1, use -DLLVM_TARGETS_TO_BUILD="AArch64".
# If you are building on NVIDIA Jetson TX2, use -DLLVM_TARGETS_TO_BUILD="ARM;NVPTX"
# If you are building for a PyPI release, add -DLLVM_ENABLE_Z3_SOLVER=OFF to reduce the library dependency.
make -j 8
sudo make install
# Check your LLVM installation
llvm-config --version  # You should get 10.0.0
1 Like

关于文档中强调 Vulkan env 的安装:


昨天文档已经更新过一次啦,把支持的系统/backend以及vulkan env的安装要求都列在了开头。 :smiley:
1 Like

mark 一下,国庆时候搞起来,哈哈,太感谢了 :wink:

我上周末看的没有,哈哈,不错不错,很快!

哈哈客气啦~ 欢迎加入GGUI的开发! :rofl:

关于ray tracing backend我最近也有想法,也许不一定是backend,可以是一个包含bvh,octree,rasterizer等常用数据结构和功能的zero-overhead libary。感觉可以交流交流一起贡献 :wink:

1 Like
  • 可以可以,我打算先自己在本地fork一个实现一些简单功能的raytrace,然后再考虑材质,motion blur等一些功能,估计以后ggui肯定有这些东西。
  • 关于快速实现
    现在的ggui用的vulkan做光栅化渲染,我是想用optix的api直接做光追,兼容好ggui中现有vulkan向上提供的api。因为optix中,已经实现了非常厉害的bvh,而且直接可以调用显卡rtcore求交,快而且实现简单,估计代码量不会超2000行。应该是我本人接下去的核心计划,能不能合并到master再说,自己搞起来先
  • 关于算法细节
    你的想法主要是自己实现这些数据结构,难度相对比较大,实现成功的话到时候我follow你一下,我好学习学习,哈哈哈。
    最近在看ploc的bvh论文,感觉并行度高,实现简单,自己实现应该有搞头,作者还有源码,亲测能跑通! https://github.com/madmann91/bvhhttps://github.com/meistdan/ploc
4 Likes

在win10上编译成功了,撒花撒花

  • 大致步骤就是下载clang,下载llvm,都是在太极官方doc里的网址
  • 然后配置环境变量,把上面两个包解压以后,把他们的bin加到PATH里面
  • 增加一个环境变量LLVM_DIR把解压的LLVM路径填进去

遇到的坑

  • 保证cmd中python可以直接运行,我这里是直接把anaconda的bin加到环境变量PATH里了
  • cmake构建工程时,我遇到了numpy报错,这里只要卸载下numpy然后重装就好了,我用的numpy估计比较老,taichi的很新

后续计划

  • 找找看python中的那些taichi语义,如何用桥接到C++中,比如:gui = ti.ui.Window(‘Cloth’, (imgSize, imgSize), vsync=True)中,比如vsync关键字,如果我想加个新的关键字,例如backend之类,应该加哪些代码。 :face_with_monocle:
2 Likes