[back]

【雑記】
2005/2/13 Pixel Displacement


サブピクセルではありません、2チャンネルのLW関係の掲示板で紹介されていたバンプをディスプレースメントされているようにレンダリングするプラグインの話.


2D(正確には違うが)でピクセル処理からディスプレースを再構築するというアプローチが非常に面白いと感動.

Shaderでバンプをかけているプラグインのバンプは反映しない事から、おそらくShaderPluginでbumpHeightをキャプチャして
P -> P'(:=P + N * bumpHeight)
とした座標を自前のバッファに格納、レンダリング完了後にPixelFilterでこのバッファを操作して各ピクセルごとに隣接するピクセルの座標からポリゴンを作成、それをスクリーンに再投影してZバッファ込みで描画・合成しているものと思われる、カラーはレンダリングバッファのものがそのままポリゴンの頂点カラーと見なせるので別段シェーディング計算は不要.

推測ではあるものの、もしこの方法であるなら欠点としては元の画像の隠れた部分については描画されない事になる. 後はピクセルを走査する際に別の物体に隠れて隣接ピクセルが存在しない場合の補間方法にあるけど、ここはAVT_3DBumpの場合同じピクセルの座標でやっている模様


こんなカンジで物体が重なると若干不自然に見えたり、元画像で隠れている部分がレンダリングされなかったりする.

個人的には反対側の隣接ピクセルの値から直線仮定で隠れたピクセルの値を推測する方がそれらしい値が得られるのでは無いかと思ったりするのだけど、今の所自分で実装していないので確認はできない.

後は元々のピクセルを引き伸ばす形になるので、若干画像のピンが甘くなるけど、この辺は仕方の無い所だと思う、メリットは非常に高速だというトコロ.

----------------

また、このアプローチだとかなり計算コストを押さえられる為、リアルタイムグラフィックに使えないかという気もする.

ディスプレースメントをモデリングの代用に使うのはそも勘違いだと思うし、クオリティを求めるようなアニメーションでは難しいものの、リアルタイムのゲームレベルであれば、せいぜい数ピクセルの揺らぎを与えるものと考えて使えば動かしても結構誤魔化せるような気がしないでも無かったり.

しかし正にアイデアの産物といった所で、非常に面白い発想に久しぶりに感動する事しきり.

 



過去の雑記
2005年 1月
2004年度


メールアドレス収集ロボット対策の為メールアドレスはHP上に記載しておりません、
ソフト内のドキュメントには記載しておりますので、御用の方はそちらまでお願いします.
since 2003/10/04, Y.Ume/Tabo