Я хочу, чтобы фон был виден там, где изображение на переднем плане не имеет цвета (или белого).
У вас есть два варианта, самый простой - использовать альфа-тестирование и добавитьальфа-канал для вашего изображения переднего плана, чтобы у каждого белого пикселя (или без цветовых зон) было специальное значение, скажем, 0.0f и все остальные 1.0f.
Затем при рендеринге переднего плана вы включаете альфа-тестирование с помощью glEnable(GL_ALPHA_TEST)
и установить альфа-функцию с помощью glAlphaFunc(GL_GREATER, 0.5f)
Это позволит принимать / рисовать только фрагменты с альфа-значением, превышающим 0,5f, и отбрасывать / не рисовать все фрагменты с альфа-значением, меньшим, чем 0,5f.
Secondвыбор заключается в том, чтобы использовать смешивание, как вы это сделали, но вам также необходимо добавить дополнительный альфа-канал на передний план и правильно установить glBlendFunc
.
Подробнее здесь: http://iphone -3d-Program.labs.oreilly.com / ch06.html