Я пытаюсь смешивать альфа двух текстур. Сначала текстура это изображение, вторая текстура - прямоугольник с прозрачным круглым в центре. Мне нужно смешать эти две текстуры, чтобы в результате я получил свой фон с трансперентным раундом в центре. Для этого я пытаюсь использовать glBlendFunc, но мне удалось получить только весь прозрачный фон, другими словами, весь мой фон стал прозрачным. Как я могу смешать альфа текстур с помощью glBlendFunc?Смешивание альфа в opengl es 2.0
1
A
ответ
1
Одна из проблем заключается в том, что вы не можете использовать GLUtils.texImage2D() для загрузки альфа-текстур из растрового изображения на Android. Это распространенная проблема, которую Google действительно должен документировать лучше. Проблема заключается в том, что класс Bitmap преобразует все изображения в предварительно умноженный формат, но это не работает с OpenGL ES, если изображение полностью непрозрачно. Эта статья дает более подробную информацию по этому вопросу:
Чтобы использовать glBlendFunc(), вы должны включить его в первую очередь с glEnable (GL_BLEND), но самый быстрый способ смешать 2 текстуры вместе с OpenGL ES 2.0 сделать это в шейдере фрагмента. Вот простой пример:
uniform sampler2D sampler2d_0;
uniform sampler2D sampler2d_1;
varying mediump vec2 texCoord;
void main()
{
vec3 vTexture0 = texture2D(sampler2d_0, texCoord);
vec3 vTexture1 = texture2D(sampler2d_1, texCoord);
vec3 vColor = mix(vTexture0, vTexture1, alpha);
gl_FragColor = vec4(vColor, 1.0);
}
Смежные вопросы
- 1. OpenGL ES 2.0 Альфа
- 2. OpenGL ES 2.0: проблемы смешивания альфа
- 3. OpenGL ES (IPhone) альфа-смешивание выглядит странно
- 4. iPhone OpenGL ES неправильное альфа-смешивание
- 5. OpenGL ES 2.0 IOS, нулевой альфа-пиксел создавая непрозрачный цвет
- 6. OpenGL - GLSL шейдеры, альфа смешивание
- 7. OpenGL ES 2.0 цвет вычитание
- 8. OpenGL - ES рисование и смешивание
- 9. OpenGL ES 2.0 viewport
- 10. OpenGL ES 2.0 текстурирование
- 11. OpenGL ES 2.0 смешивания
- 12. OpenGL ES 2.0 многопоточность
- 13. OpenGL ES 2.0 3d
- 14. OpenGL ES 2.0 матрицы
- 15. Смешивание OpenGL ES 1 и OpenGL ES 2
- 16. OpenGL 2.0 ES-координаты
- 17. OpenGl ES 2.0 invalid_Value
- 18. Прозрачность dotted OpenGL ES 2.0
- 19. Выберите OpenGL ES 1.1 или OpenGL ES 2.0?
- 20. Сглаживание в OpenGL ES 2.0?
- 21. Вращение в OpenGL ES 2.0
- 22. GLPaint в OpenGL ES 2.0
- 23. OpenGL ES 2.0 blending alpha limit
- 24. Смешивание OpenGL 2.0 с современным OpenGL
- 25. Изображения и маска в OpenGL ES 2.0
- 26. OpenGL, альфа-смешивание и объект независимо ПРОЗРАЧНОСТИ
- 27. OpenGL альфа-смешивание внутри прозрачного объекта
- 28. OpenGL ES 2.0 эквивалент glOrtho()?
- 29. OpenGL ES 2.0 Реализация glMultMatrixf
- 30. нужен OpenGL ES 2.0 Emulator