DirectX 11延迟渲染

时间:2015-04-07 04:47:32

标签: c++ directx-11 deferred-rendering

我一直在尝试使用DirectX 11大约一个月制作一个Deferred Renderer,而不是成功。

我遇到的大多数白皮书都描述了总体实施,但不是实际的实施(这是有道理的,但实际上很难实现 - 无论如何)。

我已经看过几个全面的引擎实现,例如“实用渲染和计算Direct3D 11”的源代码,https://hieroglyph3.codeplex.com/,但发现它们极度过度阻塞和/或者非常复杂(涉及计算着色器)。

虽然我已经查看了http://rastertek.com/教程,但它们在一段时间内没有更新(据我所知,作者处于永久中断状态),并使用DirectX 9/10中的主题。

我一直试图在过去的几周内找到一套相对基本的实施教程,以期有所帮助 - 相对基础我的意思是漫反射和放大几何传递的法线和光照传递的点光源。

那么提出一个问题,知识是否有一套教程和/或示例项目完成了我上面描述的基本实现?

我对XNA或OpenGL不太感兴趣,考虑到前者是c#而后者不是DirectX,或者是RasterTek教程,因为正如我所说,它们已经过时了。

非常感谢,我很感激。

2 个答案:

答案 0 :(得分:1)

强烈建议你购买这本书:“实用渲染和计算Direct3D 11”。整个章节致力于延迟渲染,详细解释了它的工作原理,缺点和优点。专业人士,以及如何解决延迟渲染的典型问题。

答案 1 :(得分:0)

以下是一些资源,希望其中一些能为您服务。

除此之外,我建议你开始实施。你提到你已经知道如何渲染纹理。从您已经拥有的代码开始,即使没有直接的代码示例,移动到延迟渲染也不会太过分。您最初不应该担心照明 - 只需将纹理颜色渲染到g缓冲区并为延迟着色过程设置全屏四边形并将颜色输出到屏幕。一旦完成,您就可以顺利使用完整的延期渲染器。