![]() |
…и это странно
|
на самом деле не очень... В первом случае от единицы отнимается значение альфа-канала и потом умножается на альфа-канал. Т.е. если изначально альфа 0.5, то 0.5*0.5=0,25 на выходе.
Во втором случае там единица и соответственно 0.5*1 = 0.5 на выходе. |
Мне казалось, что вычитаться должна альфа источника, а она у нас ноль, так что в обоих случаях будет 0.5
|
Цитата:
|
Партизан, к сожалению, это уже будет другой тип блендинга (Add). Для белых объектов он действительно работает, но если вместо этого кружка взять что-нибудь цветастое, получится уже совсем другая картина (через объект будет просвечивать фон). А мне нужен имено обычный альфа-блендинг.
|
Ничего странного. Это работает только по-случайности. Будь бэкграундом другой цвет, все было бы иначе.
Например, конечный цвет вычисляется так: Код AS3:
В случае с Код AS3:
ONE_MINUS_SOURCE_ALPHA = 1 - 0.5 = 0.5 Бекграунд возьмем [0, 0, 1] Итого получаем Код AS3:
Если мы поделим в шейдере цвет на альфу, то получим Код AS3:
Если же не делить в шейдере и взять Код AS3:
Код AS3:
Но если взять другой цвет ([0, 0, 1, 0.5]) и другой бэкграунд ([1, 1, 1]), то получим Код AS3:
Upd: пока писал, уже ответили ) |
Цитата:
|
Цитата:
Добавлено через 1 минуту Ох мы навалились =) ну тема действительно такая, что может немножечко зарябить в глазах. |
Партизан. Я на цветную картинку заменил исходник, чтобы продемонстрировать:
http://i.imgur.com/aHTgTcq.jpg Правая картинка получилась с использованием Context3DBlendFactor.SOURCE_ALPHA, Context3DBlendFactor.ONE Как видишь, цвет фона влияет складывается со всем изображением. (если бы там было что-то нарисовано, то оно бы прямо просвечивало) А я хочу добиться, чтобы получилась как нижняя картинка. |
Цитата:
|
| Часовой пояс GMT +4, время: 17:31. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.