画面がちらつく

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

画面がちらつく

#1

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

http://www1.axfc.net/uploader/Si/so/145546
上のファイルですが
ある程度飛び続けると空やモデルがちらつきます。
どうすればいいでしょう?

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

Re: 画面がちらつく

#2

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

私のところでは何も起きません。
バグの追求をお願いする場合は、バグの再現方法を詳細に記載するか、何もしなくても必ずバグを再現するプログラムを添付して下さい。
ちなみに圧縮ファイルのdebug/ipchフォルダやacecombat DX.sdfは圧縮ファイルが巨大化するので不要です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ヒューガ

Re: 画面がちらつく

#3

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

高度を上げて直進し続ければ発生すると思います。
スペックの問題でしょうか?
ノートpcでcorei5でメモリ4GBでグラボはオンボードです。

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

Re: 画面がちらつく

#4

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

ヒューガ さんが書きました:高度を上げて直進し続ければ発生すると思います。
スペックの問題でしょうか?
ノートpcでcorei5でメモリ4GBでグラボはオンボードです。
プログラムが大きくてコメントも殆ど無いので調査は困難です。

勘だと背景との位置関係の問題では?
背景を自機と一緒に移動させれば問題は起きないとかも知れません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ヒューガ

Re: 画面がちらつく

#5

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

空は自機と同じ座標に合わせています。
おそらくSetCameraNearFar関数でFarを100000と大きな数字にしているせいかもしれませんが、このぐらいにしないと思った通りに見えないので…

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

Re: 画面がちらつく

#6

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

何らかの計算誤差は発生していると思います。
どんな飛行機系のゲームでも飛べる範囲は限界があるのは普通ですね。
飛行範囲を制限してはどうでしょうか?

それとSetCameraNearFarに関してはあまり適当にやるとZバッファの働きが悪くなるので近接したモデルに影響が出る場合があります。
空のモデル自体のscaleをいじって見るとか手は色々有る気がします。

点滅している時の空とカメラの位置関係も調べてみたほうが良いでしょう。

[追記]
忘れてました。
floatの有効精度は約7桁で実質6桁です。
10000000 + 1
など加減算は誤差に飲み込まれて計算されなくなるので、そういう所もないかチェックして下さい。
対処方法はdoubleにすることです。

あとdouble→float変換でも同じことが起こります。
10000001 とかは下の桁が誤差として消えます。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

Re: 画面がちらつく

#7

投稿記事 by ISLe » 13年前

背景モデルの座標がオーバーフローして、クリップされたりされなかったりを繰り返しているのではないでしょうか。

自機を中心に固定して、周りの世界を動かすようにすると良いですよ。
宇宙モノとかで際限なく進める(※)のはそういう仕組みになってます。
※たいてい世界がループしてますけど。

ヒューガ

Re: 画面がちらつく

#8

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

とりあえず視野を元に戻しました。
しかしこれだとなんか物足りないというか……
ちらつきこそなくなりましたが
とりあえずこれでやってみます

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

Re: 画面がちらつく

#9

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

ヒューガ さんが書きました:とりあえず視野を元に戻しました。
しかしこれだとなんか物足りないというか……
ちらつきこそなくなりましたが
とりあえずこれでやってみます
SetCameraNearFarは視野じゃないですよ。
直したポイントをちゃんと書いてくださいね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

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

Re: 画面がちらつく

#10

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

対処を転記しておきます。
ヒューガ さんが書きました:画面のちらつきについては全てのモデルやベクトルを小さくすることによってSetCamerNearFarを使わずに済み解決しました。
お騒がせしました。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

Re: 画面がちらつく

#11

投稿記事 by ISLe » 13年前

いずれオーバーフローするのは変わらないと思いますけど。

floatの精度は10進数でたかだか7桁程度しかないので、背景が遠くまで見えるように縮尺を落とすと、逆に細かい操作ができなくなります。
この手のゲームでは、遠くの敵になかなか照準が当たらなくなります、というか弾を当てられない場所ができます。
戦闘機なんでごまかす手はいろいろありますけど。

閉鎖

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