从3dsmax导出Dae模型到papervision3D
从外部的三维软件,如3dsmax导入模型到papervision3D,下面,让我们熟悉一下这个流程。
[b]【[url]http://www.newflash3d.com[/url]---flash3D先锋队:北京贝武易科技公司】[/b]
有疑问请联系我QQ:363596350
在3dsmax里建立一个箱体。
[img]/upload/attachment/128684/53f88e81-5c04-3d64-8f6a-60c778222adc.jpg[/img]
长 20
宽 100
高 30
如图所示:
[img]/upload/attachment/128690/0bef345f-34a3-3a27-87fb-e40a100bd0ee.jpg[/img]
这里我们用的都是3dsmax默认的单位。也就是英尺。
我们这里需要注意的是它的轴向:xyz和它对应的长宽高。
[img]/upload/attachment/128692/d48258bf-452d-3e23-83b7-565e575f13ae.jpg[/img]
输出为box.DAE文件。
选择默认的设置,OK即可。
我们在Flex中把物体导入进去
代码如下:
<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:myCanvas3D="myCanvas3D.*" applicationComplete="init();"> <mx:Script> <![CDATA[ import org.papervision3d.objects.primitives.Plane; import org.papervision3d.materials.WireframeMaterial; import org.papervision3d.lights.PointLight3D; import org.papervision3d.materials.ColorMaterial; import org.papervision3d.cameras.FreeCamera3D; import org.papervision3d.objects.primitives.Sphere; import org.papervision3d.materials.BitmapFileMaterial; import org.papervision3d.materials.utils.MaterialsList; import org.papervision3d.objects.parsers.DAE; import org.papervision3d.cameras.Camera3D; import org.papervision3d.render.BasicRenderEngine; import org.papervision3d.scenes.Scene3D; import org.papervision3d.view.Viewport3D; import org.papervision3d.events.FileLoadEvent;
private var viewport:Viewport3D; private var scene:Scene3D; private var render:BasicRenderEngine; private var camera:FreeCamera3D;
private var light:PointLight3D;
private var box:DAE; private var plane:Plane;
private function init():void{ viewport=new Viewport3D(500,400); scene=new Scene3D(); render=new BasicRenderEngine(); camera=new FreeCamera3D(2,100); plane=new Plane(null,100,100,10,10); //light=new PointLight3D(true); //light.x=0; //light.y=50; //light.z=-80; //scene.addChild(light);
box=new DAE(true); box.load("assets/box.DAE",new MaterialsList( {all:new WireframeMaterial()} ) );
box.addEventListener(FileLoadEvent.LOAD_COMPLETE,boxonloaded);
camera.x=20; camera.y=00; camera.z=-20; mycanvas.canvas.addChild(viewport); } private function boxonloaded(evt:FileLoadEvent):void{ scene.addChild(plane); scene.addChild(box); camera.lookAt(box); render.renderScene(scene,camera,viewport); }
]]> </mx:Script> <myCanvas3D:Canvas3D id="mycanvas" width="500" height="400" backgroundColor="0x000000"/></mx:Application>
运行,看到如下的结果:
[img]/upload/attachment/128700/d19f9625-566c-38a7-8bc4-b4679838d1f0.jpg[/img]
简单的解释一下,这里我们看到我们的箱体是立着的,我们多做了一个plane物体来作为参考,我们的相机在我们的Pv3d系统的位置为:
camera.x=20;
camera.y=0;
camera.z=-20;
我们的plane物体的长、宽、高都为100,那么箱体的长度和plane物体的长度是一样的。也就是说我们从3dsmax里导入的物体的长度在Pv3d系统的单位长度是一致的!这个很关键。
好,单位确定后我们就来探讨坐标轴的问题。
展开好UV,贴好材质,如图,我们通过材质来示意轴向。
[img]/upload/attachment/128707/2f0b1263-c28f-3d8c-8a66-573a060ee7c5.jpg[/img]
重新输出文件为:boxm.DAE
我们重新把文件导入到pv3d系统去,运行,我们看到是黑色的箱体,看不到材质,我们打开编辑boxm.DAE文件,把
<init_from>../sceneassets/images/outUV.jpg</init_from>
改为
<init_from>outUV.jpg</init_from>
因为我们的贴图outUV.jpg与我们的文件boxm.DAE是在同一个目录下。
再把材质代码改为:
box.load("assets/boxm.DAE",null );
只要路径对了,
boxm.DAE文件自动配置好贴图。
最终贴出来效果为
[img]/upload/attachment/128721/d1c110cb-ee29-37a2-ae26-8e71112506bc.jpg[/img]
在max的显示为:
[img]/upload/attachment/128723/024e5a14-dd1b-38cb-b216-821dd7667057.jpg[/img]
最终我们得出的结论是:
[b]3dsmax与pv3d的系统单位一致,
只要把Y轴与Z轴交换一下就达到一致效果。[/b]
[b]【[url]http://www.newflash3d.com[/url]---flash3D先锋队:北京贝武易科技公司】[/b]
有疑问请联系我QQ:363596350
最终,我们可以导入一个游戏人物角色了,Papervision 3D导入游戏人物!很激愤人心的事情啊!这里我们用了一个最终幻想的人物头部模型。
结果如图
[img]/upload/attachment/128725/67e45d72-da8a-3810-8b4d-d56ede1c4f14.jpg[/img]
下一步,我们会走的更远!
从3dsmax导出Dae模型到papervision3D相关推荐
- 3dsMax导出模型到Blender后金属度变成1
问题:max材质导入blender金属度默认成1,如果有几百个个材质每个都要调简直要死,有什么方法解决或者能统一调整材质金属度吗? 解决3dsMax导出模型到Blender后金属度变成1的问题,三种解 ...
- COLLADAMaxNew插件,opencollada导出DAE文件格式 for 3dmax2019
简介:COLLADAMax导出DAE可以比3DAMX原系统自带的导出格式减少内存消耗并提高性能.OpenCOLLADA 3ds Max插件是OpenCOLLADA开源项目的一部分.它为3ds Max添 ...
- dae模型如何合并_PV3D学习笔记-导入DAE模型
网上关于PV3D导入DAE模型的例子都非常多,可惜我研究了半天,一个都没成功,或者是破面问题,或者是贴图不显示,再或者贴图乱掉了.今天晚上终于搞定,心得发上来. 制作模型的软件是SketchUp Pr ...
- 3DsMax导出插件编写(一)——vs2010和3dsmax2011(64位)的配置方法
作为3D开发人员,特别是3D引擎开发人员,经常会接触到各种三维模型的数据.虽然说3dsmax已经可以导出很多格式的模型,不过总是不一定合适自己用.所以总有一种想自己写一个导出插件,让3dmax导出自己 ...
- ios 3D引擎 SceneKit 开发(3) --使用3dmax导出DAE文件
hello ,大家好,我是Roc.Tian,最近一直在研究苹果自家的3D 引擎 SceneKit ,适当写写博客,总结一下,与大家分享一下,也希望跟大家交流,共同进步. 这其实是建模人员该了解的问题, ...
- blender中UV贴图及导出dae文件
设置单位meter 设置大小 按 N调出属性面板 设置 依次选择编辑模式.线框.面选择: 进入UV贴图模式 右击选中物体上表面,按U--展开:上方选择UV Editing模式 贴图 左下底部选择 图像 ...
- oracle导出pdm文件命令,利用PowerDesigner逆向工程导出PDM模型及生成文档
最近需要对老项目进行重构优化,由于项目都是好几年前的,相关设计资料很不全,最基本的数据库设计文档都没有,只能利用PowerDesigner逆向工程导出PDM模型及生成word文档:以下简单介绍导出模型 ...
- 3dsmax导出html,3dsmax导出gltf格式插件
[实例简介] 3dsmax导出gltf格式插件,里面包括插件,插件使用说明,插件功能介绍: [实例截图] [核心代码] 3dsmx_to_gltf格式插件 └── 3dsMax to gltf 2 ├ ...
- PyTorch导出JIT模型并用C++ API libtorch调用
PyTorch导出JIT模型并用C++ API libtorch调用 本文将介绍如何将一个 PyTorch 模型导出为 JIT 模型并用 PyTorch 的 C++API libtorch运行这个模型 ...
最新文章
- 【SVN多用户开发】代码冲突解决办法
- NoSQL数据库四大分类
- Git与GitHub的使用
- hdu 6200 mustedge mustedge mustedge(dfs序+树状数组+并查集)
- [转载] Java StringBuilder StringJoiner
- php nginx日志分析,如何通过NGINX的log日志来分析网站的访问情况,试试这些命令...
- “宇宙总统”计票(洛谷P1781题题解,Java语言描述)
- Startlsback常见使用过程中的问题
- Educational Codeforces Round 41 (Rated for Div. 2)
- java中函数的三要素是什么_函数的概念与三要素
- js浏览器 文本语音播报
- 阿里云centos7.0安装java环境
- P2345 [USACO04OPEN]MooFest G 【树状数组】
- 4152: [AMPPZ2014]The Captain
- 小程序实现书籍翻页效果
- win10+VS2012+opencv2.4.11的安装和配置
- 绿色软件在Windows10中设置开机自启方法
- 倍福 TwinCAT背景知识
- ZZ教你卸载 Office 正版增值计划通知 (KB949810)-CHS
- 三十岁了,还是身无分文,一事成无该怎么补救?
热门文章
- CAD打开时显示:应用程序无法正常启动(0xc0000142)
- 无法显示隐藏的文件或文件夹
- phpcm——域名转换问题
- arduino 鸿蒙,Arduino 开发板介绍及对比(上)
- java自制SQL假数据生成器
- Tkinter之place所有属性详解
- python中objects_django的objects怎么调用
- 字体FontFace动态引入方式
- makefile 学习记录(一)简单的两个C文件编译
- git下载问题warning: remote HEAD refers to nonexistent ref, unable to checkout