away3d 4.0学习(4)加载简单的外部模型
2012-09-21 14:58
344 查看
嗯,最近在导出找3d模型玩,google的模型库里面倒是有蛮多的,但是天朝的网络不给力,不是墙就是下不了,并且google的模型库需要下载专门的软件,于是就没怎么研究下去了。
然后从朋友那里得来一个3d max,晚上回去无聊乱搞搞,自己瞎搞了个模型出来了,于是顺道练习了一下3ds文件在away3d中的使用。
东西简陋了点,但是由于是第一次搞,还是蛮有成就感的。
源码如下:
效果图如下:
然后从朋友那里得来一个3d max,晚上回去无聊乱搞搞,自己瞎搞了个模型出来了,于是顺道练习了一下3ds文件在away3d中的使用。
东西简陋了点,但是由于是第一次搞,还是蛮有成就感的。
源码如下:
package { import away3d.containers.ObjectContainer3D; import away3d.controllers.FirstPersonController; import away3d.controllers.HoverController; import away3d.controllers.LookAtController; import away3d.events.AssetEvent; import away3d.loaders.Loader3D; import away3d.loaders.parsers.Max3DSParser; import base.TemplateBase; import flash.events.Event; import flash.events.KeyboardEvent; import flash.events.MouseEvent; import flash.geom.Vector3D; import flash.net.URLRequest; import flash.ui.Keyboard; public class ModelLoaderTest extends TemplateBase { private var loader:Loader3D; private var controler:HoverController; private var step:Number=5; private var placeHolder:ObjectContainer3D; private var stageMouseX:Number; private var stageMouseY:Number; public function ModelLoaderTest() { super(); } override protected function init(e:Event=null):void { super.init(e); _view.camera.y = 500; loader = new Loader3D(); Loader3D.enableParser(Max3DSParser); loader.addEventListener(AssetEvent.ASSET_COMPLETE, onAssetComplete); loader.load(new URLRequest("assets/houseScene.3ds")); loader.scale(10); _view.scene.addChild(loader); placeHolder = new ObjectContainer3D(); placeHolder.y = 100; placeHolder.x = - 100; _view.camera.addChild(placeHolder); controler = new HoverController(_view.camera); initEvents(); } private function initEvents():void { stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown); stage.addEventListener(MouseEvent.MOUSE_WHEEL, onWheel); } private function mouseDown(e:MouseEvent):void { stage.addEventListener(MouseEvent.MOUSE_UP, mouseUp); stage.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDown); stageMouseX = stage.mouseX; stageMouseY = stage.mouseY; } private function onWheel(e:MouseEvent):void { controler.distance *= (1+e.delta/100); } private function mouseUp(e:MouseEvent):void { stage.removeEventListener(MouseEvent.MOUSE_UP, mouseUp); stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown); var deltaX:Number = stage.mouseX - stageMouseX; var deltaY:Number = stage.mouseY - stageMouseY; controler.panAngle = 0.5*deltaX+controler.panAngle; controler.tiltAngle = 0.5*deltaY+controler.tiltAngle; } private function onAssetComplete(e:AssetEvent):void { } override protected function onEnter(e:Event):void { super.onEnter(e); } } }
效果图如下:
相关文章推荐
- Away3D 学习笔记(一): 加载3DS格式的模型文件
- Away3D基础教程(二):加载外部模型
- away3d 4.0.9Gold 学习笔记 加载模型(6)
- 小白学习机器学习---第三章:简单线性模型Python实现
- django学习记录-django-1.5中简单地自定义自己的用户模型
- OpenGL学习:模型加载-obj模型和AssImp模型
- TensorFlow 深度学习框架(7)-- 变量管理及训练模型的保存与加载
- petshop4.0 简单流程 学习 适合菜鸟 (原创)
- 【深度学习】tensorflow加载VGG16的网络结构和模型参数
- Java补完之类加载机制(双亲委派模型)学习笔记
- Open GL es 2.0 简单加载Obj格式的模型文件
- Windows 8 Directx 开发学习笔记(五)山峰河谷模型的简单实现
- React Native的学习图片简单的两种加载方式
- TensorFlow 深度学习框架(7)-- 变量管理及训练模型的保存与加载
- Three.js学习笔记——3dsmax 加载obj模型
- tensorflow学习之Faster R-CNN模型的保存与加载
- 游戏开发学习笔记-4.加载X模型
- three.js学习笔记 obj模型加载问题
- GreenPlum外部表的简单模型
- Opengl学习之模型加载——Assimp