Получение последнего отображаемого растрового экрана во Flash - PullRequest
2 голосов
/ 03 июня 2009

Есть ли в AS3 способ доступа к последнему рендеру сцены? Этот результат рендеринга кэшируется где-нибудь доступным? Я специально не могу заново визуализировать сцену в растровое изображение, потому что это будет слишком дорого, поэтому я пытаюсь использовать последний рендер.

Мне это нужно, потому что я пытаюсь сделать некоторые эффекты теплового искажения в определенных границах экрана, и стандартный способ сделать это в 2D - использовать карту смещения для дрожания исходного изображения. Конечно, я открыт для других идей, чтобы сделать тепловые искажения во Flash.

Ответы [ 4 ]

2 голосов
/ 04 июня 2009

Я почти уверен, что у нас нет доступа к этому (хотя я действительно не понимаю, почему). Я знаю, что вспышка только перерисовывает изменения стадии от кадра к кадру. Это можно увидеть, щелкнув правой кнопкой мыши проигрыватель Flash Debug и выбрав «Показать области перерисовки».

Вы можете попробовать посмотреть, что люди делают с помощью Сверточного фильтра и Фильтр карты смещения . Вот несколько примеров:

Там примеры, кажется, работают нормально, с хорошими скоростями, хотя у них довольно маленькие размеры сцены.

1 голос
/ 29 сентября 2009

Если вам не нужен Flash Player 10, вы можете попробовать Фильтр Pixel Bender прикреплен к сцене или объекту DisplayObject, который вы хотите исказить.

Однако, если Flash создает растровое изображение кэша, как это делается для стандартных фильтров, производительность не будет лучше, чем при создании собственного растрового изображения.

1 голос
/ 04 июня 2009

Вы не можете получить доступ к растру, но есть обходной путь.

Вместо того чтобы приложение Sprite (или MovieClip) находилось на сцене, нарисуйте спрайт приложения на растровое изображение и поместите его на сцену. Таким образом, вы визуализируете только один раз, но можете получить доступ к растровому изображению с последнего рендеринга.

Недостатком является то, что Flash отрисовывает все спрайты вашего приложения в каждом кадре (не только грязные прямоугольники).

1 голос
/ 04 июня 2009

Я на 99,9% уверен, что ты не сможешь. Я никогда не встречал упоминаний об этом раньше. Было бы отличной функцией, хотя. Извините, я знаю, что это не особенно полезно.

...