【发布时间】:2012-03-19 23:25:37
【问题描述】:
在我的片段着色器中,我可以加载纹理,然后执行以下操作:
uniform sampler2D tex;
void main(void) {
vec4 color = texture2D(tex, gl_TexCoord[0].st);
gl_FragColor = color;
}
将当前像素设置为纹理的颜色值。我可以修改这些,等等,效果很好。
但有几个问题。我如何分辨我是“哪个”像素?例如,假设我想将像素 100,100 (x,y) 设置为红色。其他都变黑了。我该怎么做:
"如果 currentSelf.Position() == (100,100);那么颜色=红色;否则颜色=黑色?
?
我知道如何设置颜色,但如何获得“我的”位置?
其次,如何从相邻像素中获取值?
我试过了:
vec4 nextColor = texture2D(tex, gl_TexCoord[1].st);
但不清楚它返回的是什么?如果我是 100,100 像素;如何从 101,100 或 100,101 中获取值?
【问题讨论】: