flash 3d flash3d 研究所 pv3d 共享资源  | 经典范例  | 视频教程  | 友情链接  | 联系我们
登陆 | 注册  flash 3d 研究所
教程区





最近更新:
● allthrough阁下在讨论区里 发表新主题“【求助】关于PV3D的VectorSha...”(22:14:36)
● compra viagra阁下在教程区里 回复“《超简易papervision3D基础 ...”(11:24:50)
● cialis阁下在教程区里 回复“cailvenqq的dae模型经验...”(11:24:27)
正在浏览教程: 多个外部模型贴N张图的研究
多个外部模型贴N张图的研究
作者:noxss (转载请注明)
Email: czzzz@189.com


我曾经也以为PV3D只能给COLLADA模型贴一张图,还为此去给人物模型重新UNWRAP UWV,浪费了我一个下午的时间。。。其实方法手册里都讲有了,我看了手册才后悔。。。以后就养成了先翻手册和代码的习惯。

例子:在3DS MAX中画了两个平面,每个平面各有一张贴图,材质分别命名为'map1'和'map2',如图:
pv3d 教程



好了,代码来了~~

package
{
import flash.events.Event;

import org.papervision3d.events.FileLoadEvent;
import org.papervision3d.materials.BitmapFileMaterial;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.objects.parsers.Collada;
import org.papervision3d.view.BasicView;

public class duoMapTest extends BasicView
{
    private var matList:MaterialsList;
    private var mat1:BitmapFileMaterial;
    private var mat2:BitmapFileMaterial;
    private var twoPlane:Collada;
   
    private var loadedObjectNum:int;
   
    public function duoMapTest()
    {
    super(550, 400, true);
    init();
    init3d();
    startRendering();
    }
    private function init():void
    {
    loadedObjectNum = 0;
    }
    private function init3d():void
    {
    matList = new MaterialsList();
   
    mat1 = new BitmapFileMaterial('map1.jpg');
    mat2 = new BitmapFileMaterial('map2.jpg');
   
    mat1.name = 'map1';
    mat2.name = 'map2';
   
    matList.addMaterial(mat1);
    matList.addMaterial(mat2);
   
    twoPlane = new Collada('twoPlane.DAE', matList);
    twoPlane.scale = 0.1;
   
    mat1.addEventListener(FileLoadEvent.LOAD_COMPLETE, onLoaded);
    mat2.addEventListener(FileLoadEvent.LOAD_COMPLETE, onLoaded);
    twoPlane.addEventListener(FileLoadEvent.LOAD_COMPLETE, onLoaded);
   
    viewport.addEventListener(Event.ENTER_FRAME, enterFrameCheck);
    }
    private function onLoaded(e:FileLoadEvent):void
    {
    loadedObjectNum ++;
    }
    private function enterFrameCheck(e:Event):void
    {
    if (loadedObjectNum == 3)
    {
      viewport.removeEventListener(Event.ENTER_FRAME, enterFrameCheck);
      scene.addChild(twoPlane);
    }
    }
    override protected function onRenderTick(event:Event=null) : void
    {
   
   
    super.onRenderTick();
    }
}
}

这个代码很简单,我懒,就不多讲了,关键就是材质的名称要跟你在3D软件里的一样,就行了,简单吧!

效果图:
pv3d 教程







noxss
Email: czzzz@189.com
2009-09-29
转载请注明



告别永恒
(2009-10-18 13:31:45)
lz麻烦您能不能给点小小的注释啊~~~对于初学者的我来说吃透它还是有点难度的----
DDM君
(2009-10-23 09:53:24)
noxss君.....是以豪爽的人吧...下次叫他注意加上注解。
湛蓝守望
(2009-11-06 14:55:38)
DDM君 我发现用flex builder 开发3D游戏蛮爽的,代码有高亮,能自动弹出。
我本是做flex的,把你们代码贴上去稍加修改,发现可以完美运行!
舞狼
(2009-12-06 11:14:22)
其实,DAE类是可以直接提取dae文件中的贴图,并将他们贴到相应的地方上去的啊
daedocument 类的函数
public function parseLibraryImages():void
           {
                 var list :XMLList = this.COLLADA.library_images..image;
                 var element :XML;
                 var hasImages :Boolean = false;
                 
                 this.images = new Object();
                 
                 var loader :DaeImageLoaderThread = new DaeImageLoaderThread(this.baseUrl);
                 
                 loader.addEventListener(DaeParseEvent.IMAGES_COMPLETE, onImagesComplete);
                 
                 for each(element in list)
                 {
                       var image :DaeImage = new DaeImage(this, element);
                       if(image.init_from && image.init_from.length)
                       {
                             this.images[ image.id ] = image;
                             
                             loader.addImage(image);
                             
                             hasImages = true;
                       }
                 }
                 
                 if(hasImages)
                       loader.start();
                 else
                       onImagesComplete();
           }
是专门做这件事的啊
舞狼
(2009-12-06 11:16:18)
ps :
我是因为需要load lzma压缩的dae 所以将此函数从private改成public了
jaiver
(2010-01-18 17:15:47)
帮了大忙了! 呵呵 谢谢
SadMoon
(2010-06-04 17:32:51)
我尝试过,不行啊..
SadMoon
(2010-06-04 18:26:56)
囧..是我自己的问题..
成功了..
oh yeah!
感谢noxss大师..
感谢研究所..
king26951
(2010-09-02 15:07:12)
应该加个疑问。。。如何与这样的每个图片交互??????????????????????????????????????????
告别永恒
(2010-09-27 23:25:47)
这个一直在被大家念叨着---传说级的东西啊---
king26951
(2010-10-23 10:31:39)
http://www.flab3d.com/forum-tag-view-id-1282-title-pv3d+%E7%89%B9%E6%AE%8A%E4%BD%8D%E7%BD%AE.html
不是传说
Jesslyn
(2011-11-07 18:46:12)
Wow, your post makes mine look febele. More power to you!
ejonaadh
(2011-11-08 16:19:04)
Jxfg1y jdosfmspnxty
tigerzero
(2011-11-18 11:08:28)
home insurance zjwcs auto insurance quotes %]
caromello
(2011-11-18 11:36:19)
viagra 3396 skaffa viagra =-((
dondadabitch
(2011-11-20 10:12:21)
florida homeowners insurance 985 cheap california auto insurance >:]]
canjeremy
(2011-11-22 10:08:20)
auto insurance quotes xem health plus insurance 3785
forhowlong
(2011-11-23 17:27:45)
cialis amvi credible online cialis msgixv
live2blade
(2011-11-24 10:02:47)
auto insurance quotes ugcvxw mobile home insurance florida 359162
xfxmaestro
(2011-11-25 17:05:42)
career in pharmacy buy tramadol 084419 tramadol ieh
devilbackbone
(2011-11-29 11:27:08)
beitrag buy hinzufgen name text tramadol 829525 tramadol 04428
weddingcall
(2011-11-30 16:24:18)
Evening Dresses
Vintage Evening Dresses
Designer Evening Dresses
Cheap Cocktail Dresses
Short Cocktail Dresses
Long Evening Dresses
Evening Dresses on sale
Evening Dresses uk

wedding dresses uk
wedding dresses uk sale
wedding dresses sale
wedding dresses uk 2012
wedding dresses uk online
wedding dresses on sale
cheap wedding dresses on sale
cheap wedding dresses sale
wedding dresses
wedding dress

viagra
(2011-12-10 03:48:07)
lqclwafx http://arivav.com/ bobnbqbd [url=http://vwgjbv.com/]bobnbqbd[/url]
Wedding Dresses
(2011-12-26 16:37:37)
Designer Wedding Dresses
cheap wedding dresses
Wedding Dresses uk
wedding dresses uk
Dessy Bridesmaid Dresses
wedding dresses sale
Vintage Wedding Dresses
cialis
(2012-01-27 04:54:16)
awtzvie cialis 1943 cheap cialis 9327 viagra zsTsV buy viagra >:]] viagra 8267 cialis >:-OOO
buy cialis
(2012-01-28 00:23:53)
orjnpbad buy cialis %-[[[ viagra 8]]] sildenafil prices hEhGi viagra >:]] tadalafil 2825 cialis 9175
instant cash advance
(2012-02-02 20:45:45)
tdqyrk instant cash advance >:-OOO instant cash advance 8]]] payday loans 8932
viagra
(2012-02-04 02:39:48)
yobgbljz viagra 4043 generic cialis 2465 propecia 3189 accutane >:-[
viagra
(2012-02-04 07:53:21)
cgjfrj viagra 8]]] viagra 2807 cialis 8222 acheter cialis %-[[[ cialis AxOnhl viagra online >:-OOO

评论人:
邮   箱: (填入邮箱,博客地址均可)

内   容: (广告和垃圾内容可能会被删除,望理解)

链接地址
验证码:(为防止机器人骚扰,请麻烦输入验证码^_^)