as3 - преобразование растрового изображения обратно в вектор - PullRequest
0 голосов
/ 20 октября 2018

Итак, я нашел источник V-CAM, сейчас я им пользуюсь, и, тем не менее, вполне доволен, возможно ли растровое изображение без переключения, когда объекты с растровым изображением просматриваются камерой?Например, допустим, у меня есть векторный мувиклип с набором векторных изображений, я переключаю экспорт как растровое изображение на мувиклип из моей IDE, теперь можно было бы добавить к моему VCAM, что все в его представлении (это изменяет размер стадии) переключает или перерисовывает обратно в вектор, в то время как остальная часть карты / мувиклипа все еще находится в растровом изображении?И когда VCAM удаляется, то, что было смещено с растрового изображения на вектор, смещается обратно к растровому изображению?

    var camColor: ColorTransform = new ColorTransform();
var parentColor: ColorTransform = new ColorTransform();
var cX: Number;
var cY: Number;
var sX: Number;
var sY: Number;
this.visible = false;
var oldMode: String = stage.scaleMode;
stage.scaleMode = StageScaleMode.EXACT_FIT;
cX = stage.stageWidth / 2;
cY = stage.stageHeight / 2;
sX = stage.stageWidth;
sY = stage.stageHeight;
stage.scaleMode = oldMode;
camColor = this.transform.colorTransform;
parentColor = this.parent.transform.colorTransform;
camControl(new Event(Event.ENTER_FRAME));
addEventListener(Event.ENTER_FRAME, camControl);
addEventListener(Event.REMOVED, resetStage);
function camControl(event: Event): void {
    camColor = this.transform.colorTransform;
    parent.transform.colorTransform = camColor;
    var xScale: Number = sX / this.width;
    var yScale: Number = sY / this.height;
    parent.x = cX - (this.x * xScale);
    parent.y = cY - (this.y * yScale);
    parent.scaleX = xScale;
    parent.scaleY = yScale;
}
function resetStage(event: Event): void {
    removeEventListener(Event.ENTER_FRAME, camControl);
    parent.transform.colorTransform = parentColor;
    parent.scaleX = 1;
    parent.scaleY = 1;
    parent.x = 0;
    parent.y = 0;
}

1 Ответ

0 голосов
/ 22 октября 2018

Я думаю, вам лучше использовать другую камеру с более высокими размерами растрового изображения (2x-4x), чтобы визуализировать сцены из вектора, которые, по вашему мнению, слишком пикселизированы.С точки зрения экспорта, просто экспортируйте растровые изображения персонажа в 2–4 раза больше, или вы можете просто использовать его как вектор где-то в вашем приложении, может быть скрытым, и выполнять рендеринг в реальном времени, когда это необходимо, или просто иметь его в списке отображения в виде вектора.а не растровое изображение.

В случае, если вам нужно иметь сложную векторную форму в движке на основе растрового изображения, вы можете использовать растровое рисование одного источника в реальном времени в различных положениях / поворотах, а затем использовать эти визуализированные растровые изображения дляполучить представление.Проверьте игру "Enigmata: Stellar War" на эту технику, как она выглядит в процессе (подсказка: когда она говорит "Загрузка босса", она делает все рендеринг за сценой).

Получение векторизованного источникарастровые изображения формы намного более потребляют процессор, чем где-то хранится готовый векторизованный источник.Также вы не сможете восстановить исходный вектор в точном виде, поскольку преобразование вектора в растровое изображение является преобразованием с потерями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...