forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Вопрос об альфа-текстуре. (http://forum.boolean.name/showthread.php?t=4179)

Belamore 17.08.2007 09:43

Вопрос об альфа-текстуре.
 
Итак, уважаемые, сабж!
У меня есть текстура:

И альфаканал к ней:


Вопрос: как совместить эти две текстуры в блитзе так, чтобы 2-я текстура была бы альфаканалом первой (должны получиться втки с листьями) :pardon:

Заранее спасибо за помощь.

Damp 17.08.2007 12:54

Re: Вопрос об альфа-текстуре.
 
Наверно использовать их в разных слоях и второй поставить флаг альфа...?

Belamore 17.08.2007 13:23

Re: Вопрос об альфа-текстуре.
 
Damp, я знаю что если сохранить текстуру с альфаканалом в DS или TGA то в игре с флагом 2 он будет работать, но что делать, если у меня эти 2 изображения отдельно? Или они вовсе будут генерироваться во время игры? Тогда загрузить DDSку с альфой не получится! Какие будут предложения?

IGR 17.08.2007 13:30

Re: Вопрос об альфа-текстуре.
 
вот похожая тема , там вроде решили вопрос
http://www.boolean.name/showthread.php?t=4322

Belamore 17.08.2007 13:34

Re: Вопрос об альфа-текстуре.
 
IGR, там совершенно не то. Там народ несколько текстур смешивают на 1 поверхности а мне надо 1 текстура с альфой.

H@NON 17.08.2007 14:14

Re: Вопрос об альфа-текстуре.
 
посмотри команду entityblend.

tormoz 17.08.2007 19:13

Re: Вопрос об альфа-текстуре.
 
4- masked

Belamore 17.08.2007 23:10

Re: Вопрос об альфа-текстуре.
 
tormoz, мне именно альфа нужна а не маска...

moka 18.08.2007 01:23

Re: Вопрос об альфа-текстуре.
 
Ну смотри, ты загрузишь 2 текстуры, чтобы достичь альфы, что увеличивает в 2 раза больше нагрузку на видео память. Не проще зайти в фотошоп, открыть альфа карту, идём в меню: Select > Color Range (до этого в палитре ставим первым чёрный цвет), ползунок на 200, и ок. далее создай слой и залей любым цветом, и скопируй весь новый слой. Далее открой саму тексу. Вставь скопированную картинку, и удерживая Ctrl нажми на иконку этого вставленного слоя. Затем выдели текстуру, и нажми Delete. Всё проще чем на словах ;) В итоге у тебя меньше нагрузки и быстрее загрузка. Есть и другой способ, он не нагружает видео память, но увеличивает длительность загрузки на Много! Там нужно читать пиксель у альфа тексы, и изменять альфу того же пикселя у дифуз тексы.

Belamore 18.08.2007 08:51

Re: Вопрос об альфа-текстуре.
 
MoKa, нельзя ли подробнее про второй способ?

moka 19.08.2007 03:40

Re: Вопрос об альфа-текстуре.
 
Хм, есть такие комманды как ReadPixel и WritePixel. Так вот в справке есть пример по работе с ними. Этими коммандами можно получать HEX код цвета. Преобразовать можно смещениями (много раз светилась функция), а можно и коммандой DottedIP ;). (она помедленее будет). Далее уже имея на руках RGBA всех пикселей с диффуз карты (простая текстура) и с альфа карты, уже делать махинации: изменять A для диффуз карты в зависимости от R от альфа карты (т.к. там чёрно белая то все R,G и B будут равны). Собственно и всё. ;)

ABTOMAT 19.08.2007 09:15

Re: Вопрос об альфа-текстуре.
 
Я считаю ИМХО юзай DDS и не парься.

Belamore 19.08.2007 09:17

Re: Вопрос об альфа-текстуре.
 
MoKa, т.е. ты хочешь сказать что у текстуры кроме R,G и B есть ещё и Alpha? (раньше думал, что она в отд. буфере хранится). Ну ладна, буду пробывать, спасибо!

moka 19.08.2007 10:28

Re: Вопрос об альфа-текстуре.
 
Belamore? Угу есть, и Hex достаётся же тоже 4 значный.


Часовой пояс GMT +4, время: 06:07.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot