在地幔,dx和ogl上的表现

时间:2015-02-22 15:38:14

标签: opengl graphics 3d directx mantle

所以最近所有人都对3D图形的新API进行了骚动,这可能会大幅加速图形化,我想知道为什么以前没有这样做过。旧方式和新方式之间有什么不同?

我想知道它是如何实现的,甚至可以概述它如何从gpu到驱动程序再到DX或OGL的API。

2 个答案:

答案 0 :(得分:6)

发生的主要事情是,即使在各个供应商中,GPU本身已经变得非常标准化。 DirectX和OpenGL历来花费了大量精力来隐藏各种供应商的GPU设计之间的差异,其中许多过去都有相当独特的硬件架构--OpenGL一直是一个很大的漏洞&# 39;抽象与所有那些数量众多的特定于供应商的扩展。

DirectX 12和Mantle都暴露了比过去更多的GPU底层行为,因此运行时库对底层驱动程序的抽象要薄得多。这种方法不会在每个视频卡上工作,尤其是传统DirectX和OpenGL可以支持的许多旧视频卡 - OpenGL带来了可追溯到几十年前的巨大传统支持。为了使DirectX 10的GPU功能正常化,然后DirectX 11使得来自不同供应商的消费级PC图形硬件自DirectX早期起就不那么古怪。

要记住的另一件事是,这种权衡还需要更多的应用程序/游戏本身来正确处理CPU / GPU同步,有效地驱动硬件,跟踪并详尽地描述他们使用的状态组合,并且通常在没有安全水平的情况下运行。来自运行时的支持。

编写DirectX 12应用程序比现在的DirectX 11或OpenGL需要更多的图形编程技能。在Direct3D 9中设置设备/交换链和简单的渲染场景可能需要几十行代码,在Direct3D 11中几百行,但在DirectX 12中需要更多,因为应用程序本身必须执行所有使用的单独步骤通过魔术来完成#39;在运行时中。这可以让应用程序/游戏调整确切的顺序,也可以跳过它们实际上不需要的步骤,但是它们就是它们而不是运行时才能实现这一点。

引用Uncle Ben以强大的力量来承担很大的责任。

开发人员坚称他们想要一个类似控制台的'多年来,PC上的API,所以现在他们将了解他们是否真的想要它。对于游戏引擎编写者,具有自定义引擎的AAA游戏以及技术演示场景,对硬件进行如此多的直接控制非常酷。对于凡人来说,使用DirectX 11一段时间会更容易,或者使用已经实现DirectX 12的引擎会更容易。

答案 1 :(得分:0)

要了解从gpu到驱动程序到API的工作原理,您可以从Graphics Pipeline

开始