2008年 04月 29日
Papervision3D からちょっとずれますが
マップの作成でマップは板ポリにテクスチャーを
張るだけの予定ですが面倒なので 3Dソフトで
道路を作成します。
今回は 3D Studio Max 9 を使用します。
コースの元となるシェイプを作成します。
「作成」→「シェイプ」→「ライン」
トップで ドラッグしながらコースを描いていきます。

「修正」→「頂点」

形を整えていきます。

この時 移動モードにして
頂点を修正します。
次に道路ポリゴンの元となる平面を作成します。
「作成」→「標準プリミティブ」→「平面」
平面が出来上がります。

長さセグメントを32くらいにしておきます。
次に道路のマテリアルを作成します。
「マテルアル エディタ」
拡散反射光カラーにビットマップを追加します。

ビットマップを選択

画像ファイルを選択。
「ビューポートにマップを表示」をONにしておかないとビューで反映されません。

マテリアルをドラッグして先ほどの板ポリにドロップしてマテリアルを適応します。
次に板ポリをコースの形に変形させます。
平面を選択して「修正」→「モデファイヤリスト」→「パス変形」
「パスの選択」ボタンを押して先ほどのコース用のラインを選択します。
ストレッチの値を動かしていくと板ポリがコースの形になっていくことが分かります。

よく見るとテクスチャーが伸びているので修正します。

先ほど設定したマテリアルのビットマップを修正します。

タイリングのVをビューポートを見ながらいい感じになるまで設定します。

伸びは修正されたようです。

あとはフォトショップで地面を作成

うーんなかなかひどいできじゃないですかー!?
plane にこのテクスチャーを貼り付けてみる。

地面より上に車があるはずなのにチラチラ地面に入り込んでしまいます~
DisplayObject3d.screenZ
あやしーとこのプロパティーをいじっても全然反映されませんー
いろいろ調べていると
org.papervision3d.core.geom.TriangleMesh3D
でscreenZの値をscreenDepthというパラメータに代入している部分を発見
この部分を強制的に遠くにあるFaceという感じに修正して対応する。
org.papervision3d.core.geom.TriangleMesh3D
124行目 辺りを
//負のIDは一番下にレンダリングされる
if(this.id < 0){
rc.screenDepth = 1000000 - this.id;
}else{
rc.screenDepth = iFace.screenZ;
}
に修正してidが負の場合はFaceは遠くにあるものと計算させて対応した。
new Plane()
をした後に id を負の数値にする
※idは何かわからずに勝手に使用しました。普通に addChild していくと idは順に整数になるようなので 自動で負になることはないようでした。
ちらちら解決ー
左の方に行くと道があります。うーん・・
投稿者: d5 18 : 04
更新日:2008-05-10 22:37:33
|
|
|
| |