source package { import com.as3dmod.ModifierStack; import com.as3dmod.modifiers.Twist; import com.as3dmod.plugins.pv3d.LibraryPv3d;   import flash.events.Event;   import org.papervision3d.lights.PointLight3D; import org.papervision3d.materials.shadematerials.GouraudMaterial; import org.papervision3d.objects.primitives.Plane; import org.papervision3d.view.BasicView;   [SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")] public class As3dModTwist extends BasicView { private var plane:Plane; private var modifierStack:ModifierStack; private var twist:Twist;   public function As3dModTwist() { var light:PointLight3D = new PointLight3D(); var cellMaterial:GouraudMaterial = new GouraudMaterial(light, 0xcc0000, 0x111111, 10); cellMaterial.doubleSided = true;   plane = new Plane(cellMaterial, 800, 800, 20, 20); plane.rotationX = 45; plane.rotationY = 45;   modifierStack = new ModifierStack(new LibraryPv3d(), plane); twist = new [...]
source package { import flash.events.Event; import flash.ui.Mouse;   import org.papervision3d.core.proto.MaterialObject3D; import org.papervision3d.core.utils.Mouse3D; import org.papervision3d.materials.ColorMaterial; import org.papervision3d.materials.WireframeMaterial; import org.papervision3d.materials.special.CompositeMaterial; import org.papervision3d.objects.DisplayObject3D; import org.papervision3d.objects.primitives.Plane; import org.papervision3d.objects.primitives.Sphere; import org.papervision3d.view.BasicView; import org.papervision3d.view.layer.ViewportLayer; import org.papervision3d.view.layer.util.ViewportLayerSortMode;   [SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")] public class LookingAroundTheInsideOfASphere extends BasicView { private var lookAtMe:DisplayObject3D; private var sphere:Sphere; private var mouse3D:Mouse3D; private var plane:Plane;   public function LookingAroundTheInsideOfASphere() { viewport.interactive = true; mouse3D = viewport.interactiveSceneManager.mouse3D; Mouse3D.enabled = true;   lookAtMe = new DisplayObject3D();   var wireframeMaterial:WireframeMaterial = new WireframeMaterial(0x444444); var colorMaterial:ColorMaterial = new ColorMaterial(0xdddddd); var sphereMaterial:CompositeMaterial = new CompositeMaterial(); sphereMaterial.addMaterial(wireframeMaterial); sphereMaterial.addMaterial(colorMaterial); sphereMaterial.interactive = true; sphereMaterial.doubleSided = [...]
This example shows how to make a target object (in this case “lookAtMe”) and have the camera target it using camera.target = lookAtMe. Also, the arrow will behave similarly by calling arrow.lookat(lookAtMe) in onRenderTick. For added effect, the light follows around lookAtMe. source package { import flash.events.Event;   import gs.TweenMax; import gs.easing.Cubic;   import org.papervision3d.core.proto.MaterialObject3D; import org.papervision3d.events.InteractiveScene3DEvent; import org.papervision3d.lights.PointLight3D; import org.papervision3d.materials.shadematerials.FlatShadeMaterial; import org.papervision3d.materials.shadematerials.GouraudMaterial; import org.papervision3d.objects.DisplayObject3D; import org.papervision3d.objects.primitives.Sphere; import org.papervision3d.view.BasicView; import org.pv3d.objects.Arrow;   [SWF(width="640", height="480", [...]
source package { import flash.display.Bitmap; import flash.events.Event; import flash.events.MouseEvent;   import org.papervision3d.lights.PointLight3D; import org.papervision3d.materials.BitmapMaterial; import org.papervision3d.materials.shaders.CellShader; 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 InsideFacesOfACube 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;   [Embed(source="assets/287.jpg")] private var environmentAsset:Class;   private var light:PointLight3D; private var cube:Cube; private var materialsList:MaterialsList; private var sides:int = Cube.ALL;   public function InsideFacesOfACube() { materialsList = new MaterialsList();   light = new PointLight3D();   materialsList.addMaterial(createShadedMaterial(backAsset), "back"); materialsList.addMaterial(createShadedMaterial(bottomAsset), "bottom"); materialsList.addMaterial(createShadedMaterial(frontAsset), "front"); materialsList.addMaterial(createShadedMaterial(leftAsset), "left"); materialsList.addMaterial(createShadedMaterial(rightAsset), [...]
Click to party source package { import org.flintparticles.common.actions.Age; import org.flintparticles.common.actions.Fade; import org.flintparticles.common.counters.Blast; import org.flintparticles.common.counters.Steady; import org.flintparticles.common.energyEasing.Quadratic; import org.flintparticles.common.events.EmitterEvent; import org.flintparticles.common.events.ParticleEvent; import org.flintparticles.common.initializers.Lifetime; import org.flintparticles.threeD.actions.Accelerate; import org.flintparticles.threeD.actions.LinearDrag; import org.flintparticles.threeD.actions.Move; import org.flintparticles.threeD.actions.RandomDrift; import org.flintparticles.threeD.emitters.Emitter3D; import org.flintparticles.threeD.geom.Vector3D; import org.flintparticles.threeD.initializers.Position; import org.flintparticles.threeD.initializers.Rotation; import org.flintparticles.threeD.initializers.ScaleAllInit; import org.flintparticles.threeD.initializers.Velocity; import org.flintparticles.threeD.papervision3d.PV3DRenderer; import org.flintparticles.threeD.papervision3d.initializers.PV3DObjectClasses; import org.flintparticles.threeD.particles.Particle3D; import org.flintparticles.threeD.zones.ConeZone; import org.flintparticles.threeD.zones.LineZone; import org.flintparticles.threeD.zones.PointZone; import org.flintparticles.threeD.zones.SphereZone; import org.papervision3d.core.effects.view.ReflectionView; import org.papervision3d.objects.DisplayObject3D;   [SWF(width="640", height="480", backgroundColor="#000000", frameRate="31")] public class HappyNewYear extends ReflectionView { private var flintRenderer:PV3DRenderer; private var rocket:Emitter3D;   public function HappyNewYear() { flintRenderer = new PV3DRenderer( scene ); setupRocket(); startRendering(); }   private function setupRocket():void { rocket = new Emitter3D(); rocket.counter [...]
I posted a similar example in the archive over a year ago now that turned out to be quite popular. Since that’s now outdated, here’s a quick n’ dirty updated version: All images come from dryicons.com/ source package { import flash.display.Bitmap; import flash.display.Sprite; import flash.events.MouseEvent;   import gs.TweenMax; import gs.easing.Cubic;   import org.papervision3d.core.math.Quaternion; import org.papervision3d.events.InteractiveScene3DEvent; import org.papervision3d.materials.BitmapMaterial; import org.papervision3d.objects.DisplayObject3D; import org.papervision3d.objects.primitives.Plane; import org.papervision3d.view.BasicView;   [SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")] public class TweenToSpatialPlanes extends BasicView { [Embed(source="assets/1.jpg")] private var oneAsset:Class; [Embed(source="assets/2.jpg")] private [...]
source package { import flash.display.MovieClip; import flash.events.Event; import flash.events.MouseEvent;   import org.papervision3d.materials.MovieMaterial; 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 SwitchingMovieMaterialsOnACube extends BasicView { private var cube:Cube; private var currentAsset:Class = blueBoxAsset;   public function SwitchingMovieMaterialsOnACube() { var materialsList:MaterialsList = new MaterialsList();   //blueBoxAsset is the classname of the movie from the library in the MovieMaterials .swc //you have to create a new material for each side or the materialsList will replace all //the [...]
source package { import flash.events.Event; import flash.filters.BlurFilter; import flash.geom.Point;   import org.flintparticles.common.counters.Steady; import org.flintparticles.common.displayObjects.RadialDot; import org.flintparticles.common.initializers.ImageClass; import org.flintparticles.common.initializers.ScaleImageInit; import org.flintparticles.twoD.actions.DeathZone; import org.flintparticles.twoD.actions.Move; import org.flintparticles.twoD.actions.RandomDrift; import org.flintparticles.twoD.emitters.Emitter2D; import org.flintparticles.twoD.initializers.Position; import org.flintparticles.twoD.initializers.Velocity; import org.flintparticles.twoD.renderers.DisplayObjectRenderer; import org.flintparticles.twoD.zones.LineZone; import org.flintparticles.twoD.zones.PointZone; import org.flintparticles.twoD.zones.RectangleZone; import org.papervision3d.core.effects.view.ReflectionView; import org.papervision3d.materials.ColorMaterial; import org.papervision3d.materials.special.Letter3DMaterial; import org.papervision3d.objects.DisplayObject3D; import org.papervision3d.objects.primitives.Plane; import org.papervision3d.typography.Text3D;   [SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")] public class MerryChristmas extends ReflectionView { private var pivotPoint:DisplayObject3D = new DisplayObject3D();   public function MerryChristmas() { viewportReflection.filters = [new BlurFilter(3,3,1)]; setReflectionColor(.5, .5, .5); surfaceHeight = -80;   setupText(); setupSnow(); setupTree();   addEventListener(Event.ENTER_FRAME, enterFrameHandler); }   private function setupText():void { var rockwell:Rockwell = new Rockwell(); var merryMaterial:Letter3DMaterial = new [...]
source package { import flash.events.Event; import flash.filters.BlurFilter; import flash.filters.ColorMatrixFilter;   import org.flintparticles.common.actions.Age; import org.flintparticles.common.counters.Steady; import org.flintparticles.common.initializers.ColorInit; import org.flintparticles.common.initializers.Lifetime; import org.flintparticles.threeD.actions.Move; import org.flintparticles.threeD.actions.RandomDrift; import org.flintparticles.threeD.activities.RotateEmitter; import org.flintparticles.threeD.emitters.Emitter3D; import org.flintparticles.threeD.geom.Vector3D; import org.flintparticles.threeD.initializers.Velocity; import org.flintparticles.threeD.papervision3d.PV3DPixelRenderer; import org.flintparticles.threeD.zones.DiscZone; import org.papervision3d.core.effects.BitmapLayerEffect; import org.papervision3d.core.geom.Pixels; import org.papervision3d.view.BasicView; import org.papervision3d.view.layer.BitmapEffectLayer;   [SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")] public class FlintPixels2 extends BasicView { private var emitter:Emitter3D; private var emitter2:Emitter3D; private var flintRenderer:PV3DPixelRenderer; private var bitmapEffectLayer:BitmapEffectLayer; private var pixels:Pixels;   public function FlintPixels2() { camera.z = -300;   setupPixels(); setupEmitter(); setupEmitter2(); setupFlintRenderer();   emitter.start(); emitter2.start();   startRendering(); }   private function setupPixels():void { bitmapEffectLayer = new BitmapEffectLayer(viewport); viewport.containerSprite.addLayer( bitmapEffectLayer );   pixels = new Pixels(bitmapEffectLayer); bitmapEffectLayer.addDisplayObject3D(pixels); scene.addChild(pixels);   bitmapEffectLayer.addEffect(new BitmapLayerEffect(new BlurFilter(2, 2, 1))); //@see [...]
Please check the previous examples on box2dflash before jumping into this one. This time around, we’re going to create a “Distance Joint” on the large heavy box in the middle: source private function createDistanceJoint():void { var boxWidth:Number = 50;   var boxBody:b2BodyDef = new b2BodyDef(); boxBody.position = new b2Vec2(WIDTH/2/WORLD_SCALE, 420/WORLD_SCALE);   var box:b2Body = world.CreateBody(boxBody);   var boxShape:b2PolygonDef = new b2PolygonDef(); boxShape.SetAsBox(boxWidth/WORLD_SCALE, boxWidth/WORLD_SCALE); boxShape.density = .7; boxShape.friction = .3; boxShape.restitution = [...]
source package { import flash.events.Event; import flash.filters.BlurFilter;   import org.flintparticles.common.actions.Age; import org.flintparticles.common.counters.Steady; import org.flintparticles.common.initializers.ColorInit; import org.flintparticles.common.initializers.Lifetime; import org.flintparticles.threeD.actions.Accelerate; import org.flintparticles.threeD.actions.Move; import org.flintparticles.threeD.emitters.Emitter3D; import org.flintparticles.threeD.geom.Vector3D; import org.flintparticles.threeD.initializers.Velocity; import org.flintparticles.threeD.papervision3d.PV3DPixelRenderer; import org.flintparticles.threeD.zones.DiscZone; import org.papervision3d.core.effects.BitmapLayerEffect; import org.papervision3d.core.geom.Pixels; import org.papervision3d.view.BasicView; import org.papervision3d.view.layer.BitmapEffectLayer;   [SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")] public class FlintPixels extends BasicView { private var emitter:Emitter3D; private var flintRenderer:PV3DPixelRenderer; private var bitmapEffectLayer:BitmapEffectLayer; private var pixels:Pixels;   public function FlintPixels() { camera.z = -300;   setupPixels(); setupEmitter(); setupFlintRenderer();   emitter.start();   startRendering(); }   private function setupPixels():void { bitmapEffectLayer = new BitmapEffectLayer(viewport); viewport.containerSprite.addLayer( bitmapEffectLayer );   pixels = new Pixels(bitmapEffectLayer); bitmapEffectLayer.addDisplayObject3D(pixels); scene.addChild(pixels);   bitmapEffectLayer.addEffect(new BitmapLayerEffect(new BlurFilter(2, 2, 1))); }   private function setupEmitter():void { emitter = new [...]
Bartek Drozdz is a Flash3D rock star. He put together an as3 library called AS3Dmod which allows you to modify the shape of your 3d objects using a modifier stack. This example is a Hello World intro to using the Bend modifier. source package { import com.as3dmod.ModifierStack; import com.as3dmod.modifiers.Bend; import com.as3dmod.plugins.pv3d.LibraryPv3d;   import flash.events.Event;   import org.papervision3d.materials.WireframeMaterial; import org.papervision3d.objects.primitives.Plane; import org.papervision3d.view.BasicView;   [SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")] public class Papervision3DwithAS3Dmod extends [...]
source 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( Bitmap( new backAsset() ) ), "back"); materialsList.addMaterial(createShadedMaterial( Bitmap( new bottomAsset() ) ), "bottom"); materialsList.addMaterial(createShadedMaterial( [...]
Please view the previous posts on Box2DFlash. In part 3, we’re adding the ability to drag objects around with the mouse: source private var mousePVec:b2Vec2 = new b2Vec2(); private var mouseJoint:b2MouseJoint; private var mouseXWorldPhys:Number; private var mouseYWorldPhys:Number; private var isMouseDown:Boolean = false;   private function setupMouseEvents():void { stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp); }   private function onMouseDown(e:MouseEvent):void{isMouseDown = true;}; private function onMouseUp(e:MouseEvent):void{isMouseDown = false;};   private function updateMouseWorld():void{ mouseXWorldPhys = mouseX/WORLD_SCALE; mouseYWorldPhys = mouseY/WORLD_SCALE; }   private [...]
Please view the previous “Hello World” example before looking at this one. In part 2, we’re adding walls and cubes with the code below: source private function createWalls():void { var wallShapeDef:b2PolygonDef = new b2PolygonDef(); var wallBodyDef:b2BodyDef = new b2BodyDef(); var wall:b2Body;   //Left and Right Shape Definition wallShapeDef.SetAsBox(100/WORLD_SCALE, (HEIGHT+40)/WORLD_SCALE/2);   // Left wallBodyDef.position = new b2Vec2(-95 / WORLD_SCALE, HEIGHT/WORLD_SCALE/2); wall = world.CreateBody(wallBodyDef); wall.CreateShape(wallShapeDef);   // Right wallBodyDef.position = new b2Vec2((WIDTH+95) / WORLD_SCALE, [...]
I abhor the syntax for Box2DFlash, but I freely embrace it as an incredible 2d physics engine. This is example is about as basic as I can make it. I’ll follow up soon with more advanced examples with different shapes, mouse interactions, joints, etc. source package { import Box2D.Collision.Shapes.b2CircleDef; import Box2D.Collision.Shapes.b2PolygonDef; import Box2D.Collision.b2AABB; import Box2D.Common.Math.b2Vec2; import Box2D.Dynamics.b2Body; import Box2D.Dynamics.b2BodyDef; import Box2D.Dynamics.b2World;   import flash.events.Event;   import org.papervision3d.objects.DisplayObject3D; import org.papervision3d.objects.primitives.Sphere; import org.papervision3d.view.BasicView;   [SWF(width="640", height="480", [...]
source package { import flash.display.BitmapData; import flash.events.Event; import flash.events.MouseEvent; import flash.geom.Point;   import org.papervision3d.core.geom.renderables.Vertex3D; import org.papervision3d.core.math.Number3D; import org.papervision3d.core.math.Plane3D; import org.papervision3d.core.proto.MaterialObject3D; import org.papervision3d.events.InteractiveScene3DEvent; import org.papervision3d.lights.PointLight3D; import org.papervision3d.materials.BitmapMaterial; import org.papervision3d.objects.primitives.Plane; import org.papervision3d.view.BasicView;   [SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")] public class DraggingPlanes extends BasicView { private const NUM_PLANES:int = 11;   private var planeToDragOn:Plane3D; private var currentPlane:Plane;   private var light:PointLight3D;   public function DraggingPlanes() { viewport.interactive = true;   camera.y = 100;   for(var i:int = 0; i < NUM_PLANES; i++) { var material:MaterialObject3D = createMaterial(); material.interactive = true; /* Please note that, by default, the material [...]
source 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.objects.primitives.Plane; import org.papervision3d.view.BasicView;     [SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")] public class ShadersExample extends BasicView { [Embed(source="assets/santa.jpg")] private var santaAsset:Class;   private var plane:Plane;   public function ShadersExample() { camera.z = -500;   var santaBitmap:Bitmap = new santaAsset() as Bitmap;   var light:PointLight3D = new PointLight3D();   var bitmapMaterial:BitmapMaterial = new BitmapMaterial(santaBitmap.bitmapData, true); var shader:PhongShader = new PhongShader(light, 0xffffff, 0x000000, 10); var shadedMaterial:ShadedMaterial = new ShadedMaterial(bitmapMaterial, shader); shadedMaterial.doubleSided = true;     plane = new [...]
Flint -> http://flintparticles.org/ Flint is very cool. It just has a bit of a learning curve. Here’s a “Hello Word” example that I hope will help. source package { import org.flintparticles.common.actions.Action; import org.flintparticles.common.actions.Age; import org.flintparticles.common.counters.Steady; import org.flintparticles.common.initializers.Lifetime; import org.flintparticles.threeD.actions.Move; import org.flintparticles.threeD.emitters.Emitter3D; import org.flintparticles.threeD.geom.Vector3D; import org.flintparticles.threeD.initializers.Position; import org.flintparticles.threeD.initializers.Velocity; import org.flintparticles.threeD.papervision3d.PV3DRenderer; import org.flintparticles.threeD.papervision3d.initializers.PV3DObjectClass; import org.flintparticles.threeD.zones.PointZone; import org.flintparticles.threeD.zones.Zone3D; import org.papervision3d.objects.primitives.Sphere; import org.papervision3d.view.BasicView;   [SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")] public class Papervision3DWithFlint extends BasicView { private const NUM_SPHERES_PER_SECOND:uint = 5;   private var emitter:Emitter3D; private var pv3dRenderer:PV3DRenderer;   public [...]
This shows you how to make little baby triangles. If you put enough of these together with the proper coordinates and rotations, you could make a Tyrannosaurs Rex! source package { import flash.events.Event;   import org.papervision3d.core.geom.TriangleMesh3D; import org.papervision3d.core.geom.renderables.Triangle3D; import org.papervision3d.core.geom.renderables.Vertex3D; import org.papervision3d.materials.ColorMaterial; import org.papervision3d.view.BasicView;   [SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")] public class TriangleMesh3DExample extends BasicView { private var triangleMesh3d:TriangleMesh3D;   public function TriangleMesh3DExample() { var material:ColorMaterial = new ColorMaterial(0xcc0000); material.doubleSided = true;   //all the 200's are points [...]

Subscribe to Planet Flash

Search

Tags

&lt;head&gt; 3d 3d Flash Actionscript actionscript 3 ActionScript 3.0 Adobe Adobe Air Adobe AIR (Apollo) Adobe Flash Adobe Flex AdobeMAX08 AIR AIR Adobe Integrated Runtime Announcements apollo Art AS2 as3 Asides awards Babble BEA Beautiful Web Books Business Cairngorm ColdFusion Community Components Conference Conferences degrafa design dev Development Events Examples Featured Flash Flash CS3 Flash experiments flash player Flex Flex 3 Flex Builder Flex Builder Development Flex Example FMS Fun Gallery General GeoWeb Google Industry Inspiration iphone Jobs Links linux Marketing MAX MAX 2007 Misc News news & events Off topic Open Source Other Papervision3D Parallax Denigrate Personal photos Photoshop Process Processing Resources RIA Singularity Site News Stuff techmology Technology Tennis Thinking Loud Tips Uncategorized Video Whatever

Blogs

Buttons

Planetarium