package { // import com.adobe.viewsource.ViewSource; import Torus; import flash.events.Event; //import mx.core.BitmapAsset; import org.papervision3d.cameras.Camera3D; import org.papervision3d.lights.PointLight3D; import org.papervision3d.materials.*; import org.papervision3d.materials.shadematerials.EnvMapMaterial; import org.papervision3d.materials.utils.MaterialsList; import org.papervision3d.objects.primitives.Cube; import org.papervision3d.view.BasicView; import org.papervision3d.materials.utils.MaterialsList; import flash.events.*; public class PaperblendingDemo extends BasicView { /** * THESE IMAGES WHERE TAKEN FROM PAUL DEVEBEC'S LIGHTPROBE PAGE. * http://www.debevec.org/Probes/ * Thank you Paul. */ private var torus:CustomTriangle; private var cube:Cube; private var envMaterial:EnvMapMaterial; private var light:PointLight3D; var lightPos:int; var moveLightOn:Boolean; public function PaperblendingDemo() { super(0, 0, true, false,Camera3D.TYPE); opaqueBackground = 0xffcc32; init3d(); stage.addEventListener(MouseEvent.CLICK,clickHandler); } private function init3d():void { /* var leftMaterial:BitmapMaterial = new BitmapMaterial(new leftAsset(744,744), false); var frontMaterial:BitmapMaterial = new BitmapMaterial(new frontAsset(744,744).bitmapData, false); var backMaterial:BitmapMaterial = new BitmapMaterial(new backAsset(744,744).bitmapData, false); var ml:MaterialsList = new MaterialsList(); ml.addMaterial(leftMaterial, "left"); ml.addMaterial(frontMaterial, "front"); ml.addMaterial(backMaterial, "back"); cube = new Cube(ml, 15000,15000,15000,4,4,4,Cube.ALL,Cube.TOP|Cube.BOTTOM|Cube.RIGHT); cube.yaw(90);*/ // scene.addChild(cube); moveLightOn=false; light = new PointLight3D(false,false); envMaterial = new EnvMapMaterial(light, new probeAsset(255,255),new probeAsset(255,255),0); // envMaterial.DoubleSided=true; envMaterial.tiled = true envMaterial.maxU = 8; envMaterial.maxV = 8; var matList:MaterialsList = new MaterialsList( );// new MovieAssetMaterial( "Front", true ), new MovieAssetMaterial( "Back", true ), new MovieAssetMaterial( "Right", true ), new MovieAssetMaterial( "Left", true ), new MovieAssetMaterial( "Top", true ), new MovieAssetMaterial( "Bottom", true ) ); matList.addMaterial(envMaterial, "all"); torus = new CustomTriangle(envMaterial); torus.scale = 0.4; scene.addChild(torus); camera.focus = 400; camera.zoom = 3; startRendering(); } function clickHandler(e:MouseEvent){ moveLightOn = !moveLightOn; } override protected function onRenderTick(event:Event=null):void { camera.x += ( ( (stage.mouseX - (stage.stageWidth * .5)) * 2 ) - camera.x ) * .05; camera.y += ( ( (stage.mouseY-(stage.stageHeight*.5)) *.5) - camera.y ) * .03; torus.yaw(4) //if(moveLightOn){ lightPos+=0.43; light.z=Math.sin(lightPos)*200 light.x=Math.cos(lightPos)*200 //} //light.copyPosition(camera); super.onRenderTick(event); } } }