雲などの半透明な物がどうやっても自機の手前に来てしまいます。
描画順を並び替えても自機の手前に映るかどこにも映らないかのどっちかになります。
どうすればいいでしょうか?
雲が手前に
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 雲が手前に
どうやって描画しているか分からないと答え様がありませんよ。
その半透明な雲はどうやって自機との前後関係を管理しているのでしょうか?
その半透明な雲はどうやって自機との前後関係を管理しているのでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
ヒューガ
Re: 雲が手前に
void render_my(){
MV1SetPosition(my.model,my.xyz);
MV1SetRotationZYAxis(my.model,my.AxisZ,my.AxisY,0.0f);
MV1DrawModel(my.model);
}
void render_cloud(){
for(int i=0;i<CLOUD_MAX;i++){
if(cloud[i].f==1){
DrawBillboard3D(cloud[i].xyz,0.5f,0.5f,cloud[i].r,cloud[i].a,effectimg.cloudimg,TRUE);
}
}
}
void render_main(){
render_my();
render_cloud();
}- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 雲が手前に
半透明をもつ物を描画する場合は、カメラビュー変換後の3D空間上でZ値ソートして奥のものから描画する必要があります。
そうしないとZバッファの働きで半透明の向こうの物体が描画されない場合が出てきます。
「ビュー行列の取得とビュー座標への変換について」
http://hpcgi2.nifty.com/natupaji/bbs/pa ... st&no=1554
そうしないとZバッファの働きで半透明の向こうの物体が描画されない場合が出てきます。
「ビュー行列の取得とビュー座標への変換について」
http://hpcgi2.nifty.com/natupaji/bbs/pa ... st&no=1554
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。