Python(或不是...)GPU/并行光线追踪框架?

Python (or not...) framework for GPU / parallel ray tracing?

我正在为我的下一个项目做技术研究,但还没有找到合适的东西,所以我正在试一试。

我要解决的问题如下:

有没有一个框架可以让我做这样的事情?我查看了游戏引擎,但大多不进行光线追踪。 我更愿意找到一个 python 框架来执行此操作,但也会选择其他语言 (C# / C++)。

解决此类问题的最佳方法是什么?

您寻找了哪些游戏引擎?因为Unreal和Unity这两个市场上最流行的引擎确实已经有了支持。在 Python 中找到一个好的库或框架可能更难,因为 Python 没有围绕游戏引擎的良好生态系统。

https://docs.unrealengine.com/en-US/Engine/Rendering/RayTracing/index.html

https://docs.unrealengine.com/en-US/Engine/Rendering/RayTracing/RayTracingSettings/index.html

https://developer.nvidia.com/blog/introducing-ray-tracing-in-unreal-engine-4/

https://unity.com/ray-tracing

https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@7.1/manual/Ray-Tracing-Getting-Started.html

更新:

Python 中有一个名为 PyGame 的引擎,它是开源的并且可能有一些支持,但我不确定它是否稳定。

https://www.pygame.org/project/4743/6980

经过一些研究,我还在 Python 中找到了一个可以在没有游戏引擎的情况下工作的包,你可以试一试

https://pypi.org/project/ntracer/

回答我自己的问题。经过大量研究后,我们最终选择了 Trimesh ( https://trimsh.org/trimesh.html )。

它包括

  • 与流行几何格式(gltf、obj、dae)的互操作性
  • 使用 pyembree(基于 Intel 的 embree 项目)支持快速光线追踪
  • 支持批量查询(发送 X 射线查询,得到 X 射线回复)以避免 python<->C 通信瓶颈。