Simple3D: загрузка 3D-моделей в формате ASE

Вчера мы рассмотрели, как в Simple3D можно создавать простые трёхмерные примитивы. А сегодня более подробно остановимся на загрузке в flash-приложения 3D-моделей в формате ASE.

Но сперва нам нужна сама модель. Пусть это будет что-то достаточно простое. Например, сфера (файл world.ase).

Код ActionScript 3.0:

/* импорт классов */ import com.simple3d.loaders.*; import flash.events.Event; /* создаём объект класса ASE в качестве единственного параметра указываем коэффициент масштабирования модели */ var ase:ASE = new ASE(5); /* окрашиваем модель в красный цвет */ ase.color = 0xff0000; /* позиционируем модель на сцене флеш-ролика */ ase.x = 275; ase.y = 200; /* добавляем модель на сцену флеш-ролика */ addChild(ase); /* поворачиваем объект */ ase.rotationX = -90; /* загружаем 3D-модель */ ase.loadFile("world.ase"); /* функция, которая будет вызвана после загрузки ASE-модели */ ase.addEventListener(ASE.LOAD_COMPLETE, loadComplete); function loadComplete(event:Event):void { addEventListener(Event.ENTER_FRAME, render); } /* вращаем модель */ function render(event:Event):void { ase.rotationY++; ase.render(); }

Результат:

Да, смотрится странно... Но давайте добавим нашей сфере текстуру (как и в случае с примитивами, в качестве текстуры надо использовать объект класса BitmapData). Текстуру возьмём из вчерашнего урока:

Текстура планеты Земля

Итак, добавляем текстуру...

Код ActionScript 3.0:

/* импорт классов */ import com.simple3d.loaders.*; import flash.events.Event; /* создаём объект класса ASE первый параметр отвечает за масштабирование модели второй параметр - это текстура */ var ase:ASE = new ASE(5,new Earthmap()); /* окрашиваем модель в красный цвет */ ase.color = 0xff0000; /* позиционируем модель на сцене флеш-ролика */ ase.x = 275; ase.y = 200; /* добавляем модель на сцену флеш-ролика */ addChild(ase); /* поворачиваем объект */ ase.rotationX = -90; /* загружаем 3D-модель */ ase.loadFile("world.ase"); /* функция, которая будет вызвана после загрузки ASE-модели */ ase.addEventListener(ASE.LOAD_COMPLETE, loadComplete); function loadComplete(event:Event):void { addEventListener(Event.ENTER_FRAME, render); } /* вращаем модель */ function render(event:Event):void { ase.rotationY++; ase.render(); }

Результат:

Конечно, Земли получилась немного ... помятой :-) Дело в том, что мы использовали максимально упрощённую модель сферы. Но тут важен сам принцип работы, а не красота результата.

Скачать исходники к данному уроку можно здесь (fla под Adobe Flash CS5.5 + файл world.ase).

Автор: admin

Дата добавления: 2012-06-15

Просмотров: 5123

Рейтинг поста: +9-

Правила перепечатки

Социальные закладки:
Комментарии:
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2013-11-12
Владимир, Simple3D предназначена для реализации простых задач и полноценным 3d-движком не является.
Комментатор
Комментарий добавил(а): Владимир
Дата добавления: 2013-11-11
А как присвоить два материала одному АSE файлу в котором две модели, или два материала на одну модель?
Добавить комментарий:







[ + ] помощь по форматирование текста

Идиот-тест

Если все обязательные поля (отмечены * ) заполнены необходимой информацией, то нажимаем кнопку Добавить комментарий.

Меню
Подписка
Рубрики
Метки
Последние комментарии
Рейтинг постов
Реклама
Друзья
География гостей
Статистика
Яндекс.Метрика