forked from: 【PV3D】shadeMaterial

by sting forked from 【PV3D】shadeMaterial (diff: 44)
♥0 | Line 51 | Modified 2010-09-23 20:45:50 | MIT License
play

ActionScript3 source code

/**
 * Copyright sting ( http://wonderfl.net/user/sting )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/lrKw
 */

// forked from _ryotaros's 【PV3D】shadeMaterial
package {
     import flash.display.*;
     import flash.events.*;
     import flash.filters.*;
     import flash.geom.*;
     import flash.media.*;
     import flash.net.*;
     import org.papervision3d.core.effects.*;
     import org.papervision3d.core.effects.utils.*;
     import org.papervision3d.view.layer.*;
     import org.papervision3d.objects.*;
     import org.papervision3d.view.*;
     import org.papervision3d.materials.*;
     import org.papervision3d.materials.shadematerials.*;
     import org.papervision3d.materials.utils.*;
     import org.papervision3d.objects.primitives.*;
     import org.papervision3d.lights.*;
     import org.papervision3d.cameras.*;
    
    [SWF(width=465,height=465,backgroundColor =0)]
    public class FlashTest extends BasicView{
        
            public var obj:Cube;
            public var camera2:Camera3D;
            public var bmpViewport:BitmapViewport3D;
            
         public function FlashTest () {
             
             var light:PointLight3D = new PointLight3D(true, false);
             scene.addChild(light);
             
             var bmp:BitmapData = new BitmapData(500, 500 ,false ,0xFF0000); 
             bmp.draw(this);

             
             
             //var material:FlatShadeMaterial = new FlatShadeMaterial(light, 0xffffff, 0x111111, 50);
             //var material:GouraudMaterial = new GouraudMaterial(light, 0xFFFFFF, 0x111111, 100);
             var material:CellMaterial = new CellMaterial(light, 0xFFFFFF, 0x111111, 10);
            //var material:EnvMapMaterial = new EnvMapMaterial(light, bmp, null, 0x000000);      
   
             var materials:MaterialsList = new MaterialsList({all:material});    
             obj = new Cube(materials, 250, 250, 250, 10, 10, 10);
             obj.x = -250;
             
             camera2 = new Camera3D();
             camera2.target = obj;
             
             bmpViewport = new BitmapViewport3D();
             var mirorMat:BitmapViewportMaterial = new BitmapViewportMaterial(bmpViewport, true);
             var mirorObj1:Plane = new Plane(mirorMat, 1280, 960);
             
             mirorObj1.z = camera2.z = 200;
             mirorObj1.x = camera2.x = 500;
             scene.addChild(mirorObj1);
             
             addEventListener(Event.ENTER_FRAME, loop);
             
             scene.addChild(obj);
             
             startRendering();
             
         }   
         
         public function loop(e:Event):void{
            obj.rotationX += 1;
            obj.rotationY += 2;
            
            renderer.renderScene(scene, camera2, bmpViewport);
                         
         }

    }
}