статьи по Yogurt3D
[ Поделиться ]
[ Спасибо! ]
|
19:42
Этот туториал иллюстрирует установку Yogurt3D и Adobe Stage3D API на ваш компьютер.
Вы можете так же использовать Adobe Flash или другие альтернативные IDE, такие как FlashDevelop для создания вашего Yogurt3D приложения.
Для ADOBE FLASH BUILDER:
Шаг 1: скачивание Yogurt3D
скачайте Yogurt3D "Ayran" релиз
распакуйте .swc файл в папку где будет находиться ваш проект
Шаг 2: скачивание Flash Player 11 Public Beta если у вас ещё нет его
скачайте и установите Flash Player 11 Beta
Шаг 3: скачивание и установка FLEX SDK для Molehill/Stage3D
скачайте последний Flex SDK 4.5.1
распакуйте Flex SDK в папку C:\Program Files\Adobe\Adobe Flash Builder 4\sdks\4.5.1
скачайте flashplayer11_b2_playerglobal.swc файл, переименуйте в playerglobal.swc и копируйте в <Flex SDK folder>\frameworks\libs\player\11.0.
Шаг 4: настройки FlashBuilder
создание вашего проекта
добавьте Yogurt3D.swc к вашему проекту
откройте диалог Project -> Properties и перейдите в настройки ActionScript Build Path
[img]http://www.yogurt3d.com/_img/tutorial/project%20menu.jpg[/img]
выберите вкладку Library Path
нажмите кнопку Add SWC и выберите файл Yogurt3D.swc
[img]http://www.yogurt3d.com/_img/tutorial/project%20menu.jpg[/img]
связывание Flex SDK с вашим проектом
Шаг 5: пользуйтесь!
погрузитесь в мир Yogurt3D и 3D Flash! Туториалы и Example Pack это быстрейший путь для начала
если вам нужна какая то помощь то просто посетите Форум или на пишите на e-mail
Вы можете так же использовать Adobe Flash или другие альтернативные IDE, такие как FlashDevelop для создания вашего Yogurt3D приложения.
Для ADOBE FLASH BUILDER:
Шаг 1: скачивание Yogurt3D
Шаг 2: скачивание Flash Player 11 Public Beta если у вас ещё нет его
Шаг 3: скачивание и установка FLEX SDK для Molehill/Stage3D
Шаг 4: настройки FlashBuilder
[img]http://www.yogurt3d.com/_img/tutorial/project%20menu.jpg[/img]
[img]http://www.yogurt3d.com/_img/tutorial/project%20menu.jpg[/img]
- откройте Project -> Properties диалог и перейдите в настройки ActionScript Compiler
- нажмите "Configure Flex SDKs.." ссылка справа
- добавьте загруженный Flex SDK к списку Installed Flex SDKs с новым именем (Flex 4.5.1)
- нажмите ОК и вернитесь в настройки ActionScript Compiler
- выберите вашу новую Flex SDK Version
- Use a specific version:11.0.0
- измените swf версию с Additional compile arguments на -swf-version=13
Шаг 5: пользуйтесь!
надеюсь этот урок поможет вам установить и начать работать с yogurt3d
данный туториал является переводом официального
оригинал вы можете найти сдесь
пожалуйста оставляйте ваши комментарии и пожелания
в дальнейшем туториалы будут представлять из себя отрывки кода с комментариями
к сожалению ответить на ваши вопросы относительно кода Я не смогу т.к не работал ни с кодом, ни с движком
package
{
import com.yogurt3d.Yogurt3D;
import com.yogurt3d.core.cameras.Camera;
import com.yogurt3d.core.events.Yogurt3DEvent;
import com.yogurt3d.core.materials.MaterialFill;
import com.yogurt3d.core.sceneobjects.SceneObjectContainer;
import com.yogurt3d.presets.primitives.sceneobjects.BoxSceneObject;
import flash.display.Sprite;
import flash.events.Event;
import flash.geom.Vector3D;
import mx.containers.Box;
[SWF(width="400", height="300", frameRate="60", wmode="direct")]
public class Tutorial1 extends Sprite
{
public var container:SceneObjectContainer;
public function Tutorial1()
{
// Мы инициализируем Out Engine
Yogurt3D.instance.addEventListener( Yogurt3DEvent.READY , onEngineReady );
Yogurt3D.instance.init( this.stage );
}
public function onEngineReady( _e:Event ):void{
// Мы создаём нашу начальную сцену
Yogurt3D.instance.defaultSetup( 400, 300 );
// Установите цвет фона на Red
Yogurt3D.instance.defaultScene.sceneColor = 0xFF0000;
// Создайте green box
var box1:BoxSceneObject = new BoxSceneObject();
box1.material = new MaterialFill(0x00FF00);
box1.transformation.x = -10;
// Создайте blue box
var box2:BoxSceneObject = new BoxSceneObject();
box2.material = new MaterialFill(0x0000FF);
box2.transformation.x = 10;
// Создайте container и поместите box'ы внутрь
container = new SceneObjectContainer();
container.addChild( box1 );
container.addChild( box2 );
// добавьте container на сцену
Yogurt3D.instance.defaultScene.addChild( container );
// Создайте произвольную camerа
var camera:Camera = Yogurt3D.instance.defaultCamera as Camera;
// позиция и вращение camera
camera.transformation.z = 100;
camera.transformation.y = 10;
camera.transformation.lookAt( new Vector3D(0, 0, 0 ) );
// начните rendering
Yogurt3D.instance.startAutoUpdate();
// на вводе в кадр вращайте container
Yogurt3D.instance.enginePreUpdateCallback = function():void{
container.transformation.rotationY++;
};
}
}
}
{
import com.yogurt3d.Yogurt3D;
import com.yogurt3d.core.cameras.Camera;
import com.yogurt3d.core.events.Yogurt3DEvent;
import com.yogurt3d.core.materials.MaterialFill;
import com.yogurt3d.core.sceneobjects.SceneObjectContainer;
import com.yogurt3d.presets.primitives.sceneobjects.BoxSceneObject;
import flash.display.Sprite;
import flash.events.Event;
import flash.geom.Vector3D;
import mx.containers.Box;
[SWF(width="400", height="300", frameRate="60", wmode="direct")]
public class Tutorial1 extends Sprite
{
public var container:SceneObjectContainer;
public function Tutorial1()
{
// Мы инициализируем Out Engine
Yogurt3D.instance.addEventListener( Yogurt3DEvent.READY , onEngineReady );
Yogurt3D.instance.init( this.stage );
}
public function onEngineReady( _e:Event ):void{
// Мы создаём нашу начальную сцену
Yogurt3D.instance.defaultSetup( 400, 300 );
// Установите цвет фона на Red
Yogurt3D.instance.defaultScene.sceneColor = 0xFF0000;
// Создайте green box
var box1:BoxSceneObject = new BoxSceneObject();
box1.material = new MaterialFill(0x00FF00);
box1.transformation.x = -10;
// Создайте blue box
var box2:BoxSceneObject = new BoxSceneObject();
box2.material = new MaterialFill(0x0000FF);
box2.transformation.x = 10;
// Создайте container и поместите box'ы внутрь
container = new SceneObjectContainer();
container.addChild( box1 );
container.addChild( box2 );
// добавьте container на сцену
Yogurt3D.instance.defaultScene.addChild( container );
// Создайте произвольную camerа
var camera:Camera = Yogurt3D.instance.defaultCamera as Camera;
// позиция и вращение camera
camera.transformation.z = 100;
camera.transformation.y = 10;
camera.transformation.lookAt( new Vector3D(0, 0, 0 ) );
// начните rendering
Yogurt3D.instance.startAutoUpdate();
// на вводе в кадр вращайте container
Yogurt3D.instance.enginePreUpdateCallback = function():void{
container.transformation.rotationY++;
};
}
}
}
package
{
import com.yogurt3d.Yogurt3D;
import com.yogurt3d.core.events.Yogurt3DEvent;
import com.yogurt3d.core.lights.Light;
import com.yogurt3d.core.materials.MaterialDiffuseFill;
import com.yogurt3d.core.materials.MaterialFill;
import com.yogurt3d.core.sceneobjects.SceneObject;
import com.yogurt3d.presets.primitives.sceneobjects.BoxSceneObject;
import flash.display.Sprite;
import flash.events.Event;
import flash.geom.Vector3D;
[SWF(width="400", height="300")] // initialize SWF size to be 800 by 600
public class BasicLight extends Sprite
{
// мы определили переменную SceneObject как элемент: box типа BoxSceneObject
public var box:BoxSceneObject;
// начальная точка: иннициализируем движок Yogurt3D
public function BasicLight()
{
Yogurt3D.instance.addEventListener( Yogurt3DEvent.READY, onContextReady );
// инициализируем Yogurt3D событие
Yogurt3D.instance.init( this.stage );
}
// создадим сцену и начнём отображение когда Context3D будет готов
public function onContextReady( _e:Event ):void{
// здесь мы инициализируем сцену. ничего на экран не выводится пока.
// инициализируйте ваш Yogurt3D с произвольными установками (scene, camera, renderer и т.д.)
Yogurt3D.instance.defaultSetup(400,300);
// изменим цвет фона на сцене (сцена по умолчанию) на красный (0xFF0000 in hex rgb)
Yogurt3D.instance.defaultScene.sceneColor = 0xEFEFEF;
// создадим actual box обьект с произвольными параметрами (в начале координат)
box = new BoxSceneObject();
// добавим материал в box: заполним зелёным, непрозрачным диффузором
box.material = new MaterialDiffuseFill( 0x00FF00,1 );
// просто добавим box на сцену. box появится произвольно на сцене
Yogurt3D.instance.defaultScene.addChild( box );
// установки камеры
// мы имеем камеру по умолчанию на сцене. давайте изменим её положение на -20 по оси z
Yogurt3D.instance.defaultCamera.transformation.position = new Vector3D( 0,10,-30 );
// и пусть камера смотрит на начало координат (0,0,0)
Yogurt3D.instance.defaultCamera.transformation.lookAt( new Vector3D );
// редактирование света
// мы создадим новый источник света с произвольными параметрами.
// направление света, значит, что световые лучи параллельны, так же как если бы они приходили из источника в бесконечности.
var light:Light = new Light( Light.DIRECTIONAL_LIGHT );
// установим позицию источника света
light.transformation.position = new Vector3D(-10,45,-10);
// и он направляется на сцену
light.transformation.lookAt( new Vector3D );
// добавим вновь созданный световой обьект на сцену
Yogurt3D.instance.defaultScene.addChild( light );
// сейчас мы готовы отобразить сцену
// начало рендеринга
Yogurt3D.instance.startAutoUpdate();
// регистрация обратного вызова функции названа до отображения каждого кадра
Yogurt3D.instance.enginePreUpdateCallback = onEnterFrame;
}
// это называется перед отрисовкой каждого кадра: вращение box'a вокруг оси y
public function onEnterFrame( ):void{
box.transformation.rotationY+=1; // добавление вращения на 1 градус
}добавление вращения на 1 градус
}
}
этот и предыдущий урок можно найти
на странице http://www.yogurt3d.com/support/tutorials
по заголовкам Quik Start tutorial и Basic lighting tutorial
{
import com.yogurt3d.Yogurt3D;
import com.yogurt3d.core.events.Yogurt3DEvent;
import com.yogurt3d.core.lights.Light;
import com.yogurt3d.core.materials.MaterialDiffuseFill;
import com.yogurt3d.core.materials.MaterialFill;
import com.yogurt3d.core.sceneobjects.SceneObject;
import com.yogurt3d.presets.primitives.sceneobjects.BoxSceneObject;
import flash.display.Sprite;
import flash.events.Event;
import flash.geom.Vector3D;
[SWF(width="400", height="300")] // initialize SWF size to be 800 by 600
public class BasicLight extends Sprite
{
// мы определили переменную SceneObject как элемент: box типа BoxSceneObject
public var box:BoxSceneObject;
// начальная точка: иннициализируем движок Yogurt3D
public function BasicLight()
{
Yogurt3D.instance.addEventListener( Yogurt3DEvent.READY, onContextReady );
// инициализируем Yogurt3D событие
Yogurt3D.instance.init( this.stage );
}
// создадим сцену и начнём отображение когда Context3D будет готов
public function onContextReady( _e:Event ):void{
// здесь мы инициализируем сцену. ничего на экран не выводится пока.
// инициализируйте ваш Yogurt3D с произвольными установками (scene, camera, renderer и т.д.)
Yogurt3D.instance.defaultSetup(400,300);
// изменим цвет фона на сцене (сцена по умолчанию) на красный (0xFF0000 in hex rgb)
Yogurt3D.instance.defaultScene.sceneColor = 0xEFEFEF;
// создадим actual box обьект с произвольными параметрами (в начале координат)
box = new BoxSceneObject();
// добавим материал в box: заполним зелёным, непрозрачным диффузором
box.material = new MaterialDiffuseFill( 0x00FF00,1 );
// просто добавим box на сцену. box появится произвольно на сцене
Yogurt3D.instance.defaultScene.addChild( box );
// установки камеры
// мы имеем камеру по умолчанию на сцене. давайте изменим её положение на -20 по оси z
Yogurt3D.instance.defaultCamera.transformation.position = new Vector3D( 0,10,-30 );
// и пусть камера смотрит на начало координат (0,0,0)
Yogurt3D.instance.defaultCamera.transformation.lookAt( new Vector3D );
// редактирование света
// мы создадим новый источник света с произвольными параметрами.
// направление света, значит, что световые лучи параллельны, так же как если бы они приходили из источника в бесконечности.
var light:Light = new Light( Light.DIRECTIONAL_LIGHT );
// установим позицию источника света
light.transformation.position = new Vector3D(-10,45,-10);
// и он направляется на сцену
light.transformation.lookAt( new Vector3D );
// добавим вновь созданный световой обьект на сцену
Yogurt3D.instance.defaultScene.addChild( light );
// сейчас мы готовы отобразить сцену
// начало рендеринга
Yogurt3D.instance.startAutoUpdate();
// регистрация обратного вызова функции названа до отображения каждого кадра
Yogurt3D.instance.enginePreUpdateCallback = onEnterFrame;
}
// это называется перед отрисовкой каждого кадра: вращение box'a вокруг оси y
public function onEnterFrame( ):void{
box.transformation.rotationY+=1; // добавление вращения на 1 градус
}добавление вращения на 1 градус
}
}
этот и предыдущий урок можно найти
на странице http://www.yogurt3d.com/support/tutorials
по заголовкам Quik Start tutorial и Basic lighting tutorial
Программа в этом уроке, по существу тоже самое, что и Basic Lighting Tutorial.
На сей раз, однако, вместо того, что бы обновлять сцену на кадре, мы используем
tick manager и обновляем сцену каждый тик таймера.
tick manager передаёт объекту Time Info, так что бы мы могли отслеживать время.
package
{
importcom.yogurt3d.Yogurt3D;
importcom.yogurt3d.core.events.Yogurt3DEvent;
importcom.yogurt3d.core.lights.Light;
importcom.yogurt3d.core.managers.tickmanager.TickManager;
importcom.yogurt3d.core.managers.tickmanager.TimeInfo;
importcom.yogurt3d.core.materials.MaterialDiffuseFill;
importcom.yogurt3d.core.materials.MaterialFill;
importcom.yogurt3d.core.objects.interfaces.ITickedObject;
importcom.yogurt3d.core.sceneobjects.SceneObject;
importcom.yogurt3d.presets.primitives.sceneobjects.BoxSceneObject;
importflash.display.Sprite;
importflash.events.Event;
importflash.geom.Vector3D;
[SWF(width="800", height="600", frameRate="120")]// инициализация SWF с фиксированной скоростью кадров 120 fps
/* Это время нашего класса реализует ITickedObject интерфейс. Отсюда, должен
выполняться метод updateWithTimeInfo(_timeInfo:TimeInfo)*/
public class Y3D_TimingTest extends Sprite implements ITickedObject
{
public var box:BoxSceneObject;
// конструктор, так же как в предыдущих уроках, инициализирует движок
public function Y3D_TimingTest()
{
Yogurt3D.instance.addEventListener( Yogurt3DEvent.READY, onContextReady );
Yogurt3D.instance.init( this.stage );
}
// инициализация сцены с произвольными установками, добавления box'а и света
public function onContextReady( _e:Event ):void{
Yogurt3D.instance.defaultSetup( );
Yogurt3D.instance.defaultScene.sceneColor = 0xFF0000;
box = new BoxSceneObject();
box.material = new MaterialDiffuseFill( 0x00FF00,1 );
Yogurt3D.instance.defaultScene.addChild( box );
Yogurt3D.instance.defaultCamera.transformation.position = new Vector3D( 0,0,-20 );
Yogurt3D.instance.defaultCamera.transformation.lookAt( new Vector3D );
var light:Light = new Light( Light.DIRECTIONAL_LIGHT );
light.transformation.position = new Vector3D(-10,-10,-10);
light.transformation.lookAt( [/color]new Vector3D );
Yogurt3D.instance.defaultScene.addChild( light );
[color=green]// начать отображение контура
Yogurt3D.instance.startAutoUpdate();
// регистрация объекта Y3D_TimingTest в Tick Manager
TickManager.registerObject( this );
}
// Это метод обновления сцены согласно time info
// Tick manager тикает каждый кадр
// timeInfo имеет 3 вида информации времени
// systemTime:
// objectTime:
// deltaTime:
public function updateWithTimeInfo(_timeInfo:TimeInfo):void{
// вращение box'a согласно объекту Time info
box.transformation.rotationY = _timeInfo.objectTime / 1000 * 60;
}
}
}
Spot Light Tutorial
package
{
import com.yogurt3d.Yogurt3D;
import com.yogurt3d.core.events.Yogurt3DEvent;
import com.yogurt3d.core.lights.Light;
import com.yogurt3d.core.lights.RenderableLight;
import com.yogurt3d.core.materials.MaterialDiffuseFill;
import com.yogurt3d.presets.primitives.sceneobjects.PlaneSceneObject;
import com.yogurt3d.core.managers.tickmanager.TickManager;
import com.yogurt3d.core.managers.tickmanager.TimeInfo;
import com.yogurt3d.core.objects.interfaces.ITickedObject;
import flash.display.Sprite;
import flash.events.Event;
import flash.geom.Vector3D;
[SWF(width="400", height="300")]
public class SpotLightTutorial extends Sprite implements ITickedObject
{
var spot1:Light;
var spot2:RenderableLight;
// starting point: initialize the Yogurt3D engine
public function SpotLightTutorial()
{
Yogurt3D.instance.addEventListener( Yogurt3DEvent.READY, onContextReady );
Yogurt3D.instance.init( this.stage );
}
// Создадим сцену и начнём рендеринг, когда будет готов Context3D
public function onContextReady( _e:Event ):void{
// Инициализируем движок Yogurt3D с произвольными установками (scene, camera, renderer etc.)
Yogurt3D.instance.defaultSetup(400,300);
// изменим цвет фона сцены в Yogurt3D на синий
Yogurt3D.instance.defaultScene.sceneColor = 0x6b9cc4;
// создадим плоскость 10 на 10, выполняющую функции пола
// по умолчанию плоскость лежит в y = 0
var ground:PlaneSceneObject = new PlaneSceneObject(10,10);
// установим цвет света на коричневый
ground.material = new MaterialDiffuseFill( 0xFFFFFF);
Yogurt3D.instance.defaultScene.addChild( ground);
// Настройки камеры
// У нас на сцене уже есть камера по умолчанию. Чуть-чуть поднимем камеру от пола и посмотрим на начало координат
Yogurt3D.instance.defaultCamera.transformation.position = new Vector3D( 8, 10, 8 );
Yogurt3D.instance.defaultCamera.transformation.lookAt( new Vector3D );
// Добавление Spot Light
// создадим первый spot light с желтоватым цветом
spot1 = new Light( Light.SPOT_LIGHT, 0xffea00, 1);
// установим позицию источника света
spot1.transformation.position = new Vector3D(5,5,-5);
// и направим его в начало координат сцены
spot1.transformation.lookAt(new Vector3D(0,0,0));
spot1.innerConeAngle = 20;
spot1.outerConeAngle = 30;
// добавим вновь созданный световой объект на сцену
Yogurt3D.instance.defaultScene.addChild( spot1 );
// Давайте добавим второй spot light, на этот раз используя класс RenderableLight.
// RenderableLight такой же как и класс Light за исключением того, что источник света видимый
// Это очень полезно, для целей разработки или дебагинга.
spot2 = new RenderableLight(Light.SPOT_LIGHT, 0xd957c2); // create as a purple spot light
spot2.transformation.position = new Vector3D(0,5,0); // hangs just above the origin
spot2.light.innerConeAngle = 20;
spot2.light.outerConeAngle = 30;
// снова посмотрим в начало координат ( на этот раз мы добавим маленькую анимацию)
spot2.transformation.lookAt( new Vector3D );
// добавим свет на сцену
Yogurt3D.instance.defaultScene.addChild( spot2 );
// теперь мы готовы к рендеру сцены
// начнём рендер
Yogurt3D.instance.startAutoUpdate();
// зарегистрируем Y3D_TimingTest объект в Tick Manager
TickManager.registerObject( this );
}
// это называется до рендеринга каждого кадра
// мы хотим анимировать spot2 (фиолетовый отображаемый spot)
public function updateWithTimeInfo(_timeInfo:TimeInfo):void{
// изменим положение света, согласно информации objectTime
spot2.transformation.lookAt(new Vector3D(Math.sin( _timeInfo.objectTime / 1000 ) * 5, 0, Math.sin( _timeInfo.objectTime / 1000 ) * 5));
}
}
}
package
{
import com.yogurt3d.Yogurt3D;
import com.yogurt3d.core.events.Yogurt3DEvent;
import com.yogurt3d.core.sceneobjects.SkyBox;
import com.yogurt3d.core.texture.CubeTextureMap;
import flash.display.Sprite;
import flash.geom.Matrix3D;
import flash.geom.Vector3D;
[SWF(width="400", height="300")]
public class SkyBoxTutorial extends Sprite
{
/**
* Встроим изображение скайбокса
**/
[Embed(source="../resources/hills_negative_x.png")]
private var embednegativeX:Class;
[Embed(source="../resources/hills_negative_y.png")]
private var embednegativeY:Class;
[Embed(source="../resources/hills_negative_z.png")]
private var embednegativeZ:Class;
[Embed(source="../resources/hills_positive_x.png")]
private var embedpositiveX:Class;
[Embed(source="../resources/hills_positive_y.png")]
private var embedpositiveY:Class;
[Embed(source="../resources/hills_positive_z.png")]
private var embedpositiveZ:Class;
public function SkyBoxTutorial()
{
super();
Yogurt3D.instance.addEventListener( Yogurt3DEvent.READY, onContextReady );
Yogurt3D.instance.init( this.stage );
}
public function onContextReady( _e:Yogurt3DEvent ):void{
Yogurt3D.instance.defaultSetup( 400,300 );
Yogurt3D.instance.defaultScene.sceneColor = 0xEFEFEF;
// создадим cubemap из встроенного изображения.
var cubeTexture:CubeTextureMap = new CubeTextureMap();
cubeTexture.setFace( CubeTextureMap.NEGATIVE_X, new embednegativeX() );
cubeTexture.setFace( CubeTextureMap.NEGATIVE_Y, new embednegativeY() );
cubeTexture.setFace( CubeTextureMap.NEGATIVE_Z, new embednegativeZ() );
cubeTexture.setFace( CubeTextureMap.POSITIVE_X, new embedpositiveX() );
cubeTexture.setFace( CubeTextureMap.POSITIVE_Y, new embedpositiveY() );
cubeTexture.setFace( CubeTextureMap.POSITIVE_Z, new embedpositiveZ() );
// создадим skybox из cubeMap
var skybox:SkyBox = new SkyBox( cubeTexture );
// установим текущий skybox сцены
Yogurt3D.instance.defaultScene.skyBox = skybox;
Yogurt3D.instance.enginePreUpdateCallback = function():void{
// повернём камеру на центр кадра
Yogurt3D.instance.defaultCamera.transformation.rotationX ++;
Yogurt3D.instance.defaultCamera.transformation.rotationY ++;
};
Yogurt3D.instance.startAutoUpdate();
}
}
}
{
import com.yogurt3d.Yogurt3D;
import com.yogurt3d.core.events.Yogurt3DEvent;
import com.yogurt3d.core.sceneobjects.SkyBox;
import com.yogurt3d.core.texture.CubeTextureMap;
import flash.display.Sprite;
import flash.geom.Matrix3D;
import flash.geom.Vector3D;
[SWF(width="400", height="300")]
public class SkyBoxTutorial extends Sprite
{
/**
* Встроим изображение скайбокса
**/
[Embed(source="../resources/hills_negative_x.png")]
private var embednegativeX:Class;
[Embed(source="../resources/hills_negative_y.png")]
private var embednegativeY:Class;
[Embed(source="../resources/hills_negative_z.png")]
private var embednegativeZ:Class;
[Embed(source="../resources/hills_positive_x.png")]
private var embedpositiveX:Class;
[Embed(source="../resources/hills_positive_y.png")]
private var embedpositiveY:Class;
[Embed(source="../resources/hills_positive_z.png")]
private var embedpositiveZ:Class;
public function SkyBoxTutorial()
{
super();
Yogurt3D.instance.addEventListener( Yogurt3DEvent.READY, onContextReady );
Yogurt3D.instance.init( this.stage );
}
public function onContextReady( _e:Yogurt3DEvent ):void{
Yogurt3D.instance.defaultSetup( 400,300 );
Yogurt3D.instance.defaultScene.sceneColor = 0xEFEFEF;
// создадим cubemap из встроенного изображения.
var cubeTexture:CubeTextureMap = new CubeTextureMap();
cubeTexture.setFace( CubeTextureMap.NEGATIVE_X, new embednegativeX() );
cubeTexture.setFace( CubeTextureMap.NEGATIVE_Y, new embednegativeY() );
cubeTexture.setFace( CubeTextureMap.NEGATIVE_Z, new embednegativeZ() );
cubeTexture.setFace( CubeTextureMap.POSITIVE_X, new embedpositiveX() );
cubeTexture.setFace( CubeTextureMap.POSITIVE_Y, new embedpositiveY() );
cubeTexture.setFace( CubeTextureMap.POSITIVE_Z, new embedpositiveZ() );
// создадим skybox из cubeMap
var skybox:SkyBox = new SkyBox( cubeTexture );
// установим текущий skybox сцены
Yogurt3D.instance.defaultScene.skyBox = skybox;
Yogurt3D.instance.enginePreUpdateCallback = function():void{
// повернём камеру на центр кадра
Yogurt3D.instance.defaultCamera.transformation.rotationX ++;
Yogurt3D.instance.defaultCamera.transformation.rotationY ++;
};
Yogurt3D.instance.startAutoUpdate();
}
}
}
Категория: Остальное |
Просмотров: 3339 |
Добавил: Хоббитс (09.07.2012)
| Рейтинг: 0.0/0
Теги: |
HTML ссылка на материал: BB ссылка на материал: |
Всего комментариев: 0 | |