/** * ... * @author Brad Roodt * @version 0.1 * * Demonstrates a simple composite material (wireframe and bitmap material) applied to a plane * * Steps for Composite Material: * * 1)Create individual materials that will be used in the composite material * (in this case a wireframe material and a bitmap material) * * 2)Create a composite material * * 3)Add the materials from step 1, to the composite material, using compositeMaterialName.addMaterial(simpleMaterialName); * * 4) Create object, passing it the composite material. * * TO RESOLVE: setting alpha for movie and bitmap materials. * */ package src { import flash.display.Scene; import flash.display.*; import flash.events.Event; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.display.StageQuality; import org.papervision3d.view.Viewport3D; import org.papervision3d.render.BasicRenderEngine; import org.papervision3d.scenes.Scene3D; import org.papervision3d.objects.primitives.Sphere; import org.papervision3d.cameras.FreeCamera3D; import org.papervision3d.materials.*; import org.papervision3d.materials.special.*; public class myCompositeMaterial2 extends Sprite { var viewport:Viewport3D; var sphere:Sphere; var renderer:BasicRenderEngine; var scene:Scene3D; var camera:FreeCamera3D; var wireMat:WireframeMaterial; var colorMat:ColorMaterial; var compMat:CompositeMaterial; public function myCompositeMaterial2() { stage.quality = StageQuality.HIGH; stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; viewport = new Viewport3D(0,0,true,false); addChild(viewport); renderer = new BasicRenderEngine(); scene = new Scene3D(); camera = new FreeCamera3D(); camera.focus = 1100; camera.zoom = 1; colorMat = new ColorMaterial(0x0A3843); wireMat = new WireframeMaterial(0x88DAEE); compMat = new CompositeMaterial(); compMat.addMaterial(colorMat); compMat.addMaterial(wireMat); sphere = new Sphere(compMat, 200, 8, 6); scene.addChild(sphere); stage.addEventListener(Event.ENTER_FRAME, rotateSphere); } private function rotateSphere(e:Event):void { sphere.yaw(1); renderer.renderScene(scene, camera, viewport); } } }