2012-11-05 162 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