Pixel3D交錯ブロック Nyarineko forked:0favorite:11lines:77license : MIT License modified : 2009-10-19 21:02:50 share Tweet package { import flash.events.Event; import flash.events.MouseEvent; import flash.filters.BlurFilter; import flash.geom.ColorTransform; import org.papervision3d.core.geom.Pixels; import org.papervision3d.core.geom.renderables.Pixel3D; import org.papervision3d.view.BasicView; import org.papervision3d.view.layer.BitmapEffectLayer; import org.papervision3d.core.effects.BitmapLayerEffect; import org.papervision3d.core.effects.utils.BitmapClearMode; import org.papervision3d.core.effects.utils.BitmapDrawCommand; [SWF(width="465", height="465", backgroundColor="0x000000", frameRate="40")] public class Main extends BasicView { private var _pixels:Pixels; private var _pixels2:Pixels; public function Main() { Wonderfl.disable_capture(); super(0, 0, true, true); camera.z=-400; camera.y=100; var layer:BitmapEffectLayer=new BitmapEffectLayer(viewport, 465, 465, true, 0, BitmapClearMode.CLEAR_PRE, true); layer.addEffect(new BitmapLayerEffect(new BlurFilter(4, 4, 2), false)); layer.drawCommand = new BitmapDrawCommand(); viewport.containerSprite.addLayer(layer); _pixels=new Pixels(layer); _pixels2=new Pixels(layer); layer.addDisplayObject3D(_pixels); layer.addDisplayObject3D(_pixels2); scene.addChild(_pixels); scene.addChild(_pixels2); _iniset(); addEventListener(Event.ENTER_FRAME, onFrame); stage.addEventListener(MouseEvent.MOUSE_MOVE, _move); } private function _iniset():void{ var angle:Number; var radius:Number; var x:Number; var y:Number; var z:Number; var pn:Number; var r:Number; var g:Number; var b:Number; for (var i:int = -150; i <= 150; i += 20){ y = i; r = (Math.abs(i) / 150) * 255; for(var j:Number = -150;j <= 150;j += 20){ x=j; g = 0; for(var k:Number = -150;k <= 150;k += 20){ z=k; b = 255 - r; _pixels.addPixel3D(new Pixel3D( (0xff << 24 | r/1.5 << 16 | g << 8 | b ), x, y, z)); _pixels2.addPixel3D(new Pixel3D( (0xff << 24 | (255-r)/2 << 16 | (255-g)/2 << 8 | (255-b)/1.5 ), x, y, z)); } } } } private function _move(e:MouseEvent = null):void{ camera.x = (mouseX - 230) * 3; camera.y = (mouseY - 130) * 3; } private function onFrame(e:Event):void { _pixels.rotationY+=0.2; _pixels.rotationZ+=0.2; _pixels2.rotationX-=0.3; _pixels2.rotationZ-=0.3; startRendering(); } } } Code Fullscreen Preview Fullscreen FlashFit uwi tkinjo chamadi sw_lucchini paq matsumos flasher_bbb clockmaker awef ibu4gin : !! Pixel3D layer Pixel3D rotationZ drawCommand BitmapDrawCommand rotationX rotationY BitmapLayerEffect viewport MouseEvent.MOUSE_MOVE MouseEvent.ENTER_FRAME Math.abs MouseEvent BlurFilter int Number