找回密码
 立即注册

什么是实时光线追踪技术?它可能出现在当前的次世代主机上吗?

[复制链接]
发表于 2020-12-31 19:37 | 显示全部楼层
我假设你问的其实是ray tracing是什么,因为我想如果知道ray tracing,那么实时ray tracing就不是问题了。

ray tracing是一种渲染(成像)技术,基本原理是从相机向空间做射线,根据射线与空间物体的交错点的几何属性(位置)、物理属性(材质),和空间中光源的性质,最后计算出该点的颜色值。是目前很多数字电影后面的渲染引擎(如pixar的Renderman)用的技术(现在的这些引擎,会杂很多的技术在里面,如photo mapping)。

这种技术能做出相片级的渲染,但是每一帧画面耗时非常的多。为了得到一个像素的值,可能会在场景里产生大量的射线,譬如,每个像素可能衍生出了1000、甚至是10000根射线。在ray tracing中,大量的碰撞就是ray和物体的碰撞检测。

但是,这并不是ray tracing不能实时的理由。国外有文章提到过(早期看的,找不到来源了),软件光栅化的方法写出的3D渲染器和用ray tracing方法渲染器同时来计算出一幅画面的话,可能差距不是很大。现在的3D引擎是实时的,是因为GPU(光栅化技术)渲染的能力能实时吞吐。对于ray tracing来说,没有相对应的专门的硬件(肯定有本身算法导致硬件不是那么好弄),才使它不能“实时”。

当然,现在有用GPU来进行ray tracing的,如英伟达(Nvidia的):

NVIDIA OptiX Ray Tracing Engine

和Power VR(手机里GPU的一家供应商)的

PowerVR OpenRL Ray Tracing

但是,它们这些GPU还应该只是利用GPU来帮助ray tracing。

所以,第二个问题答案也就是,有了相应的xPU就可以实时。未来我想有是肯定的。

另外:
推特我没有看,但是GPU界的几个老大现在就到这样,微软估计肯定不会比他们还牛逼,但是世事难料,也许半路杀出个黑马来,但我不信是微软了, :)

后补:

正好看到一篇中文文章,翻译的fxguide的,这篇文章涵盖大量的信息,供后来者参考。

渲染艺术之渲染器与渲染流程
发表于 2020-12-31 19:45 | 显示全部楼层
实时光影一直都是一个梦想,但是它太过于消耗资源,除非算法上有很大的突破,否则现阶段的游戏主机还是吃不住
发表于 2020-12-31 19:52 | 显示全部楼层
次时代主机的显卡只相当于中端台式机显卡(记得某次时代主机直接用AMD A10 6800K)。所以不可能大规模用实时光线追踪吧。
我猜你可能是把屏幕空间的一些技术当成那个了。现在有一些屏幕空间的光线效果,看起来很真。但至少就我所知,屏幕空间的光线追踪还是处于比较初始的阶段,而且有一些很显著的技术障碍,因为没法解决信息缺失的毛病。
发表于 2020-12-31 20:00 | 显示全部楼层
具体ray tracing的知识大家都有回答了,简单谈谈个人感受。

一句话概括,ray tracing更符合实际物理,所以更真实。

当时做的最simple的raytracing的project,用的phong illumination的递归算法去渲染一个球,随着光线层次的增加,明显感觉到机器的计算能力不够用。更别提实时渲染了。

现在在做powervr的公司上班(本人在做cpu,和computer graphics完全没关系- -)前两天ceo在公司会上说realtime raytracing貌似和微软合作取得了突破性进展,不过本人高度怀疑这个“突破性”。- -。因为真的可能需要推倒现有gpu架构完全重来。

随着ASIC的发展,realtime ray tracing一定是可以实现的。那种真实的场景体验是能够碾压现在任何游戏的。到时候真的是virtual reality,刀剑神域神马的简直酸爽。
发表于 2020-12-31 20:10 | 显示全部楼层
我见过的目前最快的实时光线跟踪渲染器是FurryBall,这个软件有maya和max的插件,也有独立的软件,依靠显卡GPU,并且支持毛发,流体,次表面散射实时渲染,效果很惊人!而且对于反射,折射,环境光遮,次表面散射等都可以单独在光线追踪算法和光栅化二者间直接切换。不过目前AAAStudio对FurryBall的更新比较频繁,还不是很稳定,而且奇贵无比还没破解……(附:FurryBall官网:FurryBall - Real-time GPU render和介绍视频:FurryBall 4.5。FurryBall 4 - New Features  .mp4 视频

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2020-12-31 20:12 | 显示全部楼层
光线追踪就是根据一个点,推算使这点发光的多束光路,从而渲染像素点。光线追逐是一个非常消耗资源的项目,如1L所说,皮克斯在Cars中少量引进了该技术,但是据说该部分消耗的渲染时间是恐怖级别的(因为皮克斯的渲染农场是针对传统渲染程序设计的)。即便是NVIDIA,在4系卡上也只是借用开普勒核心首次讲“入门”级别的光线追踪引进到家用卡上、但是根据专业机构的评测,4系卡只能做到10fps以内的少量低分辨率的渲染,明显不够用,即便是升级了的6系,恐怕也不能达到基本的30fps吧。

家用主机的话,硬件性能统统在PC之下,也就是说…下代你都见不到的!
发表于 2020-12-31 20:20 | 显示全部楼层
我这个人比较蛋疼,恰好知道一些偏门的知识…
几位高人真的觉得现在不可能嘛?真的嘛?真的嘛?
话,不要说的太满…(我真心觉得应该开一门电脑游戏史的课程

如果只是从【满足游戏效果】的角度来说,这个技术已经应用于至少一款游戏之上(这句话并不严谨,读到下面就明白了),并且从游戏配置来说,目前家用游戏机的性能理论上是可以运行的
更重要的——
那是2004年,整整11年前。
下面有请:

Quake 3 Aerna Demo: Ray traced

2004年,萨尔布吕肯大学(Saarland University)的Daniel Pohl和他的同学,利用OpenRT-API,在Quake 3 Aerna Demo的基础上完成了游戏开发,实现了实时光线追踪的游戏引擎(原文realtime 3d raytrace engine),并且实现了移动、射击、跳跃、碰撞检测等基础功能。
看图咯





(以上图片来自Quake 3: Ray Traced,相关资料也可在此阅读)

当然,最初,正像上面几位专家所认为的那样,效率太低根本没法玩。原作者推断按照最初的设计,在36 GHz(没写错,是36,不是3.6) 的CPU上能实现20fps@512x512 w/ 4xFSAA。他最初在实验中使用的是分布式渲染。

---------------------------分割线------------------------

有人要说了,这没法玩吧?

我还没说完呢。
读下去。
巨头Intel伸出了橄榄枝。他加入Intel成为了全职的工程师。有了Intel的强力支持,他又做了下面的事情。他继续将手伸向了id公司的其他游戏(quake3的引擎想必给他留下了深刻印象),2006年他对Quake 4下手了(我还没太整明白这到底是入职Intel之前就启动的项目还是之后)。


水面的起伏倒影是光线追踪的结果(这是Q3的model没错,但作者确实说了这是Q4: Raytrace)


虽然审美上不怎么样,但这个镜面反射是实打实的光线追踪。

2006年在Intel的 'Core 2 Extreme QX6700' 上, 256x256 分辨率的Quake 4 地图 'Over the Edge (Q4DM7)',实现了16.9fps
下面是单、双、四核的表现



看到这里是不是有人又要骂了,256x256的分辨率怎么玩啊!
慢着,还没完啊…
急啥!

-----------------------分割线-----------------------

正如作者在Q3时代估计的那样,(他设计的引擎的)光线追踪的实现直接有赖于CPU的强力程度。所以咧?等强力的CPU出现!

这哥们在2008年对Quake Wars下手。
同年实现了四颗Tigerton 四核CPU(4x4=16核心,超频)上15 - 20 fps @1280x720的帧率
同年在Caneland平台上使用四颗6核CPU实现了25~30fps@1280x720的帧率。
2009年在 (500+ 怪物, 3D 水面)双CPU Nehalem平台 (2x4=8核心,频率3.2 GHz a,实现了约15 - 20 fps @1280x720.   

这是利用bump map的水面:

而这是利用光线追踪的水面

(源,Intel官网:Quake Wars* Gets Ray Traced)

还有,2010年他开始在Wolfenstein中实现Raytrace





到了2011年。
Intel发话了

We are demonstrating this on the Lenovo S10-3t (10 inch) and on the  Viliv S5 UMPC (5 inch). Due to the lower screen resolution a cloud setup  with one machine with one Knights Ferry per client is enough to feed  the tablet at a frame rate of 20-30 fps.(粗体是我加的)
他们使用如下的一台服务器,实现了针对较低分辨率(laptop的分辨率超过1024x768)设备的20-30fps的流媒体推送:
    Motherboard: Intel DX58SO (code name Smackover) CPU: Intel Core i7-980X processor (6 cores, 2 threads per core, 3.33 GHz) Intel code name Knights Ferry PCIe card (32 cores, 4 threads per core) Gigabit Ethernet
(源:Tracing Rays Through the Cloud)

这里有两点要强调的,即intel也认识到未来云计算是实现高性能计算的保障,所以他们这个研究的主要方向是云计算与流媒体;其次,这次虽然是流媒体推送,但参与运算的只是【一台】服务器,而不是服务器集群。

所以说,我们可以认为这一台机器实现了较低(但可接受)分辨率下的游戏,在2011年。
那么,现在的2015年,又会如何呢?
问题是小哥2013年就停更了…不知道后来如何~

——啊,当然,特效都关了。可能有人鸣不平,说特效关了玩个毛。但有没有想过,为什么游戏敢duangduang的加特技?因为这些特效没有光线追踪那么吃资源啊,这本身是一种偷懒的近似啊,是一种掩盖啊。全加上了,怎么看raytrace的效果(而且估计还是有点吃力)

路漫漫其修远兮,但世界上已经有很多人走在了前面。而且确实弄出来东西了。

啊,最后来认识下这位小哥


----------------------分割线--------------------

话说Intel在2007年搞的这又是个啥?
是个静态场景实现了90fps@1280x720?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2020-12-31 20:23 | 显示全部楼层
关于实时光线追踪原理各位大咖已经回答得很详细了,这里不再赘述。
大家似乎都同意“光线追踪就是未来”。光线追踪会不会总是未来的梦想,而永远不会在当下实现呢?在GDC 2018上,NVIDIA推出了RTX,其基于NVIDIA Volta GPU及未来GPU的超高性能,将赋力NVIDIA所支持的所有光线追踪API。同时,微软也宣布将光线追踪纳入其行业标准DirectX API中。
这两种技术构成了强大的组合,我们可以自信地回答上述问题:未来已来!这种说法毫不夸张:现在领先的游戏工作室已经开始采用RTX,通过DirectX开发即将推出的游戏。光线追踪在游戏中的应用不再是梦想。它此时此刻正在发生,且将迎来一个实时图形的新时代。
了解技术详情,大家可参考如何评价 NVIDIA RTX Technology?
以及NVIDIA英伟达:基于RTX的NVIDIA OptiX光线追踪
或者NVIDIA GameWorks光线追踪页面。
发表于 2020-12-31 20:33 | 显示全部楼层
PS4上的杀戮地带4号称用了,你可以去看看,不过我看那个只是一定程度应用这个技术,和影视级别的差距还是很大,说到底,噱头而已
发表于 2020-12-31 20:40 | 显示全部楼层
不可能。

最基本的, @lgthetyro 图中的scene object 都无法做到所有object都是有3D模型支持的非纯贴图。 很简单的例子, 目前无法做到远景如山脉, 天空中的云以多边形, 或粒子系统去支撑, 而是为了frame rate用一大整张纸片贴图糊弄上去(远处的山, 星空, 云全是纸片)

场景中连全3D模型都做不到, 如何做ray tracing? 对着一张张的平面的纸片贴图去trace吗?
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-20 08:34 , Processed in 0.095779 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表