- 自由度の高いオフセットとバンプマッピング
OpenGLでもバンプマッピングという言って見れば3次元的なテクスチャが行える(らしい)。バンプマッピングは基本的な形状だけモデリングしておいて微妙な凹凸やしわをつけたりする技術だ。例えば岩やブロック塀などモデリングでは至難を要する形状ではこのバンプマッピングは絶大な威力を発揮する。
CCTLには曲面をオフセットする機能があるが、バンプマッピングに応用できそうだと気がついた。要は曲面パラメータUVの各点においてオフセット量が自在に操作できれば良いのではないかと。という事で実験してみました。
まず、ベースになる曲面を定義、この段階では滑らかな曲面である。そしてマッピングする凹凸面を次のように定義する。でもって、マッピング面の凹凸にもとずいてオフセットして見ると、
|
|
|
ベースになる曲面 |
マッピングする凹凸面 |
マッピング面の凹凸にもとずいてオフセット | と、いう感じである。
もう少し遊んで見ると、
- 新たな関数の追加
複雑なデータ構造を行列とそのリンク関係によってデータ構造として戻り値を返す事が可能な関数です。複雑なデータ構造を生成する関数はこれまで戻り値を返しませんでした。その代わりに出力ファイルに全てテキスト出力されます。そのため戻り値を正確な内部形式でスクリプト内で得て別処理に渡していくような事が難しく、代替手段( detdata
という関数)で出力結果を取得する必要があり全ての情報を得ることが出来ませんでした。この難点を解消するための関数です。
※これら計算結果はWCCTLによって得られたものです
|