ND3Dの被写界深度を使う
ND3Dは被写界深度を簡単に表現できるので
実際に試してみます。
被写界深度を表現するには、下の1行追加するだけです。
blurModeプロパティを設定することで
オブジェクトに対してボケがかかる。
render.blurMode = true;
distanceBlurプロパティで影響範囲を変化させています。
値を大きくすることで極端にボケを強くでき
逆に小さくすることでボケの範囲を弱めることができます。
render.distanceBlur = 100;
This movie requires Flash Player 9
被写界深度のピント効果が表現できます。
この簡易さがND3Dの魅力ではないでしょうか!
以下参考ソースになります。
package { import caurina.transitions.Tweener; import de.nulldesign.nd3d.events.*; import de.nulldesign.nd3d.geom.*; import de.nulldesign.nd3d.material.*; import de.nulldesign.nd3d.objects.*; import de.nulldesign.nd3d.renderer.*; import flash.display.*; import flash.events.*; import flash.ui.*; import flash.utils.*; public class Nd3dTest extends MovieClip{ private var render:Renderer private var camera:PointCamera private var renderChilds:Array=[] public function Nd3dTest () { if ( !stage ) addEventListener(Event.ADDED_TO_STAGE , test3D); else test3D(); } private function test3D():void { /** * camera */ camera = new PointCamera(stage.stageWidth, stage.stageHeight ); camera.fl = 600; camera.z = -2000; /** * renderer */ render = new Renderer(this); render.blurMode = true; render.distanceBlur = 100; /** * material */ var earthMat:BitmapMaterial = new BitmapMaterial( new Earth(0, 0) , false , true , false , true ) var moonMat:BitmapMaterial = new BitmapMaterial( new Moon(0, 0) , false , true , false , true ) var sph:Sphere = new Sphere(12, 100 , earthMat ); sph.rotateVerticesX(90) renderChilds.push(sph); var sph:Sphere = new Sphere(12, 30 , moonMat ); sph.zPos = 100; sph.rotateVerticesX(90) renderChilds.push(sph); addEventListener(Event.ENTER_FRAME, updateRender); Tweener.addTween( camera , { z:150 , time:5 , transition:"easeInOutCubic"}) } public var loop:Number=0 private function updateRender(e:Event):void { (renderChilds[0] as Mesh).angleY += 0.01; (renderChilds[0] as Mesh).angleX += 0.01; (renderChilds[1] as Mesh).xPos = 200 * Math.cos(Math.PI / 180 * loop ); (renderChilds[1] as Mesh).zPos = 200 * Math.sin(Math.PI / 180 * loop); (renderChilds[1] as Mesh).angleY += 0.05; loop ++; render.render(renderChilds , camera ); } } }
Comments
One Response to “ND3Dの被写界深度を使う”Trackbacks
Check out what others are saying about this post...[...] Go here to read the rest: ND3Dの被写界深度を使う | wszz No Related Post View the Contact Powered by さっそく ざつだん [...]