BitmapViewportMaterial Example

Monday, December 1st, 2008 | examples

You can easily render one scene into a usable material using BitmapViewportMaterial.


source

package
{
	import flash.events.Event;
	import flash.filters.GlowFilter;
 
	import org.papervision3d.lights.PointLight3D;
	import org.papervision3d.materials.BitmapViewportMaterial;
	import org.papervision3d.materials.shadematerials.FlatShadeMaterial;
	import org.papervision3d.objects.primitives.Plane;
	import org.papervision3d.objects.primitives.Sphere;
	import org.papervision3d.scenes.Scene3D;
	import org.papervision3d.view.BasicView;
	import org.papervision3d.view.BitmapViewport3D;
 
	[SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")]
	public class BitmapViewportMaterialExample extends BasicView
	{
		private var viewport2:BitmapViewport3D;
		private var scene2:Scene3D;
		private var sphere:Sphere;
 
		private var plane:Plane;
 
		public function BitmapViewportMaterialExample()
		{
			viewport.containerSprite.filters = [new GlowFilter(0xcc0000, 1, 10, 10, 4)]; //adds a red outline to the plane
 
			//will be rendered inside of the plane
			viewport2 = new BitmapViewport3D();
			scene2 = new Scene3D();
			var light:PointLight3D = new PointLight3D();
			var sphereMaterial:FlatShadeMaterial = new FlatShadeMaterial(light, 0xcc0000);
			sphere = new Sphere(sphereMaterial, 400, 20, 20);
			scene2.addChild(sphere);
 
			//create a material of the above scene^^^
			var material:BitmapViewportMaterial = new BitmapViewportMaterial(viewport2, true);
			material.doubleSided = true;
 
			plane = new Plane(material);
			scene.addChild(plane);
 
			startRendering();
		}
 
		override protected function onRenderTick(event:Event = null):void
		{
			plane.localRotationY = viewport.containerSprite.mouseX;
			sphere.yaw(-1);			
 
			//render the material scene
			renderer.renderScene(scene2, camera, viewport2);
			//render the main scene
			renderer.renderScene(scene, camera, viewport);
		}
	}
}

Tags: ,

  • Seb
    Absolutely excellent. I was looking how to do this a few months ago, but I don't think this type of material existed in that verion of PV3D.
blog comments powered by Disqus

Search

Recommended Books

Speaking at FITC Toronto

 

December 2008
M T W T F S S
« Nov   Jan »
1234567
891011121314
15161718192021
22232425262728
293031  

Preferred Video Tutorial Resolution

  • 1024x768 (53%, 85 Votes)
  • 1280x1024 (15%, 24 Votes)
  • 1920x1080 (15%, 24 Votes)
  • 800x600 (13%, 20 Votes)
  • 480x320 (4%, 6 Votes)
  • 640x480 (0%, 2 Votes)

Total Voters: 160

Loading ... Loading ...