Изменение яркости текстуры OpenGL - PullRequest
1 голос
/ 25 августа 2009

Я хотел бы увеличить яркость текстуры, используемой в рендеринге OpenGL. Например, сделать его ярко-красным или белым. Это среда 2D-рендеринга, где каждый спрайт отображается как текстура в полигоне OpenGL. Я мало что знаю об обработке данных, и мой движок работает с кешем текстур, поэтому изменение всей поверхности повлияет на все, используя текстуру. Я могу смоделировать эффект, имея «маску» и накладывая ее, что позволяет мне сделать спрайт сплошным цветом, но это забирает память Если есть какое-либо другое решение для этого?

Ответы [ 3 ]

2 голосов
/ 25 августа 2009

Если ваше требование позволяет, вы всегда можете написать очень простой фрагментный шейдер GLSL, который делает это. Буквально один лайнер.
Что-то вроде:

uniform sampler2d tex;
void main()
{
    gl_FragColor = texture2d(tex, gl_TexCoord[0]) + gl_Color;
}
1 голос
/ 25 августа 2009

Возможно GL_ADD вместо GL_MODULATE?

0 голосов
/ 25 августа 2009

используйте GL_MODULATE, чтобы умножить цвет текстуры на текущий цвет.
см. учебник по текстуре в этой странице .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...