平面を回転する

おはようございます!

今日も朝からPapervision3Dに勤しんでます。



PV3Dの勉強を始めて思いましたが、Web上に参考になるサイトが本当に多いですね。

インターネットの偉大さを改めて実感しました。



では、今日は平面を回転させてみました。

こんな感じです。





マテリアルとは何ぞや?

マテリアルは、テクスチャが設定されたオブジェクトです。

(テクスチャは、物体の表面を表現するためものです。)

表現には、色や画像や透明度等が設定できます。



今回使用したものは、ColorMaterialオブジェクトです。

他の種類についてはまたの機会に。



ColorMaterialオブジェクト

単色のテクスチャを生成します。

ちなみに、色々なマテリアルがありますが、基本的にMaterialObject3Dから派生してます。



【継承関係】

ColorMaterial → TriangleMaterial → MaterialObject3D



マテリアルについて詳しいページ



Planeオブジェクト

平面を生成します。

平面を作るためには、テクスチャとしてマテリアルを指定します。



【継承関係】

Plane → TriangleMesh3D → Vertices3D → DisplayObject3D



両面表示

平面が回転すると、片面が透明になってしまうことがあります。

そんなときは、マテリアルの doubleSided を true にします(デフォルトは false)。



以下、今回のソースです。


package {

import flash.events.Event;
import org.papervision3d.materials.ColorMaterial;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.view.BasicView;

[SWF(backgroundColor = "#000000", width="400", height="300")]
public class Main extends BasicView {

public function Main() {
//ベタ塗りのテクスチャを生成(色はランダム)
var material:ColorMaterial = new ColorMaterial(Math.random() * 0xffffff);
//両面使用
material.doubleSided = true;
//生成したテクスチャを使用してパネル(平面)を生成
var plane:Plane = new Plane(material, 200, 200);
//シーンに追加
scene.addChild(plane);

//イベント追加
addEventListener(Event.ENTER_FRAME, function(e:Event):void {
//くるくる回す plane.rotationY += 3;と同じ
plane.yaw(3);
}
);
//レンダリングスタート
startRendering();
}

}
}