AS3Dmodで「はためく布」や「北斗神拳を受けた人の頭」を実現。
以下が、改造したPv3dDemo.asのソース。改造したのは、コンストラクタ内の変更開始~変更終わりまでの間。
で、実際にコンパイルするのは「DemoBase.as」なので注意。
import com.as3dmod.modifiers.Bend;
import com.as3dmod.modifiers.Noise;
import com.as3dmod.ModifierStack;
import com.as3dmod.plugins.pv3d.LibraryPv3d;
import org.papervision3d.core.proto.MaterialObject3D;
import org.papervision3d.materials.ColorMaterial;
import org.papervision3d.materials.special.CompositeMaterial;
import org.papervision3d.materials.WireframeMaterial;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.objects.primitives.Sphere;
import org.papervision3d.view.BasicView;
import flash.events.Event;
import com.as3dmod.util.ModConstant;
public class Pv3dDemo extends BasicView {
private var c
isplayObject3D;
private var m:ModifierStack;
private var base:DemoBase;
public function Pv3dDemo(base:DemoBase) {
this.base = base;
var mt:CompositeMaterial = new CompositeMaterial();
mt.addMaterial(new ColorMaterial(0x27590e));
mt.addMaterial(new WireframeMaterial(0x49a51c));
mt.doubleSided = true;
//変更開始
var mt2:CompositeMaterial = new CompositeMaterial();
mt2.addMaterial(new ColorMaterial(0xff0000));
mt2.addMaterial(new WireframeMaterial(0x27590e));
mt2.doubleSided = true;
c = new Sphere(mt, 200, 16, 16);
var q:Sphere = new Sphere(mt2, 100, 16, 16);
q.z = -200;
c.addChild(q);
//変更終わり
c.rotationX = 60;
c.rotationY = 45;
scene.addChild(c);
m = new ModifierStack(new LibraryPv3d(), c);
base.setupStack(m);
startRendering();
}
protected override function onRenderTick(event:Event = null):void {
base.onRender();
m.apply();
super.onRenderTick(event);
}
}
}
- ページ:
- 1
- 2



