Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Наложение нескольких полупрозрачных изображений (http://www.flasher.ru/forum/showthread.php?t=157159)

Contemplator 01.06.2011 13:51

Наложение нескольких полупрозрачных изображений
 
Вложений: 1
Приветствую!
В чём суть вопроса: есть несколько полупрозрачных изображений, которые при наложении друг на друга по понятным причинам в месте пересечения выдают некую комбинацию своих прозрачностей (см. рис. 1)... и это по ряду причин ну никак не устраивает - хочется что б при наложении результирующее изображение было как на рис. 2 (по сути как если бы эти 2 графических объекта были полностью непрозрачны, засунуты в один мувиклип, стиль отображения которого был бы выставлен как layer (как сделать это кодом, к слову, не нашёл), и уже у него была б изменена прозрачность) =))
Де-факто: одно изображение - тень от некоего статичного объекта (и таких объектов заведомо много), другое - от подвижного (и их так же достаточно много). Сейчас тени от статичных объектов растрируется вместе с основой (полом) при отрисовке сцены, и хочется что б при пересечении теней от подвижных и от статичных объектов (когда тот или иной подвижный объект переместился в область, затенённую статичным) не видно было спаек (см.рис.3), чего добиться не получается =((
Продумывал пару вариантов, но от обоих пришлось отказаться: 1) засовывать заготовки всех теней в контейнер, задавать ему стиль отображения layer,.. но не нашёл как программно установить стиль отображения, и возникли бы трудности по причине того что пришлось бы заводить несколько таких контейнеров, т.к. картинка многоуровневая (несколько полов); 2) отрисовывать маску, скрывающую затенённые области, и маскировать ей контейнер с тенями от подвижных объектов,.. но опять же пришлось бы плодить много масок ввиду многоуровневости картинки (а тут и о ресурсоёмкости до кучи вспомнил), и не решало бы проблему в случае когда пересекаются тени от двух подвижных объектов (а это тоже возможно)...
В какую сторону копать (будет весело если существует некое тривиальное штатное решение подобной задачи, а я в очередной раз сморозил глупость =)) )?

P.S. переименуйте тему, если что ;)

in4core 01.06.2011 13:54

Рисовать походу умеешь) Последний вариант. Берешь getPixel и накладываешь сверху с таким цветом. усе

Contemplator 01.06.2011 14:00

Цитата:

Сообщение от in4core (Сообщение 1000357)
Последний вариант. Берешь getPixel и накладываешь сверху с таким цветом. усе

тоже не вариант: пол состоит из плиток, плитки разноцветные и со светотенью ;)

iNils 01.06.2011 14:01

Цитата:

стиль отображения которого был бы выставлен как layer (как сделать это кодом, к слову, не нашёл),
Код AS3:

displayObject.blendMode = BlendMode.LAYER


in4core 01.06.2011 14:03

Хм. но на рисунке именно так. Однако если плитки разноцветные - вариантов получения 3его не существует. Точнее я даже представить не могу, что должно получится. Представьте стоит дерево, на дерево мы положили человека - при объединении что будет? Намного понятнее что будет при совмещении 2х разновысотных деревьев

-De- 01.06.2011 14:37

1) Делаеть тени непрозрачными, класть в контейнер, контейнеру ставить прозрачность. Просто и тупо.
2) Напейсать простейший шейдер и будет как в 3 - без проблем.
По-моему стандартные фильтры такого не умеют (с цветом - это LIGHTEN, а вот с альфой - нет).
3) Хотя можно скрестить LIGHTEN с ColorMatrixFilter соответствующим (который цвет перегоняет в альфу). Тени тогда (лучше) только серые, но они наверное и так)
Что быстрее - 2 стандартных фильтра или один шейдер - самому интересно, по идее должен один шейдер быстрее быть =)


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

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.