Не могу понять, как получить с OpenGL ES 2.0 аналогичные результаты для OpenGL ES 1.1.Я хочу использовать Sampler2D (чтобы смешать мою текстуру с альфа-каналом в кадровый буфер), а также установить цвет.Текстура должна быть окрашена в цвет - как в OpenGL ES 1.1. Мой FragmentShader выглядит так:
varying lowp vec4 colorVarying;
varying mediump vec2 texcoordVarying;
uniform sampler2D texture;
void main(){
gl_FragColor = texture2D(texture, texcoordVarying) + colorVarying;
}
Но часть "+ colorVarying" разрушает мой альфа-канал с черным (потому что я также добавляю colorVarying, еслиЗначение AlphaValue равно 0) и создает странный эффект градиента ... Как канал текстуры и цвета комбинируется в конвейере с фиксированной функцией?Моя замена для glColor4f:
void gl2Color4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a){
const GLfloat pointer[] = {r, g, b, a};
glVertexAttribPointer(ATTRIB_COLOR, 2, GL_FLOAT, 0, 0, pointer);
glEnableVertexAttribArray(ATTRIB_COLOR);
}
И я использую glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);если это как-то актуально ...
Для цвета 1.0, 0.0, 1.0, 1.0 вот что я получаю сейчас:
И я хочу получить:
Какие идеи для этого?Любая помощь будет оценена.