« Return to Thread: ShadedMaterials not working with Collada model

Re: ShadedMaterials not working with Collada model

by andysk8er :: Rate this Message:

Reply to Author | View in Thread

Hi Dan,
A few questions:
Have you tried adding the ShadedMAterial to the model first (instead of the FlatShadeMaterial)? Does that fail?

You say that you have tried doing replaceMAterialByName with another FlatShadeMAterial, but it failed. Have you tried tracing the model's materialsList each time you click to make sure that the material reference is still there? It may be a bug in the Collada class.

-Andy

DanSearle wrote:
Hi Andy thanks for your reply. I've simplified the code and the model,
but still I can't get it to work.

I have two problems:

   1. I can't get ShadedMaterials working with my Collada object.
   2. replaceMaterialByName is also not working with the Collada object.

See here:
http://www.danwashere.com/dev/papervision/shadedtextures_and_collada_problem/ShadingTest.html
Click anywhere to make it swap the materials (it also moves the object
left and right so you know your click has worked) - it fails to swap the
materials.

Here's the cut down code:

package {
   
// imports not included
   
    public class PV3DTest extends MovieClip {
       
        private var mc:MovieClip;
       
        private var basicView:BasicView;
       
        private var light:PointLight3D;
       
        private var testColladaObject:Collada;
        private var showingShadedMaterial:Boolean;
       
        private var flatShadeMaterial:FlatShadeMaterial;
        private var movieMaterial:MovieMaterial;
        private var shadedMaterial:ShadedMaterial;
       
        public function PV3DTest($mc:MovieClip) {
           
            mc = $mc;
           
            // Set up of BasicView and Light not included
           
            // Note: Texture_extra_1 is a library clip.
            movieMaterial = new MovieMaterial(new Texture_extra_1(),
false, true, false);

            shadedMaterial = new ShadedMaterial(movieMaterial, new
FlatShader(light, 0xFFFFFF, 0x555555));
           
            flatShadeMaterial = new FlatShadeMaterial(light, 0x8888ff,
0x111133);
           
            var mat:MaterialsList = new MaterialsList();
            // Initially use the flatShadeMaterial, which works ok.
            mat.addMaterial(flatShadeMaterial,    "material0");
            testColladaObject = new Collada("Simple.dae", mat, 0.00005);
            basicView.scene.addChild(testColladaObject);
            testColladaObject.x = -100;
           
            showingShadedMaterial = false;
           
            mc.stage.addEventListener(Event.ENTER_FRAME, handleEnterFrame);
            mc.stage.addEventListener(MouseEvent.CLICK, handleMouseClick);
        }
       
        private function handleMouseClick($e:MouseEvent):void {
            // Toggle the material on mouse click.
            if (showingShadedMaterial) {
                // replaceMaterialByName seems to do nothing
               
testColladaObject.replaceMaterialByName(flatShadeMaterial, "material0");
                testColladaObject.x = -100;
                showingShadedMaterial = false;
            } else {
                // I also tested this by swapping one flatShadeMaterial for
                // another of a diff colour, that didn't work either.
                testColladaObject.replaceMaterialByName(shadedMaterial,
"material0");
                testColladaObject.x = 100;
                showingShadedMaterial = true;
            }
        }

        private function handleEnterFrame($e:Event):void {          
            // Spin the object by mouse position
           
            basicView.singleRender();          
        }      
    }  
}

Are these known bugs in revision 918 maybe? I'm not sure where to look
to find that out.

Or is it a problem in my Collada DAE file perhaps?
http://www.danwashere.com/dev/papervision/shadedtextures_and_collada_problem/Simple.dae

Thanks,
Dan


andysk8er wrote:
> Hi Dan,
>
> Why don't you try to simplify things in your code first. Simply create a
> simple flatshadedmaterial, add it to the materials list and do your
> replaceMaterialByName. See if you can get that working. Then, go back and
> add in your textures, shaders, etc...
>
> I guess I'm not really sure why you are declaring your materials as Classes.
> Why not just create MovieAssetMaterials using the linkage name in the
> library? Anyway, if you strip all of that stuff out of your code and simply
> use a flatshaded material, you can see if that works. If so, you can begin
> adding your materials back in until it breaks.
>
> -Andy
>
>
>
> DanSearle wrote:
>  
>> Hi list,
>>
>> If I understand SVN right I'm on revision 918.
>>
>> I'm using the free version of Google SketchUp (v6.4.112) to make DAE
>> files (using that hack to get the DAE from the KMZ it outputs), but I
>> can't get the ShadedMaterials to work with it.
>>
>> Here's a demo I've made:
>> http://www.danwashere.com/dev/papervision/shadedtextures_and_collada_problem/DanWasHereWorld.html
>> (Mouse Up/Down to move in and out, Mouse Left/Right to move the light
>> source)
>>
>> The paddling pool is meant to be shaded - the cube uses the same shaded
>> materials as the pool to prove that the materials themselves are ok.
>>
>> Is it maybe that the DAE created in this way isn't compatible with
>> ShadedMaterials? Here's a link to the DAE file:
>> http://www.danwashere.com/dev/papervision/shadedtextures_and_collada_problem/paddling%20pond.dae
>>
>> Or in case it's a code problem, here's the relevant code, or you can
>> also get the AS file here:
>> http://www.danwashere.com/dev/papervision/shadedtextures_and_collada_problem/DanWasHereWorld.as
>>
>> (Note that I have the textures in the FLA library)
>>
>> *** I've cut the code from this reply cos it wasn't useful ***
>>
>> I'd love an explanation of how to do this if someone can help?
>>
>> Many thanks,
>> Dan
>>
>>
>>
>> _______________________________________________
>> Papervision3D mailing list
>> Papervision3D@osflash.org
>> http://osflash.org/mailman/listinfo/papervision3d_osflash.org
>>
>>
>>    
>
>  
> ------------------------------------------------------------------------
>
>
> No virus found in this incoming message.
> Checked by AVG - www.avg.com
> Version: 8.5.375 / Virus Database: 270.13.2/2215 - Release Date: 07/02/09 18:06:00
>
>  

_______________________________________________
Papervision3D mailing list
Papervision3D@osflash.org
http://osflash.org/mailman/listinfo/papervision3d_osflash.org
===============================================
Check out my blog for Flash, AS3, and web development stuff:
http://www.wastedpotential.com

 « Return to Thread: ShadedMaterials not working with Collada model