![]() |
BitmapData#draw(...) проблеммы с применением трансформаций
Салют!
Задался задачей рендерить происходящее в игровом мире в Битмапу. Думал контейнер игрового мира не кидать на сцену вообще, а только делать его отпечатки в БитмапДату и Битмапой, которая будет в ДисплейЛисте, выводить. Идея проста и понятна, но вот никак не смог увидеть больше чем первую координатную плоскость иргового мира, а интересного много и на отрицательных координатах... Так же не смог применить масштабирование снимка игрового мира. Трейсил матрицу трансформации - там все ОК! Думал, что у меня не правильная расстановка объектов внутри мира и решил добавить его на сцену для проверки. Все оказалось на своих местах, но плюс ко всему снимок я получил такой как надо...:o А теперь вопрос: Как применить трансформации для ДисплейОбджекта, который отрисовывается в БитмапДату, не имея родителя? |
Пример маленький соберите, на котором трансформация не работает. Так сложно что-то сказать. Вы там clipRect неправильный указываете, что ли? И у вас объекты самодеятельностью на ADDED_TO_STAGE не занимаются? :)
|
Вложений: 1
Вложение 28152(1,23 КБ (1`264 байт)) - скомпилированый пример. По клику добавляет или убирает "игровой мир" со сцены. В битмапе видно результат.
Код: Код AS3:
|
Не пробовал, но, вроде как, люди обкатали на реальных проектах:
http://flashgameblogs.ru/blog/actionscript/1015.html Здесь было: http://www.flasher.ru/forum/blog.php?bt=7632 |
Проблема в вращении по оси Y. Если его убрать, то все нормально отрисовывается.
|
Нашел проблему, но не знаю как сделать все красиво...
В примере я не зря поставил строчку Код AS3:
Короче говоря, пока у объекта null-евая Matrix3d, все работает нормально, но как только вступает в силу ось Z, сразу же вылазит на ружу тот результат, который я показал в примере. Мое решение: Вместо применения матрицы трансформации к миру нужно самостоятельно изменять все объекты мира (попробовал - работает). А чтобы не баловаться с каждым объектом я запихнул мир в контейнер-обертку и провожу манипуляции над целим миром, а снимки делаю не мира, а обертки с миром. Если у кого есть решение получше, буду очень благодарен! Добавлено через 1 минуту Опоздал с постом... Но как я и писал - без Z-трансформации дело не пойдет |
Цитата:
При желании проекцию можете взять у Stage, она будет точно такая же. Как нашел - не спрашивайте. Интуиция и немного экспериментов. Собственно, там больше не с чем экспериментировать было (в 3D), а что проекция потенциально настраивается, я знал раньше. |
2maxkar:
Огромное спасибо! То что надо! 2(expl, vizgl): И Вам спасибо, что не прошли мимо! +,+,+ |
Эксперименты примерно по той же теме.
Может быть, тоже поможет. Кстати, даже если и не пользоваться этими извращениями с отрисовкой в битмапу без родительского контейнера, ручной скейл на основе PerspectiveProjection получается чуть ли не в разы быстрее, чем использование Matrix3D |
| Часовой пояс GMT +4, время: 19:35. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.