テレワークならECナビ Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!
無料ホームページ 無料のクレジットカード 海外格安航空券 海外旅行保険が無料! 海外ホテル


log

2011.02.20 C++:デカールとシザリングについての話


今回はひさしぶりにプログラムの更新して、デカールプロジェクションという技術を
実装をしてみました。ちなみにデカールという言葉はプラモでも使われているようで、
3Dの間でもカラーマップのことをデカールと呼んだりもするので、実は結構定義が
あやふやだったりしますが。。今回実装したデカールプロジェクションというのは
壁やキャラクターにぺたっとシールを貼り付ける技術のことです。動画では青い
四角部分がデカールで実装しています。

処理部分はCPU計算で実装したのですが、技術的には以前実装したシェーダに
よる丸影とほとんど同じなので、実はそのシェーダを少し改良しただけでGPUで
実装できるんですけどね。。なぜあえてCPUで実装したかといえば、デカールの
処理内で使われるシザリングという技術を導入したかったからなのです。

このシザリングというのは、ポリゴンを任意の平面で分断して切り取るという至って
シンプルなテクニックで、DirectXではありがたいことに描画時のニアクリップ面に
対して自動的にシザリングを行ってくれます。ちなみにこれが行われないと
どうなるかといえば、、説明は行列計算の話になってくるので省きますが。
これだとカメラの後ろ側のポリゴンまで描画されてしまいます笑。

このシザリングをわざわざ自前でやる必要があるのかといえば、"背景モデルを
自動で分割できるから"というのが今回の本当の狙いだったりします。
モデリング制作において、毎回背景を手動で最適化されるように分割するのは
しんどいのですが。これによって気軽にぐりぐりと背景が作れるようになる訳です!

久しぶりに日記を更新したせいか、今回はやや記事が長くなりました。
技術的な話でも少し書こうかと思いましたが、、あまり有益な情報の無い、
ただの長文になってしまいました苦笑。

comment

たけなか 2011.02.20-02:53 Edit

ちなみに今回動画を作成するときのエンコード設定を変えたので
画質がよくなりました!ふふっ、これは嬉しい!

ただ、今のところデカール計算を全ポリゴンとの総当り判定にしてるので、
録画時に結構コマ落ちしてしまいました。。衝突判定用にグリッド分けしないと。