gpt4 book ai didi

片段着色器模糊......这是如何工作的?

转载 作者:行者123 更新时间:2023-12-01 07:16:33 25 4
gpt4 key购买 nike

uniform sampler2D sampler0;
uniform vec2 tc_offset[9];
void blur()
{
vec4 sample[9];
for(int i = 0; i < 9; ++i)
sample[i] = texture2D(sampler0, gl_TexCoord[0].st + tc_offset[i]);

gl_FragColor = (sample[0] + (2.0 * sample[1]) + sample[2] +
(2.0 * sample[3]) + sample[4] + 2.0 * sample[5] +
sample[6] + 2.0 * sample[7] + sample[8] ) / 13.0;
}

sample[i] = texture2D(sample0, ...) 线是如何工作的?

似乎要模糊图像,我必须首先生成图像,但在这里,我以某种方式试图查询我正在生成的图像。这是如何运作的?

最佳答案

它将模糊内核应用于图像。 tc_offset需要由应用程序正确初始化以在实际纹理坐标周围形成一个 3x3 的采样点区域:

0   0   0
0 x 0
0 0 0

(假设 x 是原始坐标)。左上采样点的偏移量是 -1/width,-1/height .中心点的偏移需要仔细对齐到纹素中心(off-by-0.5 问题)。此外,硬件双线性滤波器可用于廉价地增加模糊量(通过在纹素之间进行采样)。

着色器的其余部分按距离缩放样本。通常,这也是预先计算好的:
for(int i = 0; i < NUM_SAMPLES; ++i) {
result += texture2D(sampler,texcoord+offsetscaling[i].xy)*offsetscaling[i].z;
}

关于片段着色器模糊......这是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2437977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com