Cube with different sides - MaterialsList
package { import flash.display.Bitmap; import flash.events.Event; import org.papervision3d.lights.PointLight3D; import org.papervision3d.materials.BitmapMaterial; import org.papervision3d.materials.shaders.PhongShader; import org.papervision3d.materials.shaders.ShadedMaterial; import org.papervision3d.materials.shaders.Shader; import org.papervision3d.materials.utils.MaterialsList; import org.papervision3d.objects.primitives.Cube; import org.papervision3d.view.BasicView; [SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")] public class CubeWithDifferentSides extends BasicView { [Embed(source="assets/back.jpg")] private var backAsset:Class; [Embed(source="assets/bottom.jpg")] private var bottomAsset:Class; [Embed(source="assets/front.jpg")] private var frontAsset:Class; [Embed(source="assets/left.jpg")] private var leftAsset:Class; [Embed(source="assets/right.jpg")] private var rightAsset:Class; [Embed(source="assets/top.jpg")] private var topAsset:Class; private var light:PointLight3D; private var cube:Cube; public function CubeWithDifferentSides() { var materialsList:MaterialsList = new MaterialsList(); light = new PointLight3D(); materialsList.addMaterial(createShadedMaterial( new backAsset() ), "back"); materialsList.addMaterial(createShadedMaterial( new bottomAsset() ), "bottom"); materialsList.addMaterial(createShadedMaterial( new frontAsset() ), "front"); materialsList.addMaterial(createShadedMaterial( new leftAsset() ), "left"); materialsList.addMaterial(createShadedMaterial( new rightAsset() ), "right"); materialsList.addMaterial(createShadedMaterial( new topAsset() ), "top"); cube = new Cube(materialsList, 500, 500, 500, 5, 5, 5); scene.addChild(cube); startRendering(); } private function createShadedMaterial(bitmap:Bitmap):ShadedMaterial { var bitmapMaterial:BitmapMaterial = new BitmapMaterial(bitmap.bitmapData, true); var shader:Shader = new PhongShader(light, 0xffffff, 0x333333, 10, bitmap.bitmapData, bitmap.bitmapData); var shadedMaterial:ShadedMaterial = new ShadedMaterial(bitmapMaterial, shader); return shadedMaterial; } override protected function onRenderTick(event:Event=null):void { cube.rotationY += (viewport.containerSprite.mouseX - cube.rotationY) * .1; cube.rotationX += (viewport.containerSprite.mouseY - cube.rotationX) * .1; renderer.renderScene(scene, camera, viewport); } } }
2 Comments to Cube with different sides - MaterialsList
When applying shaders to your cube is it possible to ad event listeners to them. I created a cube with movieclips for each side and had mouse events for each one. Once i applied the shader the mouse events stopped working. How do you add the shader but keep all the functionality that was once there?
March 10, 2009
trying this file out of the “box”
i get this error message:
TypeError: Error #1007: Instantiation attempted on a non-constructor.
at CubeWithDifferentSides$iinit()
i’m looking through but i am a newbie to PV3D, si have no idea what it’s in reference to.
Leave a comment
Search
Recent Posts
- MorphController - Mighty Morphing Papervision3D
- End dump
- Test if a plane is within the view of the camera (aka testing if culled)
- Materials Reference
- Perlin Blob
- Dynamic Text on a Plane
- Maya Texture Baking
- Creating a Custom VectorVision Font
- Workshop video and example dump
- 3D Math Book Recommendation
- Heading to New York. brb ;)
- Launching Flex4.org
- Flex 4 Layouts and Groups
- Flex 4 States
- How to click on stuff in Papervision3D - Viewport, ViewportLayers, InteractiveScene3DEvent, Mouse3D, and MovieMaterial Buttons
Recent Comments
- alexxcz on MorphController - Mighty Morphing Papervision3D
- andre venancio on 3D Math Book Recommendation
- DS on Dynamic Text on a Plane
- John Lindquist on Maya Texture Baking
- Itai on Maya Texture Baking
- Javier on End dump
- samBrown on End dump
- tf on archive
- Pan on requests
- Martin Lindelöf on requests


March 6, 2009