Away3D 学习笔记(一): 加载3DS格式的模型文件
加载外部的3DS文件分为两种:
1: 模型与贴图独立于程序的,也就是从外部的文件夹中读取
private function load3DSFile():Loader3D
{
loader = new Loader3D();
loader.addEventListener(LoaderEvent.RESOURCE_COMPLETE,onLoadComplete);
loader.addEventListener(AssetEvent.ASSET_COMPLETE,onAssetComplete);
loader.load(new URLRequest("files/printer.3DS"),null,null,new Max3DSParser());
return loader;
}
这种情况可以将导入的模型做为一个空的Object的以物体名命名的属性的值,这样,方便我们去调用这个模型,并且这种情况下3DS文件与贴图文件在一个文件夹中,不需要使用AssetLoaderContext.直接Loader这个模型,贴图就跟着进来了.
// var meshs:Object = new Object(); protected function onAssetComplete(event:AssetEvent):void
{
if(event.asset.assetType == AssetType.MESH) {
// add loaded object to meshs, to easy find it.
meshs[event.asset.name] = event.asset;
}
}
// 之后就可以这样去调用了: meshs.printer.rotationY++;
2: 模型与贴图以Embed形式,嵌入应该程序中的
因为此时,模型与贴图都嵌入在应用程序中,所以在载入的时候使用LoadData(载入已嵌入的数据),也需要使用AssetLoaderContext类去重新映射原3DS文件中的贴图,由路径映射为Data数据.
private function load3DSFileEmbed():void
{
// 使用 AssetLoaderContext,映射3DS中的贴图路径与已嵌入的图版的Data数据.
var context:AssetLoaderContext = new AssetLoaderContext();
context.mapUrlToData("PRINTERV.JPG",new printerMap()); // 创建一个Loader3D
loader = new Loader3D();
// 载入每一个素材后,如Texture,Material,Mesh,Geometry等.
loader.addEventListener(AssetEvent.ASSET_COMPLETE,onAssetComplete2);
// 所以的素材全部载入后.
loader.addEventListener(LoaderEvent.RESOURCE_COMPLETE,onResComplete);
// 开始载入.1:模型数据 2:AsssetLoaderContext 3,Null 4:模型文件解析器
loader.loadData(new printerModel(),context,null,new Max3DSParser());
}
Away3D 学习笔记(一): 加载3DS格式的模型文件的更多相关文章
- 学习笔记TF015:加载图像、图像格式、图像操作、颜色
TensorFlow支持JPG.PNG图像格式,RGB.RGBA颜色空间.图像用与图像尺寸相同(height*width*chnanel)张量表示.通道表示为包含每个通道颜色数量标量秩1张量.图像所有 ...
- Unity3D学习笔记9——加载纹理
目录 1. 概述 2. 详论 2.1. Resources方式 2.2. API方式 2.3. Web方式 1. 概述 理论上,Unity中加载纹理并没有什么难度,只需要将图片放置在Assets文件夹 ...
- [WPF学习笔记]动态加载XAML
好久没写Blogs了,现在在看[WPF编程宝典],决定开始重新写博客,和大家一起分享技术. 在编程时我们常希望界面是动态的,可以随时变换而不需要重新编译自己的代码. 以下是动态加载XAML的一个事例代 ...
- flutter源码学习笔记-图片加载流程
本文基于1.12.13+hotfix.8版本源码分析. 0.大纲 Image ImageProvider 图片数据加载 ImageStream.ImageStreamCompleter 缓存池 Pai ...
- ARM学习笔记4——加载存储指令
一.字数据传送指令 作用:用于把单一的数据传入或者传出一个寄存器. 1.LDR指令 1.1.作用 根据<addr_mode>所确定的地址模式从内存中将一个32位的字段读取到目标寄存器< ...
- linux学习笔记1——指令的基本格式及基本文件操作
从今天开始就正式踏上了linux的学习历程.linux作为绝大多数服务器采用的操作系统,是每个开发人员都非常有必要掌握的操作系统.初学时,我没有直接在电脑上安装linux操作系统,而是采用了虚拟机的方 ...
- UIWebView加载ANSI格式的txt文件出现乱码问题解决
//若为txt文档 if([encodedString hasSuffix:@".txt"]){ NSData* Data = ...
- Spring MVC 学习笔记11 —— 后端返回json格式数据
Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...
- Android学习——Fragment静态加载
从今天开始做一套安卓的学习笔记,开发环境是Android Studio,把学习过程中的知识和遇到的问题都写在这里,先从Fragment开始学起. Fragment概述 Fragment是Android ...
随机推荐
- JVM内存模型(一)
主要澄清之前对JVM内存模型的一些误区: JMV内存主要分为5块:方法区(Method Area),堆区(Heap),虚拟机栈(VM stack),本地方法栈(Native Method stack) ...
- VS2015 C#项目工程配置emgucv依赖的方法
1.VS2015新建一个C# console工程 2.Tools->NuGet package management->manage NuGet package for solution- ...
- 如何手动关闭tomcat服务,不在Eclipse中的server里按那个红色按钮关
首先,找到Tomcat服务器的安装目录bin目录下的shutdown.bat.然后拖动到命令行进行操作,将Tomcat服务器关闭~ 将shutdown.bat 文件拖至命令行操作当中,执行该命令,即可 ...
- 【ActiveMQ入门-5】ActiveMQ学习-Queue与Topic的比较
Queue与Topic的比较 1.JMS Queue执行load balancer语义: 一条消息仅能被一个consumer收到. 如果在message发送的时候没有可用的consumer,那么它将被 ...
- bzoj4153 [Ipsc2015]Familiar Couples
Description 有n对夫妇,一开始夫妇之间互不认识,若两男或两女成为朋友,称他们为"熟人","熟人"关系具有传递性,即若a熟b且b熟c则a熟c.若两组夫 ...
- 转载CopyOnWriteArrayList
转载原文 http://www.cnblogs.com/dolphin0520/p/3938914.html Copy-On-Write简称COW,是一种用于程序设计中的优化策略.其基本思路是,从一开 ...
- (转)RRU交织冗余在LTE-R组网中的应用研究
RRU交织冗余在LTE-R组网中的应用研究 王 芳1,2 庞萌萌1,2 (1.北京全路通信信号研究设计院集团有限公司,北京 100070; 2.北京市高速铁路运行控制系统工程技术研究中心,北京 100 ...
- Linux系统运行级与启动机制剖析
原文作者:技术成就梦想 原文链接:http://ixdba.blog.51cto.com/2895551/533740 一 系统运行级windows系统有安全运行模式和正常运行模式,这是两个不同的运行 ...
- centos 7 mount usb hard disk(ntfs format)
1. yum install -y epel-release* 2. yum install -y ntfs-3g 3. 命令:fdisk -l (查看磁盘分区信息) [root@devserverg ...
- css border-bottom(指定下边线的样式、宽度及颜色)
border-bottom(指定下边线的样式.宽度及颜色) border-bottom: 值: border-bottom-style:值; border-bottom-color: 值; borde ...