2015-07-15 3 views
0

Я создаю 2D-игру с lwjgl и slick-util. Для специальной функции в моей игре я хотел уметь придавать текстурам определенную непрозрачность. Мне удалось это понять, но следующий шаг дает Texture в качестве параметра, который даст мне возможность придать определенным текстурам определенные непрозрачности в определенных местах.LWJGL используя текстуру в качестве альфа-маски

Примечание: У меня уже есть работа, но маска также, похоже, удаляет фоновое изображение, которое я не хочу.

я не могу добавлять изображения, потому что я не имею достаточно репутации или что-то, но все равно, что я хочу сделать, это в основном:

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

Как я могу это сделать?

ответ

0

Я думаю, вы используете неправильный режим наложения. Если вы не измените режим смешивания по умолчанию, то вам необходимо:

glEnable (GL_BLEND); // Enable blending. 
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // Setup blending function. 

Я думаю, что в вас случае, текстура не сливаться с фоном, он просто заменяет фон.

+0

Я вижу, есть ли у вас какие-либо предположения о том, как остановить его замену моего фона? Должен ли я визуализировать фон после того, как я отобразил скрытую текстуру? – Vulcano

+0

Вам нужно использовать смешивание. Если смешение отключено, прозрачные пиксели из текстуры заменяют фоновые пиксели. Если вы используете смешение, прозрачные пиксели не будут заменять фоновые пиксели. – Unick

Смежные вопросы