2015-04-07 88 views
0

我一直在尝试使用DirectX 11制作延迟渲染器大约一个月,但未取得成功。我所遇到的大多数白皮书都描述了总体实现,但不是一个实际的实现(这是有道理的,但实际上对我来说很糟糕 - 无论如何)。DirectX 11延期渲染

我已经采取了看看几款全尺寸引擎的实现,比如从“实用渲染&计算的Direct3D 11”,https://hieroglyph3.codeplex.com/的源代码,但发现他们非常过分拖累和/或令人难以置信的复杂(涉及计算着色器)。

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

我一直在试图找到一套相对基本的实施教程,在过去的几个星期,希望得到一个腿 - 通过相对基本我的意思是漫反射&法线的几何通道和点灯照明通过。

因此,提出一个问题,是否存在知识,一组教程和/或示例项目,以完成上述基本实现?

我并不都对XNA或OpenGL感兴趣,因为前者是c#,后者不是DirectX或RasterTek教程,因为如我所说,它们已经过时。

非常感谢,我很感激。

+0

所以第一个问题是:你知道如何渲染到正向渲染模式的纹理?你可能想看看[DirectX工具包](http://go.microsoft.com/fwlink/?LinkId = 248929)教程,特别是[post process](https://directxtk.codeplex.com/wikipage?title=Writing%20custom%20shaders&referringTitle=Getting%20Started)教程。 –

+0

@Chuck Walbourn其实,一般概念至少。这个项目为右上角的视图使用向前渲染的纹理>> s7.postimg.org/q87sz7nxn/Screenshot_2015_04_07_03_15_51.png –

回答

1

我会强烈建议您购买这本书:“实用渲染&计算Direct3D 11”。有整章专门介绍延迟渲染,详细说明它是如何工作的,利弊&专业人员,以及如何解决延迟渲染的典型问题。

+0

我有这本书,并且我已经阅读过这一章;不止一次。我理解这个概念,并且实施松散,但不是实际的实施,因此我寻求实施指令。 –

+0

这是一本很好的书,但延期渲染中的整个章节仅包含HLSL代码示例。我个人认为没有任何C++代码是令人遗憾的,因为我相信这是第一次实施它的同等重要/困难的一部分。 – SvinSimpe

0

这里有一些资源,希望其中的一些为你工作。

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