トップページ > 空即是色 > 2005年の記事 > ワクワクさん!
空即是色 ワクワクさん!
2005年 05月13日
以下、generative.infoより引用。
昨日は授業で、BillBoard functionというものを教えてもらう。ゲームなどの3Dプログラミングではたとえば球体をそのまま表示しても、ポリゴン数を食って重いので、平面の円のまま表示させて自動でプレイヤーの操作視点に向けることで擬似的に球体などを表示する方法がある。
…(中間部略)…
void BiilBoard()
{
GLdouble mat[16];
glGetDoublev(GL_MODELVIEW_MATRIX, mat);
mat[0]=mat[5]=mat[10]=1;
mat[1]=mat[2]=mat[4]=mat[6]=mat[8]=mat[9]=0;
glLoadMatrixd(mat);
}
上のソースコードでは、モデルビュー行列の4列目(と4行目)以外を、全て初期化している。
こちらの同次変換行列を見てもらえば、なんとなく解ると思うが、同次変換行列の4列目は、平行移動の為の値(x,y,z,[w])を保存している部分なのである。
そこだけを残して他を全て初期化することで、結果、平行移動だけが行われる。
つまり、"BiilBoard"はOpenGLの"glRotated","glScale*"を無効にする関数なのだ。
エフェクトなどの2次元の効果を
擬似的に3次元空間に合成することができるので便利。
トラックバック
この記事のトラックバックURL:http://null-null.net/mt/mt-tb.cgi/364
コメント
T* (2005年05月16日)
トラックバックしてくだちぃ (謎)
こんなエントリーあるとは気がつかなかったよ。
nogami (2005年05月16日)
トラックバックしてみました。
がんがってくだちい。