Я пытаюсь смешать белую текстуру с различными значениями альфа-канала с цветным фоном. Я ожидаю, что в результате сохранятся цвета фона и будут заменены альфа-значения на значения из смешанной текстуры.
Итак, для фона я использую:
Gdx.gl.glEnable(GL20.GL_BLEND);
Gdx.gl.glBlendEquationSeparate(GL20.GL_FUNC_ADD, GL20.GL_FUNC_ADD);
Gdx.gl.glBlendFuncSeparate(GL20.GL_ONE, GL20.GL_ZERO, GL20.GL_ONE, GL20.GL_ZERO);
Я ожидаю, что сетка фоновых треугольников переопределит назначение, как цвет, так и альфа.
Вопрос 1 - почему с этими параметрами blendFunc значение альфа игнорируется? Если я установил blendfunc на GL_ONE, GL_ONE, GL_ZERO, GL_ZERO, тогда заполненная сетка будет отображаться с правильным альфа-уровнем, но предполагается, что и исходная, и конечная альфа-альфа должны быть умножены на ноль - почему это работает?
====
Теперь, чтобы смешать альфа-карту, которую я использую:
Gdx.gl.glBlendEquationSeparate(GL20.GL_FUNC_ADD, GL20.GL_FUNC_ADD);
Gdx.gl.glBlendFuncSeparate(GL20.GL_ZERO, GL20.GL_ONE, GL20.GL_ONE, GL20.GL_ZERO);
Вопрос 2 - Это должно сохранить целевой цвет и заменить альфу. Однако, когда я визуализирую текстуру с этими параметрами blendfunc, я вообще не получаю никаких изменений в выводе ...
Я снова и снова читаю главу о смешивании opengl, чтобы понять, чего я не понимаю, пожалуйста, поделитесь своим мнением о том, как эти параметры на самом деле работают