ホームに戻る
ビルボード
図13_00:マウスを使って立体は回転するが 十字は常にこちらを向く
ソースコード:glut13_billboard.c
解説
ビルボードとはもともと道路横に置かれた看板などを意味する。
3Dグラフィックでは常にこちらを向く四角形のこと。
例えば火の粉を発火点からいろいろな方向に飛ばしたい場合、
火の粉をポリゴンで描画するのが難しいのであれば、
火の粉のテクスチャを貼ったビルボードを飛ばせば良い。
3D空間で常にカメラ方向から読める文字を飛ばすときにも使える。
OpenGL は通常でビルボードサポートしないので、
自力で処理を書いてやる必要がある。
原理は簡単で、
移動は中心座標(x, y, z)で行い四角形を、
(x - size, y - size, z)
(x - size, y + size, z)
(x + size, y + size, z)
(x + size, y - size, z)
の4点で表示すれば良い。
注意点は透明や半透明の物体を描画するときで、
この場合、先に不透明なものを描画し、透明や半透明のものは
デプスバッファを評価しながらデプスに書き込まない方法を使う。
ただし、こうすると手前のものを描いたあとに奥のものを描く場合、
奥のものを手前のものの前に描いてしまう問題が発生する。
よって、自力でソートをかけて奥から描画して解決する。。
このあたりは必要に応じて対応はいろいろだと思う。