Как сделать фон текстуры прозрачным, когда он перекрывается? - PullRequest
0 голосов
/ 16 февраля 2011

У меня есть текстура с черным фоном, которую я хочу сделать прозрачной.Проблема в том, что когда я рисую эту текстуру перед другим объектом, используя текстуру, черный фон все еще отображается.Как сделать мою текстуру прозрачной, даже если она перекрывается?

1 Ответ

1 голос
/ 16 февраля 2011

Я предполагаю, что 3 вещи здесь

  1. Вы успешно загружаете изображение с помощью альфа-канала (например, .png или .tga)
  2. У вас включено тестирование глубины
  3. Вы не изменили режим смешивания, но включили смешивание

Когда OpenGL рисует ваш Quad / Triangle, он также рисует в буфер глубины, независимо от того, является ли этот пиксель прозрачным (или частично прозрачным). Я предполагаю, что вы сначала рисуете эту прозрачную фигуру, а затем последний объект за ней. OpenGL не будет рисовать задний объект, где буфер глубины уже говорит, что вы нарисовали что-то перед ним, так что вы действительно видите сквозь первый и второй объект, в «небо».

поэтому, если прозрачный объект всегда впереди, нарисуйте его последним. В противном случае все становится довольно сложно (Google "сортировка по глубине")

Я попытаюсь добавить больше деталей к этому, когда вернусь домой.

...