【发布时间】:2013-06-11 22:47:09
【问题描述】:
对这个功能很困惑 在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++)?
【问题讨论】: