获取颜色坐标,如TEXCOORD0模糊

时间:2012-09-03 01:36:19

标签: c# xna hlsl

我正试图掌握HLSL ...我明白你如何指定一个特定的像素来获取纹理颜色然而这忽略了色调,使用COLOR0作为我可以得到的函数的输入然而,像素的色调..据我所知,我无法访问某些我认为会被称为COLORCOORD0的属性,以便我可以获取周围像素的颜色色调。 / p>

你如何从函数当前处理的像素以外的像素中获取颜色色调?

此外,x和y坐标使用哪些单位?如果我没记错的话,我记得早就读过{0f, 0f}将是窗口的中心,{-1f, -1f}将是左上角,{1f, 1f}将是右下角;它是否正确?这是否意味着您的着色器会因人们使用的游戏窗口大小而异而不同?

2 个答案:

答案 0 :(得分:1)

XNA Bloom Sample是您了解如何模糊的好例子。

基本上,您将场景渲染为渲染目标。通过一个方向(水平或垂直)的多次点击模糊着色器将其反射到另一个目标,然后通过另一个方向的模糊着色器将其绘制到屏幕上。

您也可以使用双线性滤波下采样到一半大小,然后进行上采样,以获得额外的模糊,而无需更多纹理样本。

答案 1 :(得分:1)

您需要首先将(未模糊的)场景渲染到纹理,然后,绘制模糊的场景,从该纹理中的周围点中查找值,以便能够执行此操作。

(根据建议转到答案)。