2015-04-07 92 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緩衝區,併爲延遲着色過程設置全屏四邊形並將顏色輸出到屏幕。一旦你有了,你就可以順利地完成一個完整的延遲渲染器。