File04. 今のうちにやっとこう

- いまさらQD3D、242.3dでぐりぐり -

● 新バージョンでOpenGLに対応したnatoですが、ちょっとだけ、242.3dを使って、遊んでみましょう。242.3dをドライブするにはQuickDraw3Dの1.6以上が必要になります。お持ちでない方はAppleのサイトからダウンロードしてインストールする必要があります。
01. 242.3d
 242.3dはQuickDraw3Dの機能を利用して3Dマテリアルを使用できるオブジェクトです。
3Dマテリアルは3DMFという形式であらかじめ保存したものを使います。3DCGソフトウェア
には、このフォーマットで書き出せるものがあります。ここではStrata Studio Proというソフトを用いて作ったデータを使用しています。Maxプログラミングによって、3Dマテリアルを生成、消滅させたりはできないようです。
02. データの読み込み
 まず、データを読み込む必要があります。[read]コマンドでダイアログを開き、データを読み込みます。

図04_01

03. 3Dマテリアルの解像度を変える
 イメージデータを扱うnatoオブジェクトは、オフスクリーングラフポート(表示をするた
めにイメージを入れておくバッファのようなものです)を持っています。このサイズを指定することで、3Dマテリアルを表示する解像度を変えることができます。
 実際には、[offscreen.resize]コマンドに幅と高さを引数として242.3dオブジェクトに送
ることで、解像度の変更を行います。

図04_02

 上の4つの場合を比較したものが次の図です。表示は320x240のekran08を使いましたので、下の2つは目立った変化を感じられないかも知れませんが、大きいサイズで表示する場合は有効です。ただし、サイズが大きいとコンピュータの負担は重くなります。

図04_03

04. テクスチュア処理
 3DCG処理はおおざっぱに、

1. 「3D図形がどのような形か」を決定する(モデリング)。
2. 「表面がどのような状態か」を決定する(テクスチュア処理)。
3. 光線による影や反射などを設定し、「実際にどう見えるか」を計算する。(レンダリン
  グ)。

というふうに分けて考えることができます。もちろん、細かく見ていくと色々な処理や方法がありますが、だいたいこんな感じで考えていただくといいでしょう。

 1.は、ここではすでに出来上がったデータを使っていますのであまり関係しません。
 2.に関しては、元のデータでも指定されていますが、242.3dオブジェクトを利用して変更
することができます。ここでは、色々なイメージを3Dマテリアルの表面に「貼付け」て見ましょう。ビデオデジタイザからの映像を貼付けてみます。

図04_04

 USB接続のCCDカメラからの映像が、球の表面に貼付けられています。242.3dオブジェク トは、右インレットにイメージデータを送るだけで「貼付け」をすることができます。もちろん他のnatoオブジェクトからのイメージデータでもOKです。[surface.shader $1]に1か0を引数としてオブジェクトに送ることで、3DMFファイルが持っているテクスチュアと右インレットからのテクスチュアを切り替えることができます。少しだけ、凝った(?)事をやっているのが次の図です。

図04_05

 この例では、CCDカメラからの映像をピンクに縁取ってある242.3dの読み込んだ3Dマテリアルに貼付け、そのイメージをさらにイエローで縁取ってある242.3dの読み込んだ球に貼付けています。

05. レンダラーを変える
 3DCG処理の3.(レンダリング)に、ワイヤフレームを使用することもできます。
[renderer.set 0]でワイヤフレームに、[renderer.set 1]で通常のレンダリングになります。

図04_06

05. 3Dマテリアルのサイズ、カメラ位置の変更
 読み込まれた3Dマテリアルを、スケーリング、回転、ひねり等によって変化させることが
できます。また、実際に表示される画面は「バーチャルなカメラ越しの映像」になっています
ので、カメラの位置や角度等を変化させることで表示されるサイズや向きを変化させることが
できます。数値(引数)はけっこう複雑ですが、実際にやってみて適当な数値を与えるといいでしょう。

図04_07

 上の図のメッセージボックスの多くがコマンドです。"reset"がつくコマンドで初期値に戻すことができます。
 また、左上の部分では背景の色を指定しています。それぞれの値は0〜100の間になっています。ekran等では0〜65535でしたので注意が必要です。

06. その他
 図04_07で「環境光のオン/オフ」を行っていますが、これ以外にもスポット等のライティングの設定(位置、色、強さ等)を行うことができます。また、フォグ(霧状の反射)の設定も行うことができます。
 最後に、ここで見て来たコマンドをまとめたパッチ図を載せておきます。(サンプルパッチとしてダウンロード可能です)
back