光线相干如何用于提高光线追踪速度,同时仍然看起来真实?

时间:2011-11-09 15:34:24

标签: optimization raytracing raycasting

我正在考虑在我的软件逐像素实时raycaster中利用光线一致性。

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

  1. 对于相邻/相似的光线,光线行进的距离可能完全相同。在那个距离内,我节省了处理费用。 (我怎么知道距离是多少?)
  2. 由于有些光线在正确的时间没有发散,我最终会得到一个稍微严重不正确的图像。
  3. 鉴于我的光线是从一个点而不是一个平面投射的,我想我会根据所经过的距离需要某种分裂函数,这样所有光线的集合在向外移动时形成一棵树。我关注的是,当靠近观众时,更精细的细节将会丢失。

    我想我只是没有理解这是如何使用的。

1 个答案:

答案 0 :(得分:2)

如果操作正确,光线一致性不应影响最终图像。因为光线非常接近,所以在穿越加速结构(kd-tree,aabb tree等)时,它们都会采取类似的路径。你必须沿着任何光线可以击中的每个分支向下,但希望这不会增加分支的数量,并且它节省了内存访问。

另一个优点是你可以使用SIMD(例如SSE)加速你的一些测试,包括加速结构和三角形。