Forked from: sakef's PV3Dその8 Pixels使ってみる diff:113 forked from: PV3Dその8 Pixels使ってみる matsu4512 forked:0favorite:5lines:73license : MIT License modified : 2009-06-22 13:16:01 Embed Tweet //forked from : sake's PV3Dその8 Pixels使ってみる package { import flash.events.Event; import flash.filters.BlurFilter; import org.papervision3d.core.effects.BitmapLayerEffect; import org.papervision3d.core.effects.utils.BitmapClearMode; import org.papervision3d.core.geom.Pixels; import org.papervision3d.core.geom.renderables.Pixel3D; import org.papervision3d.materials.special.ParticleMaterial; import org.papervision3d.objects.DisplayObject3D; import org.papervision3d.objects.special.ParticleField; import org.papervision3d.view.BasicView; import org.papervision3d.view.layer.BitmapEffectLayer; [SWF(width="512", height="512", backgroundColor="0x000000", frameRate="40")] public class PapervisionEffect2 extends BasicView { private var ary:Array; private var layer:BitmapEffectLayer; public function PapervisionEffect2() { camera.zoom = 100; layer=new BitmapEffectLayer(viewport, 500, 500, true, 0x000000, BitmapClearMode.CLEAR_PRE, true); viewport.containerSprite.addLayer(layer); layer.addEffect(new BitmapLayerEffect(new BlurFilter(8, 8, 4), false)); startRendering(); ary = []; for(var i:uint = 0; i < 5; i++){ createPixels(); } addEventListener(Event.ENTER_FRAME, onFrame); } private function createPixels():void{ var color:uint = (0xff << 24 | (0xff-0x99)*Math.random()+0x99 << 16 | 0x66*Math.random() << 8 | 0xff); var rX:Number; var rY:Number; for(var i:uint = 0; i < 10; i++){ var pixels:Particle = new Particle(layer); scene.addChild(pixels); for(var s:Number=0; s < Math.PI * 2; s+=0.02){ var p:Pixel3D=new Pixel3D(color, Math.cos(s)*200, Math.sin(s)*200, 0); pixels.addPixel3D(p); } pixels.x = 0; pixels.y = 0; pixels.vrx = Math.random()*10-5; pixels.vry = Math.random()*10-5; ary.push(pixels); } } private function onFrame(e:Event):void { var pixels:Particle; var i:uint = ary.length; while(i--){ pixels = ary[i]; pixels.rotationX += pixels.vrx; pixels.rotationY += pixels.vry; } camera.x += (stage.stageWidth/2 - mouseX)/10; camera.y += (stage.stageHeight/2 - mouseY)/10; camera.z += (stage.stageHeight/2 - mouseY)/10; } } } import org.papervision3d.core.geom.Pixels; import org.papervision3d.view.layer.BitmapEffectLayer; class Particle extends Pixels{ public var vrx:Number; public var vry:Number; public function Particle(effectLayer:BitmapEffectLayer, name:String = "pixels3D"):void{ super(effectLayer, name); } } Code Fullscreen Preview Fullscreen arkcocco tkinjo hacker_176qo.. ooolionboyoo.. : 3DPixels3D Pixels fakestar : 螺旋丸 3D Papervision3D Pixels pixels layer color Pixel3D rotationY rotationX BitmapClearMode.CLEAR_PRE BitmapLayerEffect viewport name push Math.cos BlurFilter Math.PI length Math.sin Event.ENTER_FRAME String Math.random Event