2012-11-05 164 views
0

如圖所示,屏幕上有多個環。 enter image description here要求說用戶可以選擇任何環,並且選定的環應該發光效果(發光幾秒鐘然後變成綠色)。 enter image description here所有圖形渲染都是使用DirectX 9 + HLSL完成的。我正面臨的問題:DirectX 9 HLSL發光效果

  • 如何在着色器代碼中區分所選環和其他環,以便僅將光環效果應用於該環。
+0

你如何渲染你的戒指?它只是一個紋理,或者你渲染了幾個對象? – catflier

+0

不是紋理,所有頂點/點集合。 – control

回答

1

您應該使用不同的rendertargets(Documentation of SetRenderTarget)。首先將所有未選定的鈴聲渲染到後緩衝區。然後,您將選定的戒指作爲rendertarget繪製爲額外的紋理。你的發光材質使這個紋理髮光,最後你將紋理渲染到後緩衝區。所以你的綠色環發光,其他人不受發光的影響。

+0

開始實施測試樣本。需要** glowshader **的優秀算法/鏈接/代碼源。 – control

+0

@ppu:http://http.developer.nvidia.com/GPUGems/gpugems_ch21.html,但也許爲此目的的一個閃光燈是有點矯枉過正。如何紋理線條與輝光質地?這更簡單,並會達到相同的結果。 – Gnietschow

+0

我有點困惑。我會在backbuffer_1上渲染紅線,然後在backbuffer_2上渲染具有發光效果的線條。 如何在一個框架中合併它們兩個?我只使用頂點信息並且沒有紋理座標。 – control

0

如果你想有灼熱線,也不要使用任何東西的glowshader否則你可以讓你的線條與「厚」線和appropiate質感發光效果如下面的圖片:

Methode

這將是很easyiert實施和快得多,那麼另一種方法:)

+0

:試圖實現模糊着色器使用各種參考高斯模糊,但垂直和水平模糊的合併不會發生在着色器代碼中的多遍。然後採取2個backbuffers,並試圖使用它們作爲2紋理水平模糊其他在垂直模糊的情況下仍然合併兩個最終的輸出是不合適的。需要將一些引用合併到紋理後處理中。我不能在DirectX9中使用任何紋理資源。需要這樣的效果[Dx10 Glow](http://www.codeproject.com/Articles/156323/Stencil-Buffer-Glows-Part-2)。很困惑。 – control

+0

我實現了2紋理和交替的水平和垂直模糊和rendertargets 1的blureffect。渲染紋理1與scenetexture水平模糊2.渲染紋理2紋理1垂直模糊3.像1但紋理2等上 – Gnietschow