仅出于学习目的,我正在研究光线追踪技术。我最近发现了 Global Illumation 及其变体,阅读了Kevin Beason的这部惊人的作品。我确实尝试过用另一种语言(Lua)移植 smallpt。
到目前为止,我的工作正常,但在我看来它渲染场景太慢了。到目前为止,我在互联网上进行了挖掘,并且我在很多涵盖该主题的技术论文中看到这是全局照明技术的主要问题,尤其是路径跟踪。
在我看来,有一些方法可以加快这一过程,例如间距填充曲线(例如希尔伯特曲线)。基本上,它们都将视口划分为桶(或图块),然后命令渲染器以特定顺序在每个桶上处理路径跟踪。从技术上讲,我没有研究如何实现希尔伯特曲线,但我想了解,实际上,这如何能让整个过程更快?
我的第一个假设是,考虑到每个桶 appart,渲染器是在特定像素上调用的,然后其他的是使用插值技巧的样本,但实际上,渲染器似乎是在桶上的每个单个像素上调用的。
因此,在我看来,渲染器将处理地图的所有像素,这与两个嵌套的 for 循环(每行、每列)的工作量相同。所以我知道我显然遗漏了一些东西,因此期待一些清晰的解释。
提前致谢。