在OpenGL中,什么是“零状态”渲染?


10

最近在一次工作面试中,我提到我自学了现代OpenGL和如何使用顶点缓冲对象进行渲染,因为我的大学当时只教固定功能管道进行即时模式渲染。面试官简短地打扰了我,说VBO已被“零状态渲染”所代替,然后让我继续。

后来我忘了问这是什么意思了,因为我们很快转到了其他主题,并且由于忙碌的日程表,面试官最终没有时间了。

后来,我在网上搜索了“ OpenGL零状态”和“零状态渲染”,没有似乎相关的结果,大部分只是关于OpenGL状态的信息。

所讨论的组织是基于大量研究的,因此是否有可能是目前很少支持的扩展,还是由于其尖端的性质而使使用的术语有所不同?


您确定它是“零状态”,还是它可能是带有“零”字样的其他内容?我的猜测是他在谈论零开销:gdcvault.com/play/1020791
Lasse

掠过视频,很有可能是“零听闻”,尽管我100%确信他的实际话是“零状态”。我的假设是,他指的是用于绘图调用的单个新功能,而不是优化现有功能。“零开销”是在OpenGL中推荐的新绘制方式吗?
2014年

6
难道是“零属性”?零属性渲染(通常称为“无属性渲染”)确实替代了VBO。
Trevor Powell

5
这个问题不是题外话,绝对可以使用术语问题。

1
我很确定您的面试官在谈论的是所谓的无边界渲染。简而言之,它消除了将单个对象绑定到全局句柄以更改或利用它们的需要。搜索应该会获得更好的结果。
kevintodisco,2014年

Answers:


9

您的面试官用他自己的话谈论无绑定的 API。nVidia的最近做了关于这一切,他们称之为好的演示文稿直接访问状态12)。这不会替代VBO。


编辑:实际上,让我们考虑一下特雷弗·鲍威尔的建议:

似乎有些人肯定可以决定使用几何着色器来获取统一的数据或纹理,从而放弃无属性渲染,以支持无属性渲染,如本文所述

我可以看到有人可以决定将自己的引擎切换为完全不用attirubte的引擎,但是如果我在团队中,我不会容忍这样的举动:原因-如果您仔细阅读了该管道概述 -是因为具有-更少,顶点FIFO缓存由于完全跳过而变得不可用。因此,无属性消除了很好的优化机会。

当然,这需要基准测试,但纯粹是先验的,对于通用的通用解决方案来说,这听起来是个坏主意。

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.