Opengl: использовать текстуру только для передачи альфа-канала цветному объекту - PullRequest
2 голосов
/ 11 июня 2010

Я новичок в OpenGL и не могу узнать, как это сделать:
Я хочу отрисовать букву и иметь возможность изменить ее цвет, поэтому у меня есть текстура с буквой на прозрачном фоне,Мне удалось отрендерить его с помощью этого кода:

glEnable(GL_BLEND)
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)  

Но это делает букву черным, так как она на текстуре.Как я могу сделать это с цветом, установленным glColor4f?

Ответы [ 2 ]

2 голосов
/ 11 июня 2010

Вы возились с glTexEnv?Если вы это сделали, позвоните:

glTexEnv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE)

, и это восстановит поведение по умолчанию, то есть умножить цвет текстуры на цвет вершины.

1 голос
/ 11 июня 2010

Есть несколько других возможностей.Один из них - поместить букву в буфер трафарета, а затем нарисовать четырехугольник нужного цвета.Другой вариант - нарисовать текст светло-серым и использовать освещение, чтобы отобразить его в желаемом цвете.

...