Archive for the ‘papervision3d’ Category
wowFlag [flarToolkit + pv3d + wowEngine]
As promised on youtube: here it’s the source
( thx to saqoosha for the help on the flarToolkit issue of translating the flag fixed vertex… you can find his example of doing this on his site, but he maded it for away3d =) )
the code is very extended, so if you have any doubts post them here, we will try and answer all of them
[ papervision3d ] Texture switch at runtime
Here we have a quick example on how to change the texture of a primitive object in papervision3d…
At the end this is what you get:
This is the Document Class, its pretty simple and the methods are self descriptive so i don’t think you’ll have any trouble using it :
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 107 108 109 110 111 112 113 114 115 116 117 118 119 | package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Sprite; import flash.display.MovieClip; import flash.events.Event; import flash.events.MouseEvent; import flash.display.SimpleButton; import org.papervision3d.view.BasicView; import org.papervision3d.objects.primitives.Plane; import org.papervision3d.materials.BitmapAssetMaterial; import org.papervision3d.cameras.Camera3D; import org.papervision3d.scenes.Scene3D; import org.papervision3d.view.Viewport3D; import org.papervision3d.render.BasicRenderEngine; /** * ... * @author Wolfito */ public class Main extends Sprite { private var scene:Scene3D; private var camera:Camera3D; private var viewport:Viewport3D; private var render_engine:BasicRenderEngine; private var my_plane:Plane; private var active_index:int = 0; public function Main() { create3dEnviroment(); buildPlane(); setEvents(); render3d(); } private function create3dEnviroment():void { camera = new Camera3D(); scene = new Scene3D(); viewport = new Viewport3D(0, 0, true, true); addChild(viewport); render_engine = new BasicRenderEngine(); } private function setEvents():void { // stage.addEventListener(MouseEvent.MOUSE_OVER, startRendering, false, 0, true); stage.addEventListener(Event.MOUSE_LEAVE, stopRendering, false, 0, true); // // button placed on the stage: this.switchButton.addEventListener(MouseEvent.CLICK, switchTexture, false, 0, true); } private function startRendering(e:MouseEvent):void { if (!this.hasEventListener(Event.ENTER_FRAME)) { this.addEventListener(Event.ENTER_FRAME, render, false, 0, true); } } private function stopRendering(e:Event):void { this.removeEventListener(Event.ENTER_FRAME, render); } private function buildPlane():void { var texture:BitmapAssetMaterial = new BitmapAssetMaterial("Pocoyo_0"); texture.smooth = true; my_plane = new Plane(texture, 500, 500, 4, 4); scene.addChild(my_plane); camera.target = my_plane; } private function render(e:Event):void { render3d(); moveCamera(); } private function render3d():void { render_engine.renderScene(scene, camera, viewport); } private function moveCamera():void { camera.x = (this.stage.mouseX - (this.stage.stageWidth / 2)) * 2; camera.y = (this.stage.mouseY - (this.stage.stageHeight / 2)) * 2; } private function switchTexture(e:MouseEvent):void { var bitmapData:BitmapData; if (active_index == 0) { //get bitmap linked from the library: bitmapData = new Pocoyo_1(283, 283); active_index = 1; } else { //get bitmap linked from the library: bitmapData = new Pocoyo_0(283, 283); active_index = 0; } my_plane.material.bitmap.dispose(); my_plane.material.bitmap = bitmapData; my_plane.material.updateBitmap(); } } } |
you can download the source code too! =)