平面を回転する
おはようございます!
今日も朝から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();
}
}
}