« Return to Thread: DAE texture swap

Re: DAE texture swap

by zedia.net :: Rate this Message:

Reply to Author | View in Thread

I have the same problem. I was able to change texture dynamically before Papervision 2.1, but now I can't. In papervision 2.0 half of my animation don't work. So I'm kinda stuck.

I tried this solution:

child = dae.getChildByName("whatever", true); //true recurses through the dae to find that child
child.material = new WhateverMaterial();

But it doesn't work; when I do this
trace (dae.numchildren) it trace 0;

Also in the trace panel I get this message
INFO: DisplayObject3D: myModel
and myModel is the displayObject I want to change the texture but I can't seem to be able to access it.

Any thoughts?

thank you

Jonathon Stierman-2 wrote:
That worked -- thanks, John!

Jonathon


From: papervision3d-bounces@osflash.org [mailto:papervision3d-bounces@osflash.org] On Behalf Of John Lindquist
Sent: Tuesday, July 07, 2009 12:45 PM
To: papervision3d@osflash.org
Subject: Re: [Papervision3D] DAE texture swap

I usually do something like this:

child = dae.getChildByName("whatever", true); //true recurses through the dae to find that child
child.material = new WhateverMaterial();


On Tue, Jul 7, 2009 at 11:26 AM, Jonathon Stierman <jonathon@wolfmotell.com<mailto:jonathon@wolfmotell.com>> wrote:

Is it possible to dynamically change the texture on a DAE instance?



I've tried updating the materials MaterialList:



var texture:Bitmap = new LaptopTexture() as Bitmap;

                  var newMaterialList:MaterialsList = new MaterialsList();

                  newMaterialList.addMaterial(new BitmapMaterial(texture.bitmapData, true));

                  myDAE.materials = newMaterialList;



I also tried re-loading the DAE, and supplying my own materials list:



                  var texture:Bitmap = new LaptopTexture() as Bitmap;

                  var newMaterialList:MaterialsList = new MaterialsList();

                  newMaterialList.addMaterial(new BitmapMaterial(texture.bitmapData, true));

                  myDAE.load(new DaeModelData(), newMaterialList, true);



And also tried working through the SkinController:



var texture:Bitmap = new LaptopTexture() as Bitmap;

                  var newMaterialList:MaterialsList = new MaterialsList();

                  newMaterialList.addMaterial(new BitmapMaterial(texture.bitmapData, true));



                  var myControllers:Array = myDAE.controllers;

                  var i:int;

                  var loopUntil:int = myControllers.length;

                  var skinController:SkinController

                  for(i=0; i<loopUntil; i++)

                  {

                        if (myControllers[i] is SkinController)

                        {

                              skinController = myControllers[i];

                              skinController.target.materials = newMaterialList;

                              skinController.update();

                        }

                  }



Am I going about this completely wrong?



Jonathon

_______________________________________________
Papervision3D mailing list
Papervision3D@osflash.org<mailto:Papervision3D@osflash.org>
http://osflash.org/mailman/listinfo/papervision3d_osflash.org


_______________________________________________
Papervision3D mailing list
Papervision3D@osflash.org
http://osflash.org/mailman/listinfo/papervision3d_osflash.org

 « Return to Thread: DAE texture swap