ふみゅ プログラマらしぃ...JACO Mailはこちら

 

 

光あるところ... - 2002年05月19日(日)

最近の口癖です。
続きは「必ず影がある」

ということで、DirextXの影について...
PSのころのポリゴン単位のZSort方法では、いいかげんに影をつけることができたのだが...要は、半透明のグーロポリゴンを地面に置けばいいだけのこと。地面とその他のオブジェクトの描画順序を考えれば、オブジェクトの真下に影を落とすことは割と簡単にできたのだが...
OpenGLとかDirectX等では、ZSortがピクセル単位なので、ルーズに影を落とすのはちょいと面倒くさい。ShadowBuffer/ShadowVolumeというのもあるのだが、これが難物。ポリゴンのエッジを検出して光線をトレースして、影を作るというものなのだが、案の定、影と日向の境目がくっきり、突起の多いものでやると、もぉ影なのかオブジェクトなのか判別ができない、おまけに影用と実物用に二回透視変換をかけたりするので処理も重いし、いまさらグラフィッカに「影用のObjectつくってくれー」というのも億劫なので、
結局、

Objectを描画時にStencilにマスクをかける
影用の板ポリゴンをプログラムで作成
shadowVolumeを板ポリから生成してStencilBufferに書き込む
板ポリゴンを地面の傾斜に合わせて再計算/描画

で何とか、ゲームらしい影が出るようになりました。





...




My追加

 

 

 

 


Home

INDEX
past  will


www.flickr.com
This is a Flickr badge showing public photos from tatsu.jaco. Make your own badge here.