奥行を有効にする場合の図形の描画(DxLib)

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
dic
記事: 658
登録日時: 15年前
住所: 宮崎県
連絡を取る:

奥行を有効にする場合の図形の描画(DxLib)

#1

投稿記事 by dic » 13年前

また、つまづきました
現在3Dの図形描画について練習しています
そこで、VECTOR 変数を使って、3Dの球の集合を描いて
Y軸を中心に回転させると、どうにも変に描画されます

// ①・Zバッファを有効にする
SetUseZBuffer3D( TRUE ) ;

// ②・Zバッファへの書き込みを有効にする
SetWriteZBuffer3D( TRUE ) ;

上のふたつがDxLibのサンプルにあったので、
球の奥行きに関して関係しているのではないかと考えてます
しかし、

// ここで、①と②を同時に実行すると、色が変になる
// ①もしくは②のみだと、色は変ではないけど
// 奥行きが変になる

となります
どこをどういじれば、球の回転が思ったとおりに描画されるのでしょうか?
おそらく、球のライトのあたらない裏の部分を描画すればいいと


ソースコード、ワークスペースもつけてアップロードしておきます
添付ファイル
1100 DxLib骨組み.zip
(14.63 KiB) ダウンロード数: 116 回

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

Re: 奥行を有効にする場合の図形の描画(DxLib)

#2

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

正常に描画されないのはClearDrawScreen()でZバッファをクリアしていないからです。
どんどんZバッファに深度情報が上書きされるので、3Dがどんどん書かれない状態となっています。

「Zバッファ - Wikipedia」
http://ja.wikipedia.org/wiki/Z%E3%83%90 ... 5%E3%82%A1

【補足】
前にも書きましたが確実動くモノに簡単な機能を加えていくことで足固めをしながら複雑にしていってください。
問題が起きたら確実に動くものと比べることで問題点が明らかに出来ます。

いきなり複雑なものを書くと今回のようにバグの原因がわからなくなります。
これは明らかに自分でやっていることがわかない複雑なものを書いている事が問題の原因です。
前回の私とトントンさんの返答をよく読み直してみてください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

dic
記事: 658
登録日時: 15年前
住所: 宮崎県
連絡を取る:

Re: 奥行を有効にする場合の図形の描画(DxLib)

#3

投稿記事 by dic » 13年前

>>softyaさん
前回の質問ででた、サイトを一読してからまたやります
メインパソコンが壊れたので、またしばらくお休みします

閉鎖

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