В моем фрагментном шейдере я могу загрузить текстуру, а затем сделать это:
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?