- 曲面スタンプ(バンプマッピングその2)
今日は元旦、早いものである。夕方から立てこもり状態に入ったのでお遊びプログラム作成だ。変な話だがこれが一種のストレス開放になっているのだ。仕事でプログラム設計やら作りこみやらやっているとどうしてもヤクザな事をしたくてたまらなくなる。これは中学生がツッパるのと似ているかもしれない。以前も書いたようなような気がするのだが(CCTLユーザーには申し訳ないが)頭で考えて(たまには紙と鉛筆で計算する事もあるが)すぐにコーディングして実行させたいのだ。なので効率なんか無視!!っていう事もままある。本の正式なタイトルは忘れたが多分「生粋のC言語プログラマ」だったと思うが、もう十年以上まえの事だがこの本に「プログラムはなるべく早い時期に動作させるべきである」と。ただし、こうも書いてある「プロトタイプは捨てろ」。CCTLでは後のは無視しちゃってるけど(すいません)。
- 以前曲面に凹凸をつける事を紹介したが少し応用というか、、、まぁ見てもらうとわかりますが曲面に立体スタンプを押すといった技法の紹介である。というかバンプマッピング、正確にはCCTLのはバンプマッピングではない。独自と言えば独自の方法なのだが言ってみれば特殊オフセットである。
スタンプを用意する。これはオフセット量を面上にどのようにマッピングするかを規定する面である。式で書くと
スタンプ面(u,v) と面(u,v) に対して特殊オフセット面(u,v) = 面(u,v)
+N・スタンプ面(u,v).Z値
である。(Nは面法線)
この曲面にスタンプすると、
あれ?。。。。これはメッシュの精度が追従しないためだと分かった。でもって再処理すると、
と、こんな感じである。もっと変な曲面でも大丈夫である。例えば、
※これら計算結果はWCCTLによって得られたものです
|