Sandy引擎学习笔记:导入3dsmax模型
2008-10-11 21:04
323 查看
问题:如果导入一个3dsmax的模型?
首先先装上一个3dsmax的插件,这个插件的作用是将建模的3dsmax文件导出一种一种asf的文件类型,
这种类型能够被sandy识别,能够重写绘制到场景中去;
当中有两种方式导入:一种是导出asf格式,一种导出ase 代码
两种方式都有特点:
主要使用的类:
使用
sandy.parser | Parser classes for importing 3D structures |
package
{
import flash.display.Sprite;
import flash.events.*;
import sandy.core.Scene3D;
import sandy.core.data.*;
import sandy.core.scenegraph.*;
import sandy.materials.*;
import sandy.materials.attributes.*;
import sandy.primitive.*;
import sandy.parser.*;
public class My3D extends Sprite
{
private var scene:Scene3D;
private var camera:Camera3D;
private var pot:Shape3D;
public function My3D()
{
var parser:IParser = Parser.create("asset/teieraASE.ASE",Parser.ASE );//导入ase格式,让它在flash里面重写绘画
parser.addEventListener( ParserEvent.FAIL, onError );//模型导入失败监听
parser.addEventListener( ParserEvent.INIT, createScene );//初始化监听事件
parser.parse();
}
private function onError( pEvt:ParserEvent ):void
{
trace("加载文件错误");
}
private function createScene(p_eEvent:ParserEvent ):void
{
camera = new Camera3D( 500, 300 );//建立摄影机
camera.y = 30;
camera.z = -200;
var g:Group = Group( p_eEvent.group);
pot = g.children[0] as Shape3D;//将模型转为shape3d 类型
pot.x = 0;
var materialAttr:MaterialAttributes = new MaterialAttributes(new LightAttributes( true, 0.2 ) );
var material:Material = new ColorMaterial( 0xE0F87E, 0.9, materialAttr);//添加颜色材质和和光线
material.lightingEnable = true;//开启光线
var app:Appearance = new Appearance( material);//创建一个物体表面
pot.appearance = app;
scene = new Scene3D( "scene", this, camera, g );
addEventListener( Event.ENTER_FRAME, enterFrameHandler );
}
private function enterFrameHandler( event : Event ):void
{
pot.pan +=3;
scene.render();
}
}
}
代码解析:
var parser:IParser = Parser.create("asset/teieraASE.ASE",Parser.ASE );//导入ase格式,让它在flash里面重写绘画
parser.addEventListener( ParserEvent.FAIL, onError );//模型导入失败监听
parser.addEventListener( ParserEvent.INIT, createScene );//初始化监听事件
parser.parse();//加载文件
导入3dmax导出的ase代码后,flash 要导入模型,其实是重写解析ase里面的数据,重写通过api函数重写绘制出模型到flash 舞台中去。
sandy引擎提供了一个接口说明:
Description
IParser The IParser interface defines the interface that parser classes such as ColladaParser must implement.
导入后,把它转为Shape3D 对象,pot = g.children[0] as Shape3D;//将模型转为shape3d 类型
然后定义材质,然后渲染场景。
扩展:定义材质,还可以加上一些纹理贴图;效果会更加好
相关文章推荐
- Sandy引擎学习笔记:导入3dsmax模型
- Sandy引擎学习笔记:导入3dsmax模型
- Sandy引擎学习笔记:导入3ds模型纹理
- Sandy引擎学习笔记:导入3ds模型纹理
- Sandy引擎学习笔记:导入MD2模型
- Sandy引擎学习笔记:导入MD2模型
- Sandy引擎学习笔记:swf影片剪辑纹理贴图
- Sandy引擎学习笔记:Mode7
- Flash 3D引擎(Sandy3D)应用指南 6 —— 导入外部3D模型 Part2
- PV3D学习笔记-导入DAE模型
- Sandy引擎学习笔记:swf影片剪辑纹理贴图
- Sandy引擎学习笔记:swf影片剪辑纹理贴图
- Sandy引擎学习笔记:纹理贴图
- Sandy引擎学习笔记:颜色材质
- Unity3D之Mecanim动画系统学习笔记(二):模型导入
- Unity3D之Mecanim动画系统学习笔记(二):模型导入
- Sandy引擎学习笔记:摄影机
- Sandy引擎学习笔记:纹理贴图
- Sandy引擎学习笔记:颜色材质
- Sandy引擎学习笔记:多维贴图