В моем шейдере фрагмента я могу загрузить текстуру, а затем сделать это:
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), затем color = red, else color = black?"
?
Я знаю, как устанавливать цвета, но как мне получить "мое" местоположение?
Во-вторых, как мне получить значения из соседнего пикселя?
Я пробовал это:
vec4 nextColor = texture2D(tex, gl_TexCoord[1].st);
Но непонятно, что он возвращает? если я пиксель 100 100; как получить значения от 101 100 или 100 101?