Я не могу понять, как получить с OpenGL ES 2.0 результаты, аналогичные OpenGL ES 1.1. Я хочу использовать на самом деле Sampler2D (чтобы смешать мою текстуру с альфа-каналом с буфером кадра), а также установить цвет. Текстура должна быть окрашена в цвет - как в OpenGL ES 1.1 0 результатов, похожих на OpenGL ES 1.1. Я хочу использовать на самом деле Sampler2D (чтобы смешать мою текстуру с альфа-каналом с буфером кадра), а также установить цвет. Текстура должна быть окрашена в цвет - как в OpenGL ES 1.1 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 вот что я получаю сейчас:
И я хочу получить:
Какие идеи для этого? Любая помощь будет принята с благодарностью.