78. [junior] PaperVision3D. Начинаем работу с 3d-движком

junior – серия статей для начинающих ActionScript-разработчиков.
Все статьи серии:
http://flashpress.ru/blog/category/junior/

Введение

Наверное, со мной согласится большинство, что 3D эффект в вашем приложении будет выглядеть очень красиво и увлекательно. В этом может помочь движок PaperVision3D. Я прикрепил к статье архив исходников движка, и вы сможете самостоятельно ознакомиться с классами, которые там находятся. Давайте разберем каким образом создается 3D пространство и объекты в нем.

Чтобы немного упростить обучение, обратимся к жизненной аналогии. Когда мы смотрим фильм в режиме онлайн , то сам экран в PaperVision3D- это будет Viewport3D, сам зритель – это будет Camera3D, ну а контент – Scene3D. Хотя правильней сказать, что контент – это будет 3D объекты, которые будут располагаться на сцене. Давайте создадим примитивное, для начала, приложение. Это будет простая вращающаяся сфера. Прежде чем приступим к написанию скрипта, хотел бы объяснить, что в движке означает render. Ну если вернуться к нашей аналогии, то render будет обновление самих кадров на экране.

FlashBuilderFlashIDE
Код для редактора Adobe FlashBuilder
Код для редактора Adobe Flash CS Professional

BasicView

Так же у движка есть класс BasicView который упрощает работу с движком, конструктор создали сами разработчики движка, который находится по пути org\papervision3d\view\BasicView.as . Для того, чтобы использовать этот конструктор достаточно его расширить. Код будет значительно меньше того, что мы писали в прошлый раз.

Примитивы

Как вы уже наверно догадались, сфера – это не единственный примитив. В PaperVision3D есть семь примитивов. Как вы понимаете, у каждого из них есть свои свойства. Некоторые похожи, некоторые нет, мы разберем каждый из них.

Обычная сфера имеет четыре параметра:

  1. материал (о материалах поговорим чуть позже)
  2. радиус
  3. количество сегментов по ширине
  4. количество сегментов по высоте
Здесь должна быть флешка. Установите Flash Player


Закрыть 1. Sphere

Плоскость мы уже немного затрагивали. У плоскости – пять параметров:

  1. как и в остальных примитивах будет материал
  2. ширина
  3. высота
  4. количество сегментов по ширине и высоте
Здесь должна быть флешка. Установите Flash Player


Закрыть 2. Plane

Этот примитив я не буду затрагивать, но просто знайте, что он хорошо подходит для тестирования управления. В него передаем два параметра:

  1. материал
  2. размер

Здесь должна быть флешка. Установите Flash Player


Закрыть 3. PaperPlane

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

  1. материал
  2. радиус
  3. высота
  4. сегменты по ширине
  5. сегменты по высоте
  6. верхний радиус (в случае если радиус верхнего должен равняться нижнему, мы ставим значение “-1”)
  7. вершина цилиндра (здесь мы указываем true – когда будет вершина,false – нет)
  8. аналогично с нижней частью

Здесь должна быть флешка. Установите Flash Player


Закрыть 4. Cylinder

В отличие от остальных примитивов, куб не имеет стандартных параметров. Также, может вы уже заметили, для куба первым параметров есть не материал, а материальный лист. Для того, чтобы передать в новый куб материальный лист, его нужно создать.
Материальный лист находится в папке «org.papervision3d.materials.utils.MaterialsList»
После создания нового материального листа, используем функцию addMaterial(material,’сторона ‘) для добавления в каталог нового материала для определенной стороны куба.
Для куба должно быть шесть материалов, а именно: front-, back-, top-, bottom-, left-, right-. Также хочу добавить, если нужно, чтобы все стороны, в материальном листе, были одинаковыми пишем:

Здесь должна быть флешка. Установите Flash Player


Закрыть 5. Cube

Ничего особенного. Параметры конуса:

  1. материал
  2. радиус
  3. сегменты по шисоте
  4. сегменты по высоте

Не использовал примитив, но уверен, что он не тяжелее, чем с плоскостью.

Здесь должна быть флешка. Установите Flash Player


Закрыть 6. Cone

И наконец последний примитив – стрелка. Так же хорош для тестирования управления. Лично я не понимаю, зачем он, ведь передается всего один параметр – материал (даже размер не изменяется, как у самолетика), разве что, нужен, просто, как фигура.

Здесь должна быть флешка. Установите Flash Player


Закрыть 7. Arrow

Узнать как подключить SWC в ваш проект можно в статье SWC Part1. Что такое swc и как с этим работать

  1. Ссылка на библиотеку Papervision3d.swc;
  2. Исходники движка Papervision3D;
  3. Исходники примера лежат здесь.

Автор: Артур Карпунец
Эту статью прочитали 2142 раз

Возникли вопросы по статье? Не стесняйтесь спрашивать в комментариях или любым другим способом на странице Контакты .

Присоединяйтесь к нам в социальных сетях: ВКонтакте , Twitter и Facebook
Понравилась статья? Буду благодарен если вы поделитесь ссылкой с друзьями:


Комментарии ВКонтакте:




Комментарии Facebook:




Комментарии WordPress: