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


log

2013.05.12 C++:アウトラインの色分け

ファイル 430-1.jpg

今まではモデルのアウトラインを描画する場合、同じ色でしかを描画できない制限があった
のですが、今回はそれを改善させてマテリアルごとにアウトラインの色を分けて描画
できるようにしてみました。ちなみに以前、RGB3成分を1つにまとめる手法を実装した
ことをほんの少しだけ書きましたが、それはこれがやりたかったからなのでした。

何故わざわざ圧縮する必要があるかというと、DirectX9ではマルチレンダーターゲットは
最大4枚までですが、今現在は以下のように3枚使用しており、
・カラー+アルファ  (A8R8G8B8)
・深度+グロー強度 (R16B16)
・法線         (A8R8G8B8)
将来的には速度マップを4枚目に格納して2.5Dモーションブラーを搭載したいため
アウトラインの色がピクセルごとに乗せれないなぁ、と悩んでいて、モーションブラーを
切り捨てたり、アウトライン描画をモデル押し出しの手法に切り替えるといったことも
考えましたが。今回ふと思いついた「切り捨てるんだったらアウトラインの色の方を減色
して法線のバッファに格納すればよくない?」という逆転の発想に落ち着きました。

そして今回は実装しながら「我ながらいいアイデアだなあ」なんて思ったのでした笑。