2013-02-27 43 views
1

我在編寫遊戲引擎的渲染方面似乎處於一個窘境。我最初的計劃是至少實現動態每像素光照與HLSL,並有一個光緩衝區與着色器進行通信,最多8個光源。用體素幾何進行光照映射

重要的是要注意到,到目前爲止,我的整個地圖都是一個三維塊(64x64x64)陣列。在一個非常基本的臉部縮小算法之後,我正在尋找32x32x32x6臉部以在最壞的情況下進行渲染。我將用其他方法來減少負荷,但首先我想解決這個問題。

目前,在着色器中有8個燈光,我用GTX 470獲得大約60-120幀速率,這是一張不錯的卡片。顯然還有很多其他的優化我都必須考慮,但由於動態照明對我來說並不重要(至少不是8個燈),我一直在研究光照貼圖。

如果我要每張臉有4x4 lumels,我正在查看紋理地圖集,以查看整個級別的光照貼圖,它是32x32x32x6x16大,每個像素4個字節。這出來的紋理,我會使用的是2048x2048(最接近2的分辨率)。

我已經看過幾個源代碼,尤其是這一個,http://www.flipcode.com/archives/Light_Mapping_Theory_and_Implementation.shtml,雖然我掌握瞭如何使用基本場景實現它,但我很難理解如何使用當前的幾何形狀實現它。

所以這是我的問題。有一個更好的方法嗎?這個尺寸的光照貼圖可以使用嗎?我覺得每張臉上使用4x4 lumels會比較舒服,因爲雙線性過濾最終可以真正使事情變得順利。另外,將靜態光照貼圖系統與每個像素的動態光照貼圖與HLSL組合起來會相當簡單嗎?

+1

每張臉都有不同的紋理嗎?你是否爲每個立方體單獨調用drawprimitive?此外,如果你的「體素」密度是4倍,它會影響幀頻嗎?我會懷疑你不那麼受限於燈光和更多限制的非最佳渲染選擇...... – Goz 2013-03-01 18:20:53

+0

不,我已經做了相當多的一點,以減少批量計數。我使用大約32次繪製調用渲染每個立方體,並且沒有着色器,我每秒獲得900幀左右的渲染。 – 2013-03-01 23:51:39

+0

另外,我並不需要超高像素密度。 64-128的場地範圍就足夠了,並且我都獲得了非常好的幀速率。 – 2013-03-01 23:53:07

回答