我正在努力掌握HLSL。。。我理解如何指定一个特定的像素来提取纹理颜色,但这忽略了色调,使用COLOR0
作为函数的输入,我可以获得像素的色调。。据我所知,我无法访问我认为称为COLORCOORD0
的某种属性,这样我就可以获取周围像素的色调。
如何从函数当前处理的像素以外的像素中提取色调?
此外,x和y坐标使用什么单位?如果我没记错的话,我记得很久以前读过,{0f, 0f}
将是窗口的中心,{-1f, -1f}
将是左上角,{1f, 1f}
将是右下角;这是正确的吗?这是否意味着你的着色器会因使用游戏窗口的大小而因人而异?
您需要首先将(未模糊的)场景渲染为纹理,然后,要绘制模糊的场景,请查找该纹理中周围点的值才能执行此操作。
(按建议动议答复)。
XNA Bloom Sample是一个很好的模糊示例。
基本上将场景渲染到渲染目标。通过多点模糊着色器在一个方向(水平或垂直)将其反弹到另一个目标,然后通过模糊着色器在另一个方向将其绘制到屏幕。
您也可以将采样缩小到一半,然后再进行上采样,使用双线性滤波来获得额外的模糊,而不需要更多的纹理采样。