У меня есть изображение текстуры, которое я использую с GLKit. Если я использую GL_MODULATE для текстуры и имею вершину RGBA (1.0, 1.0, 1.0, 1.0), тогда текстура отображается полностью, как это было бы в GL_REPLACE. Полностью непрозрачный. Затем, если я использую красный (1.0, 0.0, 0.0, 1.0) для вершинного RGB, текстура снова отображается как красный, модулирующий текстуру. Все идет нормально. Но когда я изменяю прозрачность цвета вершины и использую RGBA (1.0, 0.0, 0.0, 0.5), тогда виден только светло-красный цвет, а текстура не видна, поэтому цвет полностью заменяет текстуру. Сама текстура не имеет альфы, это текстура RGB565.
Я использую GLKit с GLKTextureEnvModeModulate.
self.effect.texture2d0.envMode = GLKTextureEnvModeModulate;
Любая помощь в том, почему текстура исчезнет, когда я укажу альфу?
Добавление снимков:
Это исходная текстура.
RGBA (1.0, 1.0, 1.0, 1.0) - белый цвет, без предварительного умножения, непрозрачный, текстура видна
RGBA (1.0, 1.0, 1.0, 0.5) - белый цвет, без предварительного умножения, альфа = 0,5, текстура потеряна
RGBA (1.0, 0, 0, 1.0) - красный цвет, без предварительного умножения, непрозрачный, текстура видна
RGBA (1.0, 0, 0, 0.5) - красный цвет, без предварительного умножения, альфа = 0,5, текстура потеряна
RGBA ( 0,5, 0, 0, 0,5) - красный цвет, предварительное умножение, альфа = 0,5 на @andon, текстура видна, но вам может потребоваться увеличить, чтобы увидеть ее
RGBA ( 0,1, 0, 0, 0,1) - красный цвет, предварительное умножение, альфа = 0,1 на @andon, текстура потеряна, вероятно, из-за недостаточного контраста
RGBA ( 0,9, 0, 0, 0,9) - красный цвет, предварительное умножение, альфа = 0,9 на @andon, текстура видна, но вам может потребоваться увеличить, чтобы увидеть ее