Archive for November 18th, 2008
Fun with Pixel3D and Vertex3D
I was just playing around with Pixel3D and came up with the following result.
The pixels are placed by finding each vertex of the sphere then proportionately moving from the origin (x:0, y:0, z:0) out to the vertex.
package { import flash.events.Event; import org.papervision3d.core.geom.Pixels; import org.papervision3d.core.geom.renderables.Pixel3D; import org.papervision3d.core.geom.renderables.Vertex3D; import org.papervision3d.materials.ColorMaterial; import org.papervision3d.objects.primitives.Sphere; import org.papervision3d.view.BasicView; import org.papervision3d.view.layer.BitmapEffectLayer; [SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")] public class PixelField extends BasicView { private const NUM_PIXELS:int = 200; private var pixels:Pixels; public function PixelField() { camera.y = 100; //you need a bitmapEffectLayer for the pixels var bitmapEffectLayer:BitmapEffectLayer = new BitmapEffectLayer(viewport); //this allows for the neat overdraw cylinder effect //bitmapEffectLayer.clearBeforeRender = true; pixels = new Pixels(bitmapEffectLayer); var sphere:Sphere = new Sphere(new ColorMaterial(0xffffff, 0), 500); scene.addChild(sphere); singleRender(); for each(var vertex3D:Vertex3D in sphere.geometry.vertices) { for(var i:int = 0; i < NUM_PIXELS; i++) { //move the x, y, z out to the vertex3D //in proportion to the # of pixels var randX:Number = vertex3D.x *(i / NUM_PIXELS); var randY:Number = vertex3D.y *(i / NUM_PIXELS); var randZ:Number = vertex3D.z *(i / NUM_PIXELS); //Notice the color is an ARGB value, so 8 f's instead of 6 //meaning the first FF = alpha, then red, green, blue var randColor:Number = Math.random() * 0xffffffff; var pixel:Pixel3D = new Pixel3D(randColor, randX, randY, randZ); pixels.addPixel3D(pixel); } } //remember to add the bitmapEffectLayer to the viewport viewport.containerSprite.addLayer(bitmapEffectLayer); scene.addChild(pixels); addEventListener(Event.ENTER_FRAME, renderAndRotateHandler); } private function renderAndRotateHandler(event:Event):void { pixels.yaw(1); singleRender(); } } }
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
- Katie on Augmented Reality – Recursive Webcam
- software akuntansi terbaik on Back in the saddle
- loan rates on Augmented Reality – Recursive Webcam
- loan rates on Looking around the inside of a Sphere
- reverse phone lookup on Looking around the inside of a Sphere
- Oidhreachta on The Spotlight Effect (Dimming the unselected)
- Hosting company on archive
- aanbae on Back in the saddle
- Domain registration on Looking around the inside of a Sphere
- website designing company 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

