fc2ブログ

Astro de 3D(15) PerspectiveProjection は放棄<6>

2008/06/19 21:03 - Astro





Vertex.as の変更

/**
* 投影処理(今回の透視投影)
*/
public function perspective(
            mat:Matrix3D,
            viewPoint:Number ):void {
(1) _projection = mat.transformVector( _local );
(2) _projection.w = viewPoint / ( viewPoint + _projection.z );
(3) _projection.project();
}
/**
* 投影処理(PerspectiveProjection を使用した透視投影)
*/
public function perspective(
            mat:Matrix3D,
            fov:PerspectiveProjection ):void {
(1) _projection = mat.transformVector( _local );
(2) _projection.w =
      fov.focalLength / (fov.focalLength+_projection.z);
(3) _projection.project();
}

Main.as の変更





(1)
// 頂点間の距離
private var DIST:Number = 100;
(2)
// 頂点生成
private function createVertics():void{
 vecVertex = Vector.( [
      new Vertex( -DIST/2,  DIST/2, -DIST/2 ),
      new Vertex(  DIST/2,  DIST/2, -DIST/2 ),
      new Vertex(  DIST/2, -DIST/2, -DIST/2 ),
      new Vertex( -DIST/2, -DIST/2, -DIST/2 ),
      new Vertex( -DIST/2,  DIST/2,  DIST/2 ),
      new Vertex(  DIST/2,  DIST/2,  DIST/2 ),
      new Vertex(  DIST/2, -DIST/2,  DIST/2 ),
      new Vertex( -DIST/2, -DIST/2,  DIST/2 ) ] );
}



初期配置

図1

zが最大および最小になる配置

図2



l / ( l + z )

  1. l + z = 0 になってはいけない
  2. l + z > 0 になってもいけない








にほんブログ村 IT技術ブログへ


スポンサーサイト




コメントの投稿

非公開コメント

タグクラウド

最近の記事
カテゴリ
月別アーカイブ
プロフィール

Aquioux

Author:Aquioux
日曜 Flash プログラマ。
Flash 作品は本館で展示しています。


mailto:aquioux@mail.goo.ne.jp

ブログパーツ

あわせて読みたい

フィードメーター - 閃光的網站・弛緩複合体 -Review Division-


検索/translation
Google



オススメ本

コメント
トラックバック
RSS

Add to Google

Bloglinesで閲読登録

はてなRSSに追加

Subscribe with livedoor Reader

My Yahoo!に追加

Add to Technorati Favorites!

feedpathに追加