![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Aug 2009
Адрес: ХМАО
Сообщений: 47
|
Не понимаю, почему загруженный объект DAE всегда находиться на заднем плане.
На сцену размещаю плоскость, любой примитив (например сферу) и загружаю объект DAE из файла. Создаю два ViewportLayer'а На первом находиться плоскость, на втором сфера и DAE. Делаю сортировку слоёв по индексам, присваиваю индексы. Получаю при выводе на экран: любой загружаемый объект всегда на заднем плане, всегда перекрывается остальными объектами. Хотя сфера, находящаяся на том-же слое отображается правильно. Подскажите, как быть? Вот код или см. в приложении. 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(); } } }
__________________
Тяжела и неказиста жизнь простого программиста. Распрекрасна и богата жизнь межзвёздного пирата. |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:02. |
|
|
« Предыдущая тема | Следующая тема » |
|
|