雲が手前に

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ヒューガ

雲が手前に

#1

投稿記事 by ヒューガ » 13年前

雲などの半透明な物がどうやっても自機の手前に来てしまいます。
描画順を並び替えても自機の手前に映るかどこにも映らないかのどっちかになります。
どうすればいいでしょうか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 雲が手前に

#2

投稿記事 by softya(ソフト屋) » 13年前

どうやって描画しているか分からないと答え様がありませんよ。
その半透明な雲はどうやって自機との前後関係を管理しているのでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ヒューガ

Re: 雲が手前に

#3

投稿記事 by ヒューガ » 13年前

コード:

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: 雲が手前に

#4

投稿記事 by softya(ソフト屋) » 13年前

半透明をもつ物を描画する場合は、カメラビュー変換後の3D空間上でZ値ソートして奥のものから描画する必要があります。
そうしないとZバッファの働きで半透明の向こうの物体が描画されない場合が出てきます。

「ビュー行列の取得とビュー座標への変換について」
http://hpcgi2.nifty.com/natupaji/bbs/pa ... st&no=1554
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ヒューガ

Re: 雲が手前に

#5

投稿記事 by ヒューガ » 13年前

別のオブジェクト表示系を並べ替えたら治りました。お騒がせしました

閉鎖

“C言語何でも質問掲示板” へ戻る