RenderLayers – Selective Rendering
I haven’t quite decided where to work yet, but I was getting tired of not blogging
After the pop-up launches, make sure to click to give the .swf keyboard focus. Then use the “right” and “left” keys to render the right or left sphere. The important thing to notice here is that the spheres are both in the same scene, but they’re only being rendered when you choose.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | package { import flash.events.Event; import flash.events.KeyboardEvent; import flash.ui.Keyboard; import org.papervision3d.core.proto.MaterialObject3D; import org.papervision3d.lights.PointLight3D; import org.papervision3d.materials.shadematerials.FlatShadeMaterial; import org.papervision3d.objects.primitives.Sphere; import org.papervision3d.view.BasicView; import org.papervision3d.view.layer.ViewportLayer; [SWF(width="900", height="480", backgroundColor="#000000", frameRate="31")] public class RenderLayers extends BasicView { private var isLeftRendering:Boolean = false; private var isRightRendering:Boolean = false; private var leftSphere:Sphere; private var rightSphere:Sphere; private var rightLayers:Array = []; private var leftLayers:Array = []; public function RenderLayers() { super(900, 480, false, false); var light:PointLight3D = new PointLight3D(true); var leftSphereMaterial:MaterialObject3D = new FlatShadeMaterial(light, 0xcc0000, 0x111111, 10); leftSphere = new Sphere(leftSphereMaterial, 300); leftSphere.x = -500; var rightSphereMaterial:MaterialObject3D = new FlatShadeMaterial(light, 0x00cc00, 0x111111, 10); rightSphere = new Sphere(rightSphereMaterial, 300); rightSphere.x = 500; var leftSphereLayer:ViewportLayer = new ViewportLayer(viewport, leftSphere); viewport.containerSprite.addLayer(leftSphereLayer); leftLayers.push(leftSphereLayer); var rightSphereLayer:ViewportLayer = new ViewportLayer(viewport, rightSphere); viewport.containerSprite.addLayer(rightSphereLayer); rightLayers.push(rightSphereLayer); scene.addChild(leftSphere); scene.addChild(rightSphere); //Render once so the spheres appear renderer.renderScene(scene, camera, viewport); startRendering(); stage.addEventListener(KeyboardEvent.KEY_DOWN, stage_keyDownHandler); stage.addEventListener(KeyboardEvent.KEY_UP, stage_keyUpHandler); } private function stage_keyDownHandler(event:KeyboardEvent):void { switch(event.keyCode) { case Keyboard.LEFT: isLeftRendering = true; break; case Keyboard.RIGHT: isRightRendering = true; break; } } private function stage_keyUpHandler(event:KeyboardEvent):void { switch(event.keyCode) { case Keyboard.LEFT: isLeftRendering = false; break; case Keyboard.RIGHT: isRightRendering = false; break; } } override protected function onRenderTick(event:Event = null):void { //The spheres are always rotating leftSphere.rotationX++; rightSphere.rotationX--; //But they're only rendered if their selected layer is rendered if(isLeftRendering) { renderer.renderLayers(scene, camera, viewport, leftLayers); } if(isRightRendering) { renderer.renderLayers(scene, camera, viewport, rightLayers); } } } } |
-
John Lindquist
-
Augie
-
Vico
-
RK
-
gordee
-
Dan
-
Aloïs
Search
Recommended Books
Speaking at FITC Toronto
Recent Posts
- Moving to johnlindquist.com
- AsyncCommand with Robotlegs, Signals, Flight, MinimalComps
- Search Widget – Robotlegs, Signals, Flight, Minimal Comps, Yahoo Astra
- FDT Super Awesome March Deal
- haXe Tutorial
- AS3 Signals Tutorial
- Preferred Video Tutorial Resolution?
- TweenMax – Tweening a timeline (Advanced Tweening)
- Robotlegs + Flight + Union Platform
- Back in the saddle
- Eclipse Theme Designer Preview
- RobotLegs Hello World Video Tutorial
- 10 Things Every Senior Flash Developer Should Know
- Efflex – 3D Effects for Flex
- MorphController – Mighty Morphing Papervision3D
Recent Comments
- شقق للبيع في الاردن on Moving to johnlindquist.com
- Annakhan006 on Augmented Reality – Recursive Webcam
- Yarout on Augmented Reality – Recursive Webcam
- Vivon on about
- Josh @ Wall Stickers on Moving to johnlindquist.com
- list of lpn courses on SpringCamera3D and Driving a Car
- rn to bsn in montgomery al on archive
- PowerPoint Recovery on Eclipse Theme Designer Preview
- cheat mw3 on Test if a plane is within the view of the camera (aka testing if culled)
- Goa Hotels on Looking around the inside of a Sphere
Categories
Archives
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


