http://www1.axfc.net/uploader/Si/so/145546
上のファイルですが
ある程度飛び続けると空やモデルがちらつきます。
どうすればいいでしょう?
画面がちらつく
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 画面がちらつく
私のところでは何も起きません。
バグの追求をお願いする場合は、バグの再現方法を詳細に記載するか、何もしなくても必ずバグを再現するプログラムを添付して下さい。
ちなみに圧縮ファイルのdebug/ipchフォルダやacecombat DX.sdfは圧縮ファイルが巨大化するので不要です。
バグの追求をお願いする場合は、バグの再現方法を詳細に記載するか、何もしなくても必ずバグを再現するプログラムを添付して下さい。
ちなみに圧縮ファイルのdebug/ipchフォルダやacecombat DX.sdfは圧縮ファイルが巨大化するので不要です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 画面がちらつく
プログラムが大きくてコメントも殆ど無いので調査は困難です。ヒューガ さんが書きました:高度を上げて直進し続ければ発生すると思います。
スペックの問題でしょうか?
ノートpcでcorei5でメモリ4GBでグラボはオンボードです。
勘だと背景との位置関係の問題では?
背景を自機と一緒に移動させれば問題は起きないとかも知れません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
ヒューガ
Re: 画面がちらつく
空は自機と同じ座標に合わせています。
おそらくSetCameraNearFar関数でFarを100000と大きな数字にしているせいかもしれませんが、このぐらいにしないと思った通りに見えないので…
おそらくSetCameraNearFar関数でFarを100000と大きな数字にしているせいかもしれませんが、このぐらいにしないと思った通りに見えないので…
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 画面がちらつく
何らかの計算誤差は発生していると思います。
どんな飛行機系のゲームでも飛べる範囲は限界があるのは普通ですね。
飛行範囲を制限してはどうでしょうか?
それとSetCameraNearFarに関してはあまり適当にやるとZバッファの働きが悪くなるので近接したモデルに影響が出る場合があります。
空のモデル自体のscaleをいじって見るとか手は色々有る気がします。
点滅している時の空とカメラの位置関係も調べてみたほうが良いでしょう。
[追記]
忘れてました。
floatの有効精度は約7桁で実質6桁です。
10000000 + 1
など加減算は誤差に飲み込まれて計算されなくなるので、そういう所もないかチェックして下さい。
対処方法はdoubleにすることです。
あとdouble→float変換でも同じことが起こります。
10000001 とかは下の桁が誤差として消えます。
どんな飛行機系のゲームでも飛べる範囲は限界があるのは普通ですね。
飛行範囲を制限してはどうでしょうか?
それとSetCameraNearFarに関してはあまり適当にやるとZバッファの働きが悪くなるので近接したモデルに影響が出る場合があります。
空のモデル自体のscaleをいじって見るとか手は色々有る気がします。
点滅している時の空とカメラの位置関係も調べてみたほうが良いでしょう。
[追記]
忘れてました。
floatの有効精度は約7桁で実質6桁です。
10000000 + 1
など加減算は誤差に飲み込まれて計算されなくなるので、そういう所もないかチェックして下さい。
対処方法はdoubleにすることです。
あとdouble→float変換でも同じことが起こります。
10000001 とかは下の桁が誤差として消えます。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 画面がちらつく
背景モデルの座標がオーバーフローして、クリップされたりされなかったりを繰り返しているのではないでしょうか。
自機を中心に固定して、周りの世界を動かすようにすると良いですよ。
宇宙モノとかで際限なく進める(※)のはそういう仕組みになってます。
※たいてい世界がループしてますけど。
自機を中心に固定して、周りの世界を動かすようにすると良いですよ。
宇宙モノとかで際限なく進める(※)のはそういう仕組みになってます。
※たいてい世界がループしてますけど。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 画面がちらつく
SetCameraNearFarは視野じゃないですよ。ヒューガ さんが書きました:とりあえず視野を元に戻しました。
しかしこれだとなんか物足りないというか……
ちらつきこそなくなりましたが
とりあえずこれでやってみます
直したポイントをちゃんと書いてくださいね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 画面がちらつく
対処を転記しておきます。
ヒューガ さんが書きました:画面のちらつきについては全てのモデルやベクトルを小さくすることによってSetCamerNearFarを使わずに済み解決しました。
お騒がせしました。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 画面がちらつく
いずれオーバーフローするのは変わらないと思いますけど。
floatの精度は10進数でたかだか7桁程度しかないので、背景が遠くまで見えるように縮尺を落とすと、逆に細かい操作ができなくなります。
この手のゲームでは、遠くの敵になかなか照準が当たらなくなります、というか弾を当てられない場所ができます。
戦闘機なんでごまかす手はいろいろありますけど。
floatの精度は10進数でたかだか7桁程度しかないので、背景が遠くまで見えるように縮尺を落とすと、逆に細かい操作ができなくなります。
この手のゲームでは、遠くの敵になかなか照準が当たらなくなります、というか弾を当てられない場所ができます。
戦闘機なんでごまかす手はいろいろありますけど。