Рисование перспективных зданий (стиль GTA1 / 2) во Flash? - PullRequest
2 голосов
/ 06 ноября 2010

Кто-нибудь знает, как я могу рисовать здания с трехмерной перспективой, как в оригинальных GTA: http://www.gtanetwork.it/gtaold/pics/screen/gta1_01.jpg во Flash?

Я пытался использовать beginBitmapFill () и рисовал полигоны, но текстура выглядит неправильно, потому что ей не хватает правильной глубины.

У кого-нибудь есть идеи? Не ищите полноценный 3D-движок, я просто хочу, чтобы здания имели глубину, все остальное будет в одной плоскости.

1 Ответ

1 голос
/ 06 ноября 2010

Видите ли, перспективное наложение текстур является одной из основных функций любого 3D-движка. Вот почему они у нас есть. Распределение точек 3D-точек легко выполнить, просто закрасив полигоны цветами, даже z-буферизацией - все это довольно просто.

Перспективное наложение текстур идет немного дальше ... Оно предполагает наличие поставщика текстуры и преобразователя, и преобразователь должен разделить вершины (для реальной перспективы), затем применить аффинные преобразования к растровому изображению, нарисовать каждую из них ... Это все сложно поддерживать, если вы хотите сделать это в специальном (или даже на временной шкале ...) коде, который будет ОЧЕНЬ раздражающим. 3D-движки предоставляют гораздо больше функций (также неплохо было бы использовать затенение), и их ОЧЕНЬ легко обслуживать.

Я бы порекомендовал PaperVision 3D, хотя вам придется разделить вершины самостоятельно (или AFAIK PV3D не поддерживает это автоматически).

И прежде чем кто-либо скажет, что это было бы легко сделать в обычном цикле через BitmapData с выделением пикселей ... Это не так. Перспектива не линейная - и нелинейный цикл будет очень медленным.

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