实时光线追踪——Sult(Loonies,4k介绍)

4
3个回答

3

2
这可能是简单的反射立方体贴图。特别是在快速移动的场景中,与光线追踪相比,很难发现立方体贴图的不准确之处。然而,在介绍中进行实时光线追踪并不罕见:有一款名为“天堂7”的64k介绍。

http://www.pouet.net/prod.php?which=5

开发者关于技术细节的一篇文章:

http://www.exceed.hu/h7/subsample.htm


1
如前所述,甚至有软件渲染演示实现实时光线追踪,例如Heaven7Nature Suxx。我记得当时在200Mhz的Pentium MMX上以320*200的分辨率以相当快的速度运行它们。这些作品通过将屏幕细分为瓷砖,并对瓷砖角落的像素进行光线追踪来快速工作,仅当值差异很大时,才在4*4瓷砖或2*2瓷砖中进行更多计算。否则,在两者之间插值。

现在,使用着色器代码在GPU上优化光线追踪并以高清分辨率每像素光线追踪许多球体的帧速率要好得多。Sult只是使用另一种称为raymarching的技术,但本质上它是另一种光线追踪的方式(取决于您如何定义术语),具有其优缺点,例如非常适合小尺寸介绍和特定扭曲对象以及空间中对象的重复,这些对象不易或不快速地用传统的光线追踪实现。

根据您原始问题的措辞,我猜想您可能也在想,为什么这些人能够做到而我们在主流游戏中却没有看到呢?我们都听过游戏开发者说光线追踪是未来的事情,目前在游戏中还无法实现。那么,为什么一些Demo场景的业余爱好者可以实现,而行业老手却表示时间还没到呢?从技术上讲,我们已经可以在50个球体上进行光线追踪或重复同一球体的光线行进并使其扭曲和变形。但是,游戏使用的是多边形,数以百万计的多边形。对于单个光线与数百万个多边形进行检测是完全不同的故事。我知道,有像kd树空间细分这样的方法,只需在局部检查光线与少量多边形,但即使使用强大的GPU,这仍然是一个非常困难的问题。也许除了免费获得完美的阴影和反射效果(在多边形引擎中需要通过繁琐的方式实现),其他收益并不多,而且会失去很多。而Demoscene介绍大多是在具有抽象几何形状、隐式函数或体素数据的场景中进行光线追踪,这些都非常抽象,无法用于真实的3D几何场景和视频游戏角色。而且大多数场景都很小,在开放的沙盒游戏中很难使用。

因此,虽然这些介绍确实可以实现实时光线追踪,而且自2000年以来我们甚至已经在CPU上做到了这一点,但对于游戏开发来说,多边形引擎仍然更加高效和实用。因此,你会听到专业人士声称硬件还没有准备好应对(数百万多边形场景的)光线追踪,但又看到一些业余爱好者使用GPU在4k尺寸下实现了它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接