Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 17.08.2010, 23:27
mry вне форума Посмотреть профиль Отправить личное сообщение для mry Посетить домашнюю страницу mry Найти все сообщения от mry
  № 1  
Ответить с цитированием
mry
 
Аватар для mry

Регистрация: Aug 2009
Адрес: ХМАО
Сообщений: 47
По умолчанию ViewportLayer и объект DAE.

Не понимаю, почему загруженный объект DAE всегда находиться на заднем плане.
На сцену размещаю плоскость, любой примитив (например сферу) и загружаю объект DAE из файла.
Создаю два ViewportLayer'а
На первом находиться плоскость, на втором сфера и DAE. Делаю сортировку слоёв по индексам, присваиваю индексы.
Получаю при выводе на экран: любой загружаемый объект всегда на заднем плане, всегда перекрывается остальными объектами. Хотя сфера, находящаяся на том-же слое отображается правильно.
Подскажите, как быть?

Вот код или см. в приложении.
Код AS3:
package {
	import flash.events.Event;
	import org.papervision3d.materials.WireframeMaterial;
	import org.papervision3d.materials.utils.MaterialsList;
	import org.papervision3d.objects.DisplayObject3D;
	import org.papervision3d.objects.primitives.Sphere;
	import org.papervision3d.view.BasicView;
	import org.papervision3d.events.FileLoadEvent;
	import org.papervision3d.objects.primitives.Plane;
	import org.papervision3d.objects.parsers.DAE;
	import org.papervision3d.materials.ColorMaterial;
	import org.papervision3d.view.layer.ViewportLayer;
	import org.papervision3d.view.layer.util.ViewportLayerSortMode;
 
	public class newapp extends BasicView
	{
		private var model:DisplayObject3D;
		private var backplane:DisplayObject3D;
		private var rotX:Number = 0.1;
		private var rotY:Number = 0.1;
		private var camPitch:Number = 90;
		private var camYaw:Number = 270;
		private var easeOut:Number = 0.1;
 
		private var roomViewportLayer:ViewportLayer;
		private var objViewportLayer:ViewportLayer;
 
		public function newapp()
		{
			stage.frameRate = 40;
			init();
			startRendering();
		}
		private function init():void
		{
 
			model = new DAE();
			model.addEventListener(FileLoadEvent.LOAD_COMPLETE,modelLoaded);
			DAE(model).addFileSearchPath("test");
			DAE(model).load("test.dae");
		}
		private function modelLoaded(e:FileLoadEvent):void
		{
			roomViewportLayer = new ViewportLayer(viewport, null);
			objViewportLayer = new ViewportLayer(viewport, null);
			viewport.containerSprite.sortMode = ViewportLayerSortMode.INDEX_SORT;	
			roomViewportLayer.layerIndex = 0;
			objViewportLayer.layerIndex = 1;
			viewport.containerSprite.addLayer(roomViewportLayer);
			viewport.containerSprite.addLayer(objViewportLayer);
 
			backplane = new Plane(new ColorMaterial(0xfff00f));
			backplane.material.doubleSided=true;
			scene.addChild(backplane);
			backplane.rotationX=90;
 
			scene.addChild(model);
			model.scaleX=10;
			model.scaleZ=10;
			model.scaleY=10;
 
			var sphere = new Sphere(new ColorMaterial(0xff00ff));
			sphere.y = 150;
			scene.addChild(sphere);
 
			roomViewportLayer.addDisplayObject3D(backplane);
			objViewportLayer.addDisplayObject3D(model);
			objViewportLayer.addDisplayObject3D(sphere);
 
		}
		override protected function onRenderTick(e:Event=null):void
		{
			var xDist:Number = mouseX - stage.stageWidth * 0.5;
			var yDist:Number = mouseY - stage.stageHeight * 0.5;
			camPitch += ((yDist * rotX) - camPitch + 90)
			* easeOut;
			camYaw += ((xDist * rotY) - camYaw + 270) * easeOut;
			camera.orbit(camPitch, camYaw);
			super.onRenderTick();
		}
	}
}
Вложения
Тип файла: rar mk.rar (149.8 Кб, 32 просмотров)
__________________
Тяжела и неказиста жизнь простого программиста. Распрекрасна и богата жизнь межзвёздного пирата.

Создать новую тему Ответ Часовой пояс GMT +4, время: 18:02.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 18:02.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.