2

我正在考虑在我的软件每像素实时光线投射器中利用光线相干性。

AFAICT,使用统一网格,如果我将光线相干性分配给 4x4 像素的补丁(目前我每个像素有一个光线投射),给定 16 条具有不同起点(和终点)点的平行光线,这如何解决连贯的场景?我预见的是:

  1. 存在一段距离,在该距离内,相邻/相似光线的光线行进将完全相同。在那个距离内,我节省了处理费用。(我怎么知道那个距离是多少?)
  2. 由于某些光线没有在正确的时间发散,我最终会得到一个稍微不正确的图像。

鉴于我的光线是从一个点而不是平面投射的,我想我需要根据经过的距离进行某种拆分功能,这样所有光线的集合在向外移动时形成一棵树。我在这里担心的是,当靠近观看者时,会丢失更精细的细节。

我想我只是不明白这是如何使用的。

4

1 回答 1

2

如果操作正确,光线相干性不应影响最终图像。因为光线非常靠近,所以它们在穿过加速结构(kd-tree、aabb 树等)时都会采用相似的路径,这是一个很好的变化。您必须沿着任何光线可能击中的每个分支向下走,但希望这不会过多地增加分支的数量,并且可以节省内存访问。

另一个优点是您可以使用 SIMD(例如 SSE)来加速您的一些测试,无论是在加速结构中还是针对三角形。

于 2011-11-09T17:31:32.573 回答