メイン

2007年12月12日

プリミティブな形状

planeObj = rootNode.addChild( new Plane( material, 300, 300, 2, 2 ) );
sphereObj = rootNode.addChild( new Sphere( material, 150, 8, 8 ) );
cubeObj = rootNode.addChild( new Cube( material, 300, 300, 300, 1, 1 ) );
cylinderObj = rootNode.addChild( new Cylinder( material, 150, 300, 8, 8 ) );

mouseEvent

こちらによると、

Scene3D は 3D オブジェクトへのマウスイベント付加に対応していません。
Scene3D のサブクラスである MovieScene3D を使う必要があります。

とのこと。ただし
オブジェクトは MovieScene3D 直下に配置

だそうです。これのカイケツ手法としてhttp://blog.r3c7.net/?p=81があります。

f-siteサンプルによると、

ポイントはDisplayObject3Dのcontainer:Spriteにマウスイベントを設定する部分です。
だそうです。やってみます

マテリアル

動画をマテリアルにしたい。

1.ビデオ videoStreamMaterial
material = new VideoStreamMaterial( video, stream );
cubeObj = scene.addChild( new Cube( material, 300, 300, 300, 1, 1 ) );
//material.updateBitmap();で更新(だと思う)

2.ムービークリプ(参考
material = new MovieMaterial(mc, true);//第2引数はtransparent
material.doubleSided = true;
//material.updateBitmap();で更新(だと思う)

3.ビットマプ ひゅうが君ばりの強引
plane.material.bitmap.draw(hoge);
plane.material.updateBitmap();
material.updateBitmap();
//materialは、BitmapMaterial。 直接drawしてるから、material.updateBitmap()はいらない


2007年12月10日

pv3d#3 FreeCamera3D

どうやらpv3dには

FreeCamera3d
Camera3d

という異なるカメラがあるらしい。

Camera3dではrotationXとかに数値を入れても何も起こらなかったけれど
FreeCamera3dではカメラアングルが変わった。ふううむ。

pv3d #2 material planeObj

var bmpData:BitmapData = new BitmapData(TEXTURE_W,TEXTURE_H,true,0x00000000);

//マテリアル設定
var material:BitmapMaterial = new BitmapMaterial(bmpData);
material.oneSide = false;

//Planeオブジェクト生成
planeObj = scene.addChild( new Plane( material, planeSize, planeSize, segment, segment) );

2007年12月05日

pv3d sample

http://theflashblog.com/?p=304
http://theflashblog.com/?p=305
http://theflashblog.com/?p=306

2007年11月30日

pd3d #1

ペーパービジョンのクラス構成・設計を勉強して自分のスキル向上を狙いたい。サンプルコードを書いてみる。

1.コンテナを作る。Scene3d
this.hoge = new Sprite();
addChild(this.hoge);
scene = new Scene3D( container );

2.カメラの設定。Camera3d
camera = new Camera3D();
camera.z = -300
camera.y = -300
camera.x = 300
camera.focus = 100;
camera.zoom = 1;
this.scene.renderCamera( camera );//描画!

3.シーンにオブジェクトを追加。例としてplaneObj
var planeObj:DisplayObject3D
= scene.addChild( new Plane( material, 100, 80, segment, segment) );
planeObj.x=0
planeObj.y=0
planeObj.z=0
planeObj.rotationX=0
planeObj.rotationY=0
planeObj.rotationZ=0

--

cameraのプロパティとして
x,y,z,focus,zoom
があった。cameraのrotationXとかをいじっても値が変わらない。
うーむ。rotationいらないのかな?
x,y,zだけじゃカメラがドッチを向いているか分からないじゃないか。
それともカメラは常にある1点を見つめている、という設定なのだろうか。