为什么Raytracing不会简化AAA实时渲染

2020-12-28 17:29:27

"我们现在要获得的最大技巧是游戏中所有表面上的照明和阴影的最终统一-游戏不得不做这些修改和技巧了很多年,我们在角色和环境上做了不同的事情,移动的灯光与静态的灯光具有不同的功能,现在我们能够以相同的方式对所有事物进行处理..."

不太...约翰·卡马克。 2001年,在东京的MacWorld上,首次展示了《毁灭战士3》。尽管是在NVidia硬件上,但功能却比今天的20xx / 30xx系列要弱一些。 GeForce 3。

当然,当时的统一技术是模具阴影-是的,我们那时阴影贴图才可行。

现在。我不喜欢进行长期预测,实际上,我相信在给定的时间范围内,事情通常会被混乱所支配,谈论要怎么做只是愚蠢的然后发生。

但是,如果我们要做出预测,那么好的起点就是回顾历史,因为历史往往会重演。上次我们在渲染硬件方面进行了重大创新时发生了什么?

计算着色器是否导致更简单的渲染引擎或更复杂?当我们引入可编程片段着色器时发生了什么?更简单或更复杂?硬件顶点着色器又如何-硬件转换和照明...

依此类推,我们可以一直回到消费市场的第一个流行的加速视频卡3dfx。

当然,它一定使事情变得更简单,现在必须为每种游戏,每种对象,甚至每个CPU专门编程软件光栅化器!没有更多的组装。不再需要自我修改的代码,S缓冲区,软件剪辑,BSP ...

没有更多让屏幕上显示纹理的疯狂技巧,我们突然免费为您完成了所有这些工作! Z缓冲区,各向异性过滤,透视校正...甚至我们从未梦想过的疯狂东西现在已经出现在硬件中。

想象一下-一夜之间,您可能已经拿走了大部分3d引擎并将其删除。它使引擎更简单或更复杂了吗?

与数十年前的软件光栅化程序相比,今天的着色器由令人难以置信的硬件提供支持,它们具有更多的代码和更多的复杂性!

扰流板警报:否。至少不是在AAA实时渲染中。复杂性与技术无关。

技术可以使新产品成为现实,但即使是新产品的存在也始终以人为本。

事实是,我们的实时渲染引擎在十年前可能还很简单,我们现在所获得的东西并没有内在的复杂性。

我们可以轻松解决带有大型阴影贴图的阴影。我们可以轻松地进行阴影处理,只需遍历场景中的所有灯光即可,这相当琐碎。我们可以轻松地进行抗锯齿,只需依靠MSAA,或者如果您想成为更简单的全屏超级采样...

当然,您需要权衡这种相对“蛮力”的性能。方法...但这是可行的,如今,您可以用相对较少的几行代码编写一个慢速,逼真的实时渲染器。

我们不……的唯一原因在于人员和产品。我们喜欢我们的图形技术处于前沿地位,因为图形技术仍在销售游戏,销售游戏机。

为了拥有最前沿的优势,我们很容易地“牺牲”工程师,实际上,他们根本不关心事物的宏伟计划。

在AAA中,让某人工作一个月(完全可以),产生新的,复杂的代码路径以节省一毫秒的时间是完全可以的。经常花一个月节省十分之一毫秒的时间是完全可以的!

在这个方程式成立之前,我们将永远牺牲工程学,因此,接受越来越大的引擎,更复杂的渲染技术,才能更快地拥有更大,更美丽的世界!

可以做出一些预测的另一种观点来自克莱顿·克里斯滕森(Clayton Christensen)关于创新的经典著作。 Christensen认为,技术在商品化周期中不断发展,从而降低了成本并降低了规模,并实现了商品化,并利用集成的专有堆栈来提供创新。

在AAA游戏中,渲染尚未商品化,并且趋势似乎还没有朝着商品化发展。

创新仍然是实时图形而不是生产规模的驱动力,即使我们已经说了好几年,甚至几十年,我们才处于临界点,但实际上我们似乎还没有达到。

至少在大标题中,我们甚至还没有达到生产效率对艺术家真正重要的地步! -也就是说,我们的渲染静物小组通常仍会使工具和资产生产效率方面的工作相形见war。考虑一下-多少个定制AAA发动机的生产团队实际上针对生产效率进行了量身定制,我们进行了-或不进行权衡-以提高效率,质量还是性能...

我们不喜欢在堆栈上进行权衡取舍,我们使用紧密集成的技术,因为我们喜欢根据游戏的具体情况自定义它们的想法-即我们不接受允许共享生产堆栈中组件的开放标准。交换。

我认为这种趋势至少在未来十年左右不会改变,至少在高端,我什至不愿做出预测。

我们最近才发现,在电影业中(这是预测实时的另一种不错的方式),制作流水线已在某种程度上围绕通用交换格式进行了标准化。对于顶级工作室,渲染本身不是,大多数大型工作室都在自己专有的路径跟踪解决方案上运行...

我们生活在一个充满机遇的梦幻世界中。绝对有很多实时渲染已完全商品化和抽象化。

人们可以创建令人难以置信的图形,而根本不知道其底层的工作原理,这绝对是令人难以置信的新奇和令人兴奋的事情。

从前,您必须是John friggin' Carmack(我们走了一圈...)制作了3D引擎,创建了Doom,并因此而具有传奇色彩。您的核心像素推动能力使整个游戏类型无法获得最好的技术技能。

今天?我相信Unity可以免费提供FPS模板,您可以免费下载Unreal及其源代码,您可以使用Godot ...所有产品首先要着力于提高艺术效率和易用性。

每个人都可以在不关心技术的情况下创建几乎没有复杂性的任何游戏类型-复杂的内容仅适用于尖端的“大片”。定制引擎很重要的游戏名称,并且仅具有一些更好的功能(例如保真度,性能等),从根本上不会使游戏存在...

Three.js是github上最受欢迎的3d引擎-您无需了解任何有关3d图形的知识即可开始创建。我们有Roblox,Dreams,Minecraft和Fortnite Creative。我们拥有Notch,用于实时运动图形...

计算机图形从未像现在这样简单,同时在高端也从未如此复杂。

AAA将继续保持AAA的地位-在可预见的将来,由渲染工程师大军推动的定制引擎将变得异常复杂。

慢慢地,我们将在艺术家的生产力和资产生产上投入更多的资金-这对游戏来说确实很重要-但这不是一个快速的过程。

实际上,AAA变得相对无关紧要(与整体市场规模相比-与已建立的AAA市场相比,在其他方向上的扩张速度更快),要比从根本上接受变革要容易得多。

其他产品和其他市场是实时渲染商品化和根本不同的地方。这些产品已经存在,并且我们已经拥有庞大的细分市场,根本不需要理会技术细节。这可能会使游戏的渲染工程师为零...而且这些游戏的质量和范围逐年增长。

是的,我们现在几乎可以在任何设备上都实现3d硬件加速这一事实无疑为这个市场提供了便利-但与此同时,几乎没有任何硬件可以改变任何情况。

光线追踪只会在顶端增加复杂性,我们将看到令人难以置信的混合技术,如果今天我们有数十种方法来做阴影和组合信号以实时解决渲染方程式,我们会发现。将来,这些只会变得更加复杂-而且很棒。

最终将渗透到“底端”最终,但是这不会改变复杂性或打开新产品,因为使用更加用户友好的工具制作实时图形的人们已经不必在乎驱动它们的技术,那里的技术将总是在幕后发展,永远不会被用户看到...