Show HN: A physically-based GPU ray tracer written in Julia
Hacker News
We are excited to announce RayMakie and Hikari, a physically-based GPU ray tracing pipeline integrated directly into Makie that allows any Makie scene to be rendered with photorealistic path tracing. By building this directly into Julia, we eliminate the gap between interactive research data exploration and high-quality rendering while maintaining cross-vendor GPU support.
然而,關於 Julia 語言本身的爭議依然存在。部分用戶質疑 Julia 是否已失去取代 Python 的勢頭,並批評其編譯延遲(Time to First Plot)與 1 索引(1-based indexing)的設計。對此,支持者與開發者反駁指出,Julia 的成長數據並未放緩,且其在處理複雜 GPU 核心編譯與高階抽象封裝上的優勢,是 Python 難以企及的。Danisch 認為,若要真正挑戰 Python 的地位,Julia 必須解決預先編譯(AOT)與二進位檔分發的問題,但對於開發如 Makie 這種大型視覺化框架而言,Julia 仍是目前維護成本最低且開發體驗最流暢的選擇。
在技術細節上,有留言者針對 PBRT 的材質描述限制提出疑問,例如如何處理水杯中含有冰塊這種多重介面(Nested Dielectrics)的複雜場景。開發者坦言目前 Julia 版本仍沿用 PBRT 的架構,存在類似的限制,但得益於 Julia 的多重分派(Multiple Dispatch)與模組化特性,未來要實作實驗性功能或修改積分器(Integrator)會比 C++ 版本更加容易。此外,開發者分享了利用 AI 工具(如 Claude)協助移植 C++ 程式碼的經驗,雖然初期產出的程式碼品質不佳,但透過手動重構與 Julia 特有的資料結構優化,最終成功兼顧了開發速度與執行效能。