对这个功能很困惑在glsl的代码中,我总是看到这样的东西
uniform sampler2D source;
varying vec2 textureCordi;
void main()
{
vec2 uv = textureCordi.xy;
vec3 t1 = texture2D(source, vec2(uv.x - step_w, uv.y - step_h)).rgb; //2
float average = (t1.r + t1.b + t1.g) / 3.0;
//.....
}
//2中,t1保存了源的数据(我认为是数据),但是它复制了多少数据呢?纹理的坐标在0~1之间,假设纹理是一个图像,图像的大小是1024 * 768,那么t1会节省1024 * 768个像素吗?gpu 在这个命令下会做什么?
如果 t1 做繁重的复制工作,我可以要求 texture2D 将源的引用返回给 t1(如 c++)吗?