PDA

View Full Version : Альфа-канал


AZA
20.08.2006, 23:00
Id... вопросик... Оправдано ли использовать альфаканал... в замену поликам... Если да то когда... и как этого добиться... Я собираюсь использовать альфаканал для создания растений...
Жду ответа... :blink:

Mazz Die
21.08.2006, 09:15
Originally posted by AZA@Aug 20 2006, 22:00
...Оправдано ли использовать альфаканал... в замену поликам... Если да то когда... и как этого добиться... Я собираюсь использовать альфаканал для создания растений...
3454


1) видео карта легче проглатывает полигоны чем текстуру с альфа каналом.
500 треугольников видеокарта просчитает быстрее, чем одну развернет одну 256х256 текстуру с альфой (цифры примерные, прошу не ловить на словах).

2)Когда использовать?
Однако это не значит что нужно все вымоделивать. Лично я руководствуюсь такким правилом:
если можно (можно = поликаунт возрастает допустимо, работы не очень много, качество осбо не пададет) без альфы - делаю без альфы.
Желательно избегать большого скопления альфа текстур.
Если же всетаки надо - помнить о том что есть два типа альфа текстур, точнее два типа просчета альфы:
а) альфа тест - когда альфа канал воспринимается как двух-цветный канал (полностью прозрацный И полностью непрозрачный)
б) альфа бленд - альфа канал воспринимается как полноценный 256 оттеночный канал (ОТ прозрачности ДО непрозрачности)

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

P.S. для растений безусловно нужно использовать альфу...

id
27.08.2006, 23:26
С альфа-тектсурами всегда связано куча вопросов! :-)

Попробуем тут их решить.

Lone Angel
02.09.2006, 11:27
Originally posted by Mazz Die@Aug 21 2006, 07:15
1) видео карта легче проглатывает полигоны чем текстуру с альфа каналом.
500 треугольников видеокарта просчитает быстрее, чем одну развернет одну 256х256 текстуру с альфой (цифры примерные, прошу не ловить на словах).

Нужно уточнить, что alpha-blending выполняется медленнее -- альфа-канал не только для блендинга использоваться может (например как reflection-map и т.п.)

Если же всетаки* надо - помнить о том что есть два типа альфа текстур, точнее два типа просчета альфы:
* * а) альфа тест - когда альфа канал воспринимается как двух-цветный* канал (полностью прозрацный И полностью непрозрачный)
* * б) альфа бленд - альфа канал воспринимается как полноценный 256 оттеночный канал (ОТ прозрачности ДО непрозрачности)


Alpha-test не отменяет alpha-blend'а -- можно (и нужно пользовать alpha-test) при рендере, например, billboard'ов деревьев/кустов. alpha-test не стоит (в плане производительности) ничего, а лишние pixel'ы не пишутся в frame-buffer -- bandwidth экономиться.

Другой вопрос что можно делать alpha-channel однобитным и экономить место в текстуре -- то что в nvdxt называется DXT1C.