Я работаю над игрой для Android, и мне было интересно, почему всякий раз, когда я рисую изображения с прозрачностью, кажется, что некоторые черные добавляются к прозрачным частям. Это происходит повсюду, и некоторые из моих эффектов выглядят странно.OpenGL прозрачные изображения черны в них
Вот пример. Два круга - это только белые изображения с размытием, но вы можете видеть, когда один накладывается на другой, у него есть тень. Если я перекрываю два круга в Inkscape, я получаю чистый белый цвет, где они перекрываются.
Я использую
GLES20.glEnable(GLES20.GL_BLEND);
GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA);
для моего смешивания.
Любая идея, почему это происходит и как я могу избежать этого?
Редактировать: единственное, что я могу придумать, это то, что два изображения имеют одинаковые z, поэтому, возможно, они смешиваются только с фоном, а не друг с другом?
Edit: Я изменил
GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA);
в
GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_DST_ALPHA);
Вот результат я искал.
Единственное, в настоящее время является то, что прозрачные образы, которые я имел, что есть прозрачный черный в них игнорируются, что имеет смысл, потому что я думаю, что альфа назначения 1. Почему бы один источник минус добавить, что серый?
Что касается вопроса в вашем редактировании, вы ошибаетесь, и это невозможно. – Tim
Лично я думаю, что тень выглядит потрясающе. Но это только я. – ashes999