渲染数万亿个“原子”而不是多边形?


9

我刚刚看了一段有关发行商称之为“ 3D发明之后的下一个重大步骤”的视频。根据其中一位知情人士的说法,他们使用大量被分组为原子而不是多边形来达到无限细节的水平。

他们尽力使不了解任何渲染技术的人都能理解该视频,因此或出于其他目的而忽略了引擎工作原理的所有细节。

他们的视频中的细节水平对我来说确实令人印象深刻。

  • 如何在当前硬件上使用自定义原子而不是多边形来渲染场景?(速度,内存方面)
  • 如果这是真的,为什么到目前为止没有人想到它?

作为OpenGL开发人员,我真的对此感到困惑,并且真的想听听专家怎么说。因此,我也不希望这看起来像廉价的广告,并且仅在需要时在评论部分中包含指向视频的链接。


7
好吧,他们发明了自计算机图形学以来最革命性的东西,但是他们不知道一英寸能容纳多少毫米,这能告诉您什么。

2
他们对技术的细节非常有限(原谅双关语),因此很难进行讨论。据我从视频中了解到,软件中的帧率为20fps。我看到了很多静态几何图形,还有大量实例化,并且不知道有多少数据是预先计算或动态生成的。仍然很有趣。我不想完全称呼恶作剧。没有获得的资金,尽管这并不意味着很多。
巴特

8
如果有人提出奇异的主张,而只展示完全无关的东西(例如《孤岛危机》)的镜头,那总是很可疑的。如果有诸如“医学/太空旅行中使用的技术”之类的主张,并且混淆了彼此无关的几件事,那就更是如此。当然,有可能在程序上产生(几乎)无限的细节,并且有可能进行渲染。那么,每个1984年的mandelbrot演示都可以做到这一点。但是,他们声称它们可以无限详细地渲染像大象一样的物体。那只是胡扯,因为他们做不到。

8
“您的图形将变得更好十万倍。” 非同寻常的主张需要非凡的证据。
布拉德·拉尔森

11
Notch 撰写了 有关此视频的两篇博客文章
Kevin Yap

Answers:


11

这很容易做到。使用八叉树,您只需将世界分成越来越小的部分,直到达到所需的细节水平。例如,这可能是一粒沙的大小。认为《我的世界》达到了极限。

那你渲染什么?如果细节足够小,则可以考虑渲染块-八叉树的叶子节点。其他选项包括球体甚至几何图元。颜色和法线可以存储在每个节点上,对于降低的LOD,可以在树的更高级别存储复合信息。

您如何管理这么多数据?如果树是实际的数据结构,则可以有多个指针引用相同的子树,就像重用纹理一样,但是它也包含几何。诀窍是在所有级别上获得尽可能多的重用。例如,如果将所有四面体排列的4个八分圆都连接到所有级别的同一子节点,则几乎不使用内存就可以制作非常大的3d sierpinsky分形。当然,真实场景会更大。

问题在于它仅适用于静态几何图形,因为真正的动画需要每帧都对所有数据进行操作。但是,渲染(尤其是使用可变LOD渲染)没有问题。

如何渲染这样的事情?我是射线追踪的忠实拥护者,无论有没有GPU,它都能很好地处理此类问题。

当然,所有这些都是推测。对于您正在谈论的案件,我没有具体信息。现在针对一些相关但又不同的东西:

呈现大量数据

编辑这是我所做的,但是我故意更改了法线以使盒子更明显:

斯坦福兔子的体素

该帧速率位于单个核心IIRC上。将树的深度加倍通常将帧速率降低一半,而使用多核则可以很好地扩展。通常,我在八叉树中保留图元(三角形等),但是对于这种笑容,我决定在这种情况下渲染树本身的叶节点。当然,如果围绕特定方法进行优化,则可以实现更好的性能。

在ompf上的某个地方,有一辆用体素制成的汽车真的很棒-除了它是静态的。似乎现在找不到...


我同意这种评估:我自己看了视频,就被场景的静态感震惊(当与多边形草比较时,这很有趣;至少风吹动,而显然不是)。
2011年

1
不幸的是,链接已死。
约阿希姆·绍尔

1
@JoachimSauer确实,OMPF论坛在一段时间前已经关闭。可在此处直接替换但是我不知道是否已迁移任何内容。
巴特2012年

看起来不像。在该论坛上搜索“兔子”对我来说没有结果。
约阿希姆·绍尔

第一个链接打开弹出窗口和警报框的-1
NimChimpsky 2012年

6
  • 如何在当前硬件上使用自定义原子而不是多边形来渲染场景?(速度,内存方面)

从观看视频开始,没有任何迹象表明我使用了任何特殊的硬件。实际上,据称它可以20fps的速度在软件中运行,除非我错过了一些东西。

也许您会惊讶地知道,尽管使用诸如光线跟踪,体素渲染和表面喷涂之类的多种技术对实时渲染进行了大量开发。很难说在这种情况下使用了什么。(如果您有兴趣,请访问http://igad2.nhtv.nl/ompf2/,以获取出色的实时光线跟踪论坛;或访问http://www.atomontage.com/,以获取有趣的体素引擎。 Google“表面喷溅”中有关该主题的一些很棒的链接)

如果您看电影,会发现所有几何都是静态的,尽管很细致,但是对象重复很多,可能暗示了实例化。

而且很可能会发生很多攻击性的剔除,细节级别和空间划分。

如果您查看视觉质量(而不是几何复杂性),那么看起来就不会那么令人印象深刻。实际上,它看上去相当平坦。显示的阴影可能已烘焙到数据中,无法实时评估。

我希望看到一个具有动画几何体和动态照明的演示。

  • 如果这是真的,为什么到目前为止没有人想到它?

除非我完全错了(而且这不是我第一次),否则我的第一个答案将建议(可能非常聪明)使用现有技术,并可能进行了优化和扩展以创建此演示。但是,使其成为一个实际的游戏引擎,除了渲染包括其中的静态几何图形外,还有其他所有任务,是完全不同的球类游戏。

当然,所有这些都是纯粹的猜测(这对我来说很有趣)。我要说的是,这不一定是假的(实际上我不认为是假的,但仍然给人留下了深刻的印象),但可能也没有听起来那么具有开创性。


5

这些原子实际上并不是当前图形硬件的魔力/特殊/外来元素。它只是一种点云或基于体素的渲染。因此,它们代替了三角形,而是渲染了点或框,这是当前硬件无法实现的。

它已经并且已经完成,而且不是超级发明,但是也许他们想出了一种更节省内存和更省时的方法来完成它。尽管它看起来听起来很有趣,但您还是应该带着一点盐味来拍摄这个视频。渲染100,000点而不是渲染完全纹理的多边形(该多边形已经在屏幕上仅占用了几个像素)并不能使您的图形质量提高100,000倍。

顺便说一句,我听说id软件也在尝试GPU加速的体素渲染,但是我对John Carmack的信任比对这个视频的演讲者更信任:)


2

那是一个投资骗局。

至于这个想法,在当前的非专用硬件上是不可行的。当您仔细观察某些东西时,需要避免出现的空白点数远远超出了您今天的RAM中可以触发的空白点数。即使,我也不知道任何数据结构或搜索算法会产生与演示中所示性能相近的任何东西。而且即使,它是在某种程度上可以搜索实时这些点,高速缓存未命中和内存带宽将确保你不能。

我毫不怀疑这样的图像,即不能通过所提供的方法实时获得图像。我的猜测是,这些演示是使用体素渲染的,已经使用了数十年,并且可以实时产生相当高的细节:http : //www.youtube.com/watch ? v = BKEfxM6girI http://www.youtube .com / watch?v = VpEpAFGplnI


2
“那是一次投资骗局”……您以此为基础吗?特别是考虑到最近获得的资金和今天上传的视频?
巴特

1
什么影片?他们有一年没有更新了。
汉尼斯2011年

1
OP在评论中发布的youtube.com/user/EuclideonOfficial
巴特

1

从我看到的结果来看,似乎他们使用的是参数形状而不是简单的多边形形状-换句话说,它们根据所需的分辨率更改了几何形状。

可以使用诸如几何着色器和Perlin噪声之类的技术来完成。

另一种可能性是使用GPGPU(例如CUDA)渲染包括非多边形的场景并执行光线跟踪(针对z阶和阴影)。另一种可能性是自定义硬件,它呈现公式而不是三角形


0

我认为他们所有的主张,内存的压缩似乎有点夸张,我可以理解像RLE压缩这样的东西有很大的影响。最后,我认为该系统将具有很多“优点”,但也会有很多“缺点”,就像光线追踪或行进立方体的等值面渲染一样。

就渲染“万亿”原子而言;我认为他们不是在说那个。他们正在做的是搜索W * H原子,即屏幕上每个像素一个原子。这可以通过许多缓慢而困难的方式来完成。加快速度的一些方法包括KD树,BSP树,八叉树等。尽管如此,最终仍在整理大量数据,而且它们的演示显然对1440x720原子进行排序,每帧最多排序一次,因为演示中有阴影/反射,所以感觉很棒。太赞了!


-1

它的工作方式比您想象的要简单得多,与其说是预先加载游戏级别,不如说它仅加载一个屏幕,屏幕上每个像素一个或几个原子,仅此而已,游戏/引擎随后会预测接下来的帧是唯一加载的帧,仅渲染可见对象的一部分,而不渲染整个对象本身。优点:显示器可以处理的清晰度和分辨率都很高,内存使用率低缺点:从磁盘读取的速率相当大,可能导致帧速率较低。


这似乎并没有提供任何实质性的制作上分,提前7个回答解释
蚊蚋
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.