PCで描画と内部処理の非同期処理ってどうやんの?
■ このスレッドは過去ログ倉庫に格納されています
0001(;´д⊂ヽ
02/04/29 16:14ID:Gsu.P7Dk実装したいんですが、具体的に、どういう風な構造にすればいいのか全然わかりません助けて
キー入力とかタイミングに厳しい処理を別スレッドで回すとして
描画担当スレッドはどーすればいいんでしょう?
(描画途中で別スレッドにより内部変数が書き換えられるケースが出てきますよね?)
0002名前は開発中のものです。
02/04/29 16:19ID:???0003名前は開発中のものです。
02/04/29 16:20ID:???0004名前は開発中のものです。
02/04/29 16:56ID:???0005名前は開発中のものです。
02/04/29 16:57ID:???0006名前は開発中のものです。
02/04/29 16:59ID:???お約束
3.簡単な質問やあいまいな(問題点の良く分からない)質問は汎用Q&Aスレッドへ
0007(;´д⊂ヽ
02/04/29 17:23ID:Gsu.P7Dk本でも扱ってないし
2Dゲーみたく、スプライトレジスタみたいのだとマスクとか多重化も
簡単なんだけど、3Dゲーでクラスだと色々面倒でねぇ
可変フレームレートつってもリフレッシュレートの関係で上限は120と
しても問題ないわけで、なんか上手く処理できんものんかと思ったわけです
ゲーム内ではよくある、1フレーム前の位置参照するような場合でも
前フレームが何ミリ秒前なのか可変だと困ると思うのです
仮に計算で逆算するにしても、ソウルキャリバーの剣の軌道なんかの
多段数の前フレーム参照は難しいかなと思うのです
そんな訳で僕の中では、上限120FPSで、処理落ちするときだけ描画を飛ばす
ような完全非同期ではない方法が正解だと思うのですが、ご意見聞きたいなぁと
0008名前は開発中のものです。
02/04/29 17:26ID:???それでいいんじゃない。
はい終了。
0009名前は開発中のものです。
02/04/29 17:30ID:???0010名前は開発中のものです。
02/04/29 17:45ID:???0011名前は開発中のものです。
02/04/29 17:58ID:???>>1=3=7=9
0012名前は開発中のものです。
02/04/29 17:59ID:???描画についていけないならデータ更新する、という>>7の方法でよい。
yaneSDKあたりにそれ関係の記事があったと思うので興味があればどうぞ。
それと、3Dゲームだと描画速度がFPS30位でも結構滑らかに見えてしまうので、
データ更新速度はFPS120ほど高くなくてもよいと思うよ。
質問内容がアレだったこともあるので、削除依頼は出しておいたほうが吉かと。
ログには残しておきたい内容だけれどねぇ。
0013名前は開発中のものです。
02/04/29 18:08ID:???だからといって1/60秒単位で変数を更新した場合、60FPSより早い描画だと、描画側が困っちゃうよね
ミサイルの先端はどんどん進むのに、後端(保存された数フレーム前情報)は1/60単位でしか更新されないと
煙の全長長くなっちゃうよね
(気付かないだろうけど、マシン毎になんか結果がことなるプログラムって気持ち悪い)
じゃぁミサイルの先端位置から後端の位置が計算できるか つーとそうでない場合もあるし
0014名前は開発中のものです。
02/04/29 18:19ID:???FPSが60頭打ちじゃ、手抜き!とか叩かれる。技術力もないみたいだし
キャラは同じ位置のままで再描画だけして、Over60FPS表示にしる!
どーせ人間の目では60fps以上区別つかないって言うしー
でも、中には区別できる人もいる罠
0015名前は開発中のものです。
02/04/29 18:38ID:qMxpqTZMこれはゲームにも当てはまるのか。
WindowのGUIをプライマリスレッドで管理し、
Direct3Dの描画をワーカースレッドで管理なんてOK?
軽く試してみたら、微妙に不具合が起きたのだけど。
0016名前は開発中のものです。
02/04/29 18:49ID:???実際に自分で簡単なサンプル作ってみればわかるが、
意外に誰でも区別できるぞ。
しかも、見るだけよりも操作するとはっきりわかる。
0017(;´д⊂ヽ
02/04/29 18:58ID:Gsu.P7Dk残影とか軌道が残るモノさえなければ、何にも考えなくていい気はするけど
0018名前は開発中のものです。
02/04/29 19:13ID:???0019名前は開発中のものです。
02/04/29 19:15ID:???期限切れはあぼ〜ん。
0020名前は開発中のものです。
02/04/29 19:22ID:???内部計算と入力処理と描画処理をうまいこと回すっていうのは面白いネタだと
思うがなー。OS側の制約がうざいけど。
>>15
SetCooperativeLevel に DDSCL_MULTITHREADED というフラグがある
0021名前は開発中のものです。
02/04/29 19:23ID:qMxpqTZMせっかく描画とそれ以外に処理を分けているんだから、
描画の具合が内部処理に影響を与える仕様にはするべきではない。
内部処理から描画ルーチンへのデータの流れは一方通行にするべき。
002321
02/04/29 19:30ID:qMxpqTZMヘルプに書いてあった。
>この設計は、暗にマルチスレッド アプリケーションを意図している。
>特に、アプリケーションはウィンドウ メッセージ処理スレッドを
>Direct3D スレッドから完全に分離しなければならない。
>1 つのスレッドでモード変更を行いながら、
>別のスレッドで Direct3D の呼び出しを行うアプリケーションは、
>デッドロックの危険性がある。
>
>このような理由から、Direct3D では、Reset、CreateDevice、TestCoorperativeLevel、
>または IDirect3DDevice8 の最後の Release の各メソッドは、
>ウィンドウ メッセージを処理するスレッドと同じスレッドからのみ呼び出すことができるように設計されている。
つまりこれさえ気をつければ、Windowスレッドとの兼ね合いを気にする必要はない訳だね。
0024名前は開発中のものです。
02/04/29 19:46ID:???でも、描画と内部、別スレッドで回すっても、クラス多用だと変数の二重化が面倒だよなぁ
保存する変数がいろいろ散らばってるもんなぁ
行列だったり、オイラー、Quaternion、ブレンド係数だったり
その辺、どー書くのがスマート?
0025名前は開発中のものです。
02/04/29 20:04ID:???みんなが使うデータは管理するクラスをひとつ作ってそいつが管理。
0026名前は開発中のものです。
02/04/29 20:10ID:???描画開始時に必要なデータをバッファにコピーしてきて、それから描画するとかな。
BeginCopyでデータをロックして読み出し開始、EndCopyでロック解除するみたいな。
(注:そんなAPIありません。自作でねw)
データが多いと大変だけど…設計次第。
0027名前は開発中のものです。
02/04/29 21:29ID:kRVsyEhUキャラclassには、標準として
Render系インターフェイスとFrame系インターフェイスと
別けて実装すればスッキリすると思う。
0028名前は開発中のものです。
02/04/29 21:29ID:???どうやってるんだろ?
ちなみに俺は持ってるけど読んでません
0029名前は開発中のものです。
02/04/29 21:51ID:???描画は1フレームごとのタイマー割りこみで処理する。
内部処理側は1フレーム分の描画オブジェクトのセットが完成したら
渡す。
でも内部処理と描画を分けるのは賢くないので、waitvに描画処理を
埋め込む事を推奨する。
0030名前は開発中のものです。
02/04/29 22:36ID:???市販のゲームは、描画にかかった時間を計って、その分データを更新するって
方法が一般的じゃない?速いマシンではいくらでも速くなるように作らないとね。
0031名前は開発中のものです。
02/04/30 03:27ID:???まともじゃない方法ならそれ以上だせるが、そっちのほうが手抜きだな。
0032名前は開発中のものです。
02/04/30 11:02ID:???>単発つーか、結構深いテーマな気がしたんで
その結果がこれかよ…
0033名前は開発中のものです。
02/04/30 14:35ID:???ソース公開しているのもあるよね。誰か調べたことのある人いる?
0034名前は開発中のものです。
02/04/30 16:03ID:???リフレッシュ論争だけど、60FPSのゲームをリフレッシュレート85とかにしてれば
どうやってもガタツクよね?
0035名前は開発中のものです。
02/04/30 16:14ID:a3cFuDTcこのスレもまだまだ存在意義があると思うな。
んで質問。スレッド間通信で最もゲーム向きなもん(軽い)て何?
やっぱりメッセージかな?
0036名前は開発中のものです。
02/04/30 16:53ID:???質問スレって初歩的な事しかわかんないじゃん
玄人は読んでる人少ないし
0037名前は開発中のものです。
02/05/01 00:46ID:T8nyusCw1)内部描画コマンドを定義する
2)ゲームのメインループとは別に描画スレッドを回す
3)メインループはタイマで毎秒60回ぶん回して、描画コマンドをキューに突っ込む
4)描画スレッドはキューに入っている描画コマンドを元に画面を作る
という感じ。
もちろん、描いてる途中で描画コマンドキューが書き換わったり、描画コマンドキュー
が構築されていないうちに描画されないようにするための工夫は必要。
(キューの多重化とか排他制御とか)
0038名前は開発中のものです。
02/05/01 06:46ID:???60回以上描き換えることがあっても、
内部処理は60回超えないってこと?
遅い場合は有利だけど、速い場合は利点はないってことでよいのかな?
003937
02/05/02 01:16ID:nbxhpyDs自分のやり方の場合、そうなります<60回/sec超えない
前フレームの処理にかかった時間を元に今フレームでの移動速度を補正
させつつ全力でぶん回す、というやり方もやったことはあるけど、個人的に
あまりエレガントだとは思えなかったので・・・。
0040名前は開発中のものです。
02/05/02 02:06ID:???描画コマンドが60回までしか発生しないから、描きかえも60回まででは?
0041名前は開発中のものです。
02/05/02 02:19ID:???004237
02/05/02 02:33ID:ZkWoqS7Aあー、言葉足らずですみませんでした。
もちろん1フレーム描いたら、描画コマンドキューが更新(表裏切り替え)
されるまでは描画もしません(_o_)
0043名前は開発中のものです。
02/05/02 02:48ID:???0044名前は開発中のものです。
02/05/02 03:26ID:iMh3R/Ps120回なんか回したって意味ないんだから
60回上限にして、その分アイドルに回した方が
全然いいと思うがナ。
0045名前は開発中のものです。
02/05/02 12:13ID:???ウィンドウモードのことを考慮してるんじゃない?
フルスクリーン60Hz限定のゲームならいいんだけどね
更新60Hzでディスプレイ75Hzだと相当がたつく
0046名前は開発中のものです。
02/05/03 00:35ID:???これって2Dモノはよくわかるけど、3Dだとわかる?
それ以前にWindows特有の処理落ちみたいのがあるし、FPSとか場面毎のポリゴン数によって
処理落ちしたりして、何が原因だかよくわからないんだよねー
ダブルバッファをスマートに書くのはテンプレート使えばいいんじゃない?
描画と完全に分けるならトリプルバッファが必要だと思うけど。
でも、そんな面倒な構造にする必要あるかね?
0047名前は開発中のものです。
02/05/03 01:42ID:6JPEwFK2PCでやる以上、それは割り切るしかないと思う。
タイマで計って廻した所で、完全にVSyncと同期させるのは無理だし〜
0048名前は開発中のものです。
02/05/03 03:03ID:???0049名前は開発中のものです。
02/05/03 03:17ID:???60fps固定で処理してると、3Dでもガタつくよ。
モーションが飛ぶんじゃなくて、速度が不安定になるというか、ブレる感じ。
内部処理を固定するなら、描画処理は1フレーム分遅延させるのがベスト。
描画処理の方が速く回る場合は、補間させて滑らかな動き。
0050名前は開発中のものです。
02/05/03 11:13ID:???過去スレより
http://piza.2ch.net/tech/kako/972/972165437.html
>命題:「『1フレーム後に、変数v がa増加する』をどのように実装するか?」
>
>◆A宗:「v += a * dt」
>v-syncに同期。リフレッシュレートは任意。
>
>◆B宗1派:「v += a」
>タイマーに同期。一定間隔で値を更新する。
>
>◆B宗2派:「v += a」
>v-syncに同期。何らかの方法でリフレッシュレートを固定する。
私は一時A宗に傾きかけたが、結局B宗に戻りつつあるような気がする。
0051名前は開発中のものです。
02/05/03 12:03ID:???0052名前は開発中のものです。
02/05/03 13:17ID:???そのスレ読んでないけど、内部処理と描画処理を分けるこのスレの趣旨とは
微妙に違うぞ。
このスレは内部処理はB宗で描画だけA宗にするって話。
それがいいか悪いかはともかく、どうやって実装するのかというスレ。
0053名前は開発中のものです。
02/05/03 13:20ID:???0054名前は開発中のものです。
02/05/03 18:25ID:???描画スレッドでは描画開始時間と内部処理の過去フレームの時間から補完?
float t = (render_time - old_time -) * (60 / 1000);
D3DXVec3Lerp(&currnt[i], &prev[i], &next[i], t);
てのを全部に対してやるだけだったらそれなりにエレガントかも。
0055名前は開発中のものです。
02/05/03 19:15ID:???それだと、キーフレームアニメーションなんかやると
アニメーションの終端を突破したりしないか?
IF文で終端で止めにすればいいという問題でもない
(アニメーションAが終わったらアニメーションBにスイッチする場合とか)
0056名前は開発中のものです。
02/05/04 12:02ID:???たいした問題じゃない。
0057名前は開発中のものです。
02/05/04 16:15ID:???排他制御しないぶん楽。
0058名前は開発中のものです。
02/05/04 19:49ID:???0059名前は開発中のものです。
02/05/04 20:29ID:DoQwTAVw車ゲーのリプレイは適当でいいけど
まぁ、最低60回は回すように組んでおくとして、数値微分なんかの
凾狽ェ小さすぎて問題になることなんてあるだろうか?
0060名前は開発中のものです。
02/05/04 20:53ID:???0061名前は開発中のものです。
02/05/04 23:03ID:???0062名前は開発中のものです。
02/05/05 00:10ID:PKpkIeKE普通の関数バージョンに比べて遅くなった。
つーかフレームのコールにPostMessage使ってるし当然か。
なんだか設計思想が間違ってたようで激しく鬱。
0063名前は開発中のものです。
02/05/05 00:42ID:???PostMessageはまずいでしょ…ガタガタになっちゃう。
ま、誰しも一度は通る失敗だけどね。
0064名前は開発中のものです。
02/05/05 01:07ID:PKpkIeKEでもさ、それ以外思い浮かばんのよね。
それ以外だと、メッセージループに
if( pFPS30->BeCalled() ){
RenderMain();
}
を埋め込む以外なくなる。
0065名前は開発中のものです。
02/05/05 02:14ID:QlZCUdc20066名前は開発中のものです。
02/05/05 02:29ID:???PostMessage(arg->hWnd, WM_PAINT, 0, 0)を
選ぶ62たんはWindowsプログラマの鏡!
006762
02/05/05 03:42ID:yqpWzWOEFPS用のスレッドでパフォーマンスタイマーの
ビジーループをぐるぐる回して処理している為
たとえ内部処理、描画処理を1FPSに設定しても
CPU占有率が100%になってしまう。
何かスマートな実装方法は無いかえ?
0068名前は開発中のものです。
02/05/05 03:59ID:???0069名前は開発中のものです。
02/05/05 04:06ID:yqpWzWOESleep系とパフォーマンスタイマーの併用ってこと?
パフォーマンスタイマーから大まかなSleep時間を
求めて眠らすとか?
それとも精度には不安があるがSleep系のみで管理とか?
ビジーループを使わず、タイマーを使う良い方法が
あったら教えて欲しい。
0070名前は開発中のものです。
02/05/05 04:29ID:XpophaTo007169
02/05/05 05:40ID:CUy74S1o>求めて眠らすとか?
MsgWaitForMultipleObjectsを使ってこの案を実践したら
60FPSでCPU使用率100%だったのが0%まで落とす事に成功しました。
なんだか上手くいき過ぎて怖い。^^
でも試して上手くいった時は快感!だったりする。
>>70
60FPSの場合、精度は16msec程度必要。
まあSleep系は悪くても誤差10msecらしいから
一応大丈夫といえばそうらしい。
0072名前は開発中のものです。
02/05/05 10:34ID:???Windowsで、他にプログラムを走らせない状況を作るのは不可能。
0073名前は開発中のものです。
02/05/05 11:42ID:???0074名前は開発中のものです。
02/05/05 11:50ID:???やっぱり描画とその他って分けるべき?
0075名前は開発中のものです。
02/05/05 13:39ID:???ちなみに描画と内部処理を同期させてるゲームの場合、壁にぶつかる瞬間にわざと
負荷をかけてフレームレートを落とすと壁をすり抜けたりする。
かつて、リアルタイムで解像度が切り換えられるゲームがあったけど、解像度切り
換えで1秒くらい時間が飛ぶから、それで壁を突き抜けたりミサイルをすり抜けた
りなんてことができたよ。
0076名前は開発中のものです。
02/05/05 14:02ID:???えー、それはつくりがヘボイだけでは。
0077名前は開発中のものです。
02/05/05 14:05ID:???冲 が 3.25なら、 1, 1, 1, 0.25でループ回す
0078名前は開発中のものです。
02/05/05 14:06ID:???前回と今回の座標でレイとばせ。
007969
02/05/05 16:00ID:Qufy7xrsいや別ける必要はないと思う。
俺の場合、ビジーループのCPU負荷を下げたいと
模作した結果、こんな形になってしまったが
メリットは無かった。
>>71のMsgWaitForMultipleObjectsを
メインメッセージプロシャージャーに組み込む方法をとるか
FPS制御クラスにSleep系を組み込むようにする設計にすれば
スレッドを作らなくても同じことが出来るはず。
008069
02/05/05 16:02ID:Qufy7xrs>>79は撤回。やっぱスレッドは必要かも。
008169
02/05/05 16:08ID:Qufy7xrs>>1その他の方向性は、CPUパワーに余裕がある場合FPSを増やす可変方式なのに対し
俺の場合、安定したFPSでCPUパワーに余裕がある場合眠らせるって形だからなぁ。
やねおうら氏のスーパープログラマーへの道にも、Sleepを用いたFPS制御を話題に挙げていた回があったが
あれは、プライマリとは別にゲーム用メインスレッドを作っているから可能な方法だな。
0082名前は開発中のものです。
02/05/05 17:10ID:???0083名前は開発中のものです。
02/05/05 22:52ID:???ネットゲームは通信速度が一定じゃないからfps固定はできないんじゃ?
0084名前は開発中のものです。
02/05/06 01:34ID:???「固定」の意味もイマイチ不明だけど、「通信速度が一定じゃないから」ってのも違う気がする
0085名前は開発中のものです。
02/05/06 01:42ID:???なんていうヘタレな実装をしている市販3Dゲーが思いつかないが。
0087名前は開発中のものです。
02/05/06 03:06ID:???通信速度は関係ないと思うが、
ゲームの性質上FPS固定ってのはありえんと思う。
画面上に人がイパーイでたりするからね。
0088名前は開発中のものです。
02/05/06 07:01ID:???結局やることはFPS非固定と対して代わらないような。
0089名前は開発中のものです。
02/05/06 07:02ID:???固定にするくらい出ないとだめか。
0090名前は開発中のものです。
02/05/06 16:25ID:???DIABLOとかやったことないの?
魔法使いまくるとフレームレート落ちるよ。
0091名前は開発中のものです。
02/05/06 16:48ID:???DIABLOやったことないので質問するが、それは描画処理が増大して
モタついてるということではないのか。
例えば、FPS系のメジャー所では通信速度はフレームレートに
影響しない。Lagの激しい奴はパケットロスということで
前フレームの移動パラメータを使って補間アニメーションする。
009291
02/05/06 18:17ID:???First Person Shooting系 と読み替えてくれ。
0093名前は開発中のものです。
02/05/06 19:45ID:???普通に作っちゃうとローカルプレイ版が先にできちゃって
後から通信対応させるのにスゲエ苦労して一ヶ月泊り込んじゃったよ
っていう人いますか
0094名前は開発中のものです。
02/05/06 21:46ID:???ネットゲーは毎フレームデータのやり取りしてると思ってるのかな?
Doomならそうだったけど、今はそんなことしてるゲームは少ないよ。
元々アーケード用に作ったゲームを移植のついでにネットワーク対戦に
対応させるときはやったりするけど(某DC用のゲームとか)
009569
02/05/06 23:05ID:5hxqOZmsDirect3Dを使ったプログラムで、>>71で作った
スレッドを用いたFPSのクラスを使うと
モーダルダイアログを呼んだ瞬間に(::DialogBoxIndirectParam)
固まってしまう。
モーダルダイアログは親ウインドウと同じスレッドです。
FPSのスレッドをサスペンドにすると固まる、
スレッドを終らせてからダイアログを呼ぶと固まらない、
デバック出力用APIを1行加えると固まらない、
FPSクラスのフレームの呼び出しがメッセージだと固まる、
FPSクラスのフレームの呼び出しをファンクションコールにすると固まらない、
D3Dで描画しないと固まらない、
これって何が原因だかわかります?
0096名前は開発中のものです。
02/05/06 23:18ID:???スキン対応も簡単だからいいだろ。
0097名前は開発中のものです。
02/05/06 23:20ID:???0098名前は開発中のものです。
02/05/07 02:41ID:???それは、Win32とかマルチスレッドプログラミングの参考書を
一冊手に入れて目を通したほうがいいような気もする。
0099名前は開発中のものです。
02/05/07 07:05ID:???んなの聞いたことない。
ぼんミスでバグってるだけだろ。
0100名前は開発中のものです。
02/05/07 10:10ID:???010169
02/05/07 11:13ID:H21ddL0QFPSのスレッドがしていることは、
一定時間Sleepして::PostMessageでユーザー定義メッセージを
ウインドウに送っているだけです。
それ以外、変数を操作したりWindowsのシステムにアクセスしたりとかは
何もしていません。
Window、Direct3D、その他もろもろは同一スレッドなんで
実質シングルスレッドと殆ど変わりません。
キーを押された→WM_KEYDOWNメッセージハンドラで、
FPSスレッド停止しダイアログ呼び出し、こんな感じです。
このFPSスレッド停止をSuspendにするとダメ、DestroyにするとOKなんですよね。
まあダイアログをモードレスして作り直してどうなるか試してみます。
0102名前は開発中のものです。
02/05/07 21:10ID:???まぁ内心では気付いてるだろうと思うが、
そういうあいまいな文章による状況説明では他人に問題点を指摘してもらうのは難しい。
(orバグを作った本人の状況分析だけを頼りに問題点を見つけ出すのは難しい)
ソース見せられるなら添削してもらうこともできるだろうが
それが無理なら「頑張ってね」としか言えんよ、実際。
とりあえずDirectXとか余計なものから一つ一つ外してみたらどうか。
010369
02/05/08 01:33ID:LDZ.FZgIその通りですね。
なんだかすいません。
0104処理安定
02/05/09 02:02ID:???ブロッキングに悩むからだと思うんだけど、ちょっとだまされたと思って
以下の設定してみてください。
「マイコンピュータ」->「プロパティ」->「デバイスマネージャ」->「ディスクドライブ」の設定で
オプションに DMA という項目があります。
Windowsの出荷状態では、ここはOFFなのですが、これをONにしてWindowsを
再起動してみてください。謎のブロッキングがかなり解消されますよ!
仮に解消されなくてもファイルアクセスなどがぐんと速くなるので損することは
ないと思います。(ただ一部のハードではこのDMAは無効になってるかもです)
60FPS以上のゲームで「ガクン!」というのがなくなると思いますよ、お勧め。
じゃ、眠いので僕は寝ます。おやすみ〜
0105名前は開発中のものです。
02/05/09 04:21ID:???そんなこと自慢されてもなぁ。XPじゃ最初から有効にされてるし。
プロセスとスレッドの優先度を最大まで上げる方が効果あるよ。
絶対に苦情くるけど。
0106名前は開発中のものです。
02/05/09 14:16ID:???104のどこが自慢っぽく見えるのか、俺には不思議。
性格ゆがんでない?
0107名前は開発中のものです。
02/05/09 15:54ID:???普通やん.
別に画期的なネタでもないわ.
0108名前は開発中のものです。
02/05/09 16:24ID:???MSの公示では、普通じゃないだろ >>FD,HD-DMA
DMA無効になってるのが普通。
問題は、ドライバの設定を変えた時に再起動させること。
自分のマシンだけリブートすればいい問題ではないので。
有名なネタではあるが。
0109名前は開発中のものです。
02/05/09 18:44ID:???いちいちくだらねえことつっこむなよ。
>プロセスとスレッドの優先度を最大まで上げる方が効果あるよ。
これこそわかりきってることを自慢すんなよ。障学生が。
0110名前は開発中のものです。
02/05/09 19:14ID:???0111名前は開発中のものです。
02/05/09 19:51ID:???それって98/95あたりの話じゃ、、、
0112名前は開発中のものです。
02/05/09 20:44ID:???ガタ落ちゼロになった。
ちなみに俺の環境はWin98.
今までの苦労、水の泡。
なんでディフォルトでDMA-ONじゃないのだ?>>MS
というか、配布するソフトでも是非、DMA-ONの状態にしたいのだが、
アプリケーションからそれを操作する方法ってないのか?
0113名前は開発中のものです。
02/05/09 20:51ID:???マザボのチップセットと相まって、かなりヤバイことになってた。
だからデフォルトOFFなんだと思う。
Socket7の頃の話だけどね。
0114名前は開発中のものです。
02/05/09 21:24ID:V/9kUMisIDE ATA/ATAPIコントローラーの
プライマリIDEチャネルとセカンダリIDEチャネルで設定出来る。
0115名前は開発中のものです。
02/05/09 21:31ID:???DMAオフでガタつくゲームってのも、問題アリだと思うが。
0116名前は開発中のものです。
02/05/09 21:50ID:???CPUが高速なHDのデータコピーを汗かきながらI/Oへ書き込むので
全てのアプリで停止するのだよ。特に最近のHDは高速だから、
DMAなしではやってられない。
0.3秒くらいCPUがHDの転送に専念することもしばしば。
0117名前は開発中のものです。
02/05/09 22:01ID:???ゲーム中はHDへアクセスしないようにするべし。
0118名前は開発中のものです。
02/05/09 22:08ID:???ライトバックキャッシュのフラッシュや
ページアウトでアクセスが発生しちまいますな
0119名前は開発中のものです。
02/05/09 22:28ID:???そうゆう話じゃないと思われ。
他のゲームはガタつかないのに自分のゲームはガタつく!ってのが問題。
0120名前は開発中のものです。
02/05/10 04:19ID:???>他のゲームはガタつかないのに自分のゲームはガタつく
そんなこと誰か書いたっけ?
0121名前は開発中のものです。
02/05/10 06:45ID:???0122名前は開発中のものです。
02/05/10 19:29ID:???自分から行動を起こさなきゃ。
0123名前は開発中のものです。
02/05/11 04:24ID:???んー、学生さんかのぉ?
Windowsやlinuxなどのような高度なOSでは、
例えば malloc() などのヒープもアプリケーション実行開始直後は
物理メモリに存在しないことしばしばなのじゃよ。
new を呼んだ瞬間、物理メモリが存在しなかったら、そこでHDアクセス。
スタックがオーバーしたら、HDアクセス。
他のアプリが使用していたメモリをHDへ書き戻す作業であることが
ほとんどなのじゃがな。
ゲームなど連続描画がシビアな環境では
Windows上だとガタガタに見えてしまうのも、そこが原因だったりするんじゃ。
0124名前は開発中のものです。
02/05/11 15:53ID:???>Windows上だとガタガタに見えてしまうのも
見えませんが?
012569
02/05/11 17:18ID:HivZaZZAFPSを表示するのにFPSの抽出を60FPSとかにすると
更新が激しくて見づらいので、2FPS等で抽出させる
別のFPS制御クラスを作っていたんだけど、
ダイアログを表示する際にこいつは関係ないと思って
サスペンドしていなかった為に、デッドロックが起こっていたようです。
結果論であり、デッドロックの理由はわかりませんが。
::CreateWaitableTimerという便利そうなAPIを発見したんで
こりゃ使えると思ってFPS制御クラスに組み込んだら、
こいつしっかりCPU時間を消費しやがんの。
使えね〜、精度も低いしサ。
>>123
そういうことをやっているかどうかは知らんけど、
やっていたとしても、それは単に物理メモリが少ない場合の
回避処置でしか無いと思うんだけど。
そりゃメモリが足りなくてスワップしまくりな環境なら
ゲームもカクつくよ。
012699
02/05/11 17:22ID:.Lvp8gPk-------風俗の総合商社・MTTどこでも-------
〇デリバリーヘルス〇デートクラブ〇女性専用ホストクラブ〇
〇ハードSM奴隷クラブ〇レズビアン倶楽部〇ホモ・オカマ倶楽部
〇変態痴女と遊ぶ会〇痴漢・覗き趣味の会〇変態同好会・各種!
●楽しく遊べます! 090-8002-8356番
-----------美男・美女会員など多数在籍中-----------
http://www.mttdocomo.jp/
-----女性アルバイト随時募集・高収入(日払い)月100万円可能-----
-----レズビアン・スタッフ●ホモスタッフ●女性専用ホストスタッフ同募-----
http://www.mttdocomo.jp/
0127名前は開発中のものです。
02/05/12 08:31ID:???>回避処置でしか無いと思うんだけど。
WinXPだとか、物理メモリあっても初アクセスまではアプリ用にメモリをcommit
しないというのに、何を逝ってるのかな?
10秒後に初めてアクセスした変数がメモリにまだcommitされてないページだった
らHDアクセス決定じゃん。
0128名前は開発中のものです。
02/05/12 19:48ID:IYwn5BLgコミットされていないページ=スワップアウトされてHDに退避させられているページ
じゃないんじゃないの?
単に仮想メモリが物理メモリにマップされてないだけで。
MSDNでVirtualAllocのページ見てみ。
つーかイチイチメモリ確保の度にHDDアクセスする訳ないじゃん。
常識的にアホ仕様だろそれじゃ。
0129名前は開発中のものです。
02/05/12 20:43ID:???たとえば
http://pc.2ch.net/test/read.cgi/tech/1017072275/
0130名前は開発中のものです。
02/05/14 21:35ID:ru/D90z60131名前は開発中のものです。
02/05/19 11:18ID:ajzZw3lo>コミットされていないページ=スワップアウトされてHDに退避させられているページ じゃないんじゃないの?
↓
コミットされていないページ=まだ存在していないページ
>つーかイチイチメモリ確保の度にHDDアクセスする訳ないじゃん。
Windows はダーティなページを極力メモリに保持し続ける方針で設計されている為、
いざページをコミットしようとすると、すぐに使えるメモリが足りなくて、結果的にページアウトが発生してしまう。
当然未使用メモリがある場合は、 HD へのアクセスは無い。
0132名前は開発中のものです。
02/05/19 15:25ID:???0133名前は開発中のものです。
02/05/20 01:16ID:???まぁ言いたいことは分かるが
あまり騒ぐと自治厨氏ねとか不本意な罵りを浴びるぞ。
0134名前は開発中のものです。
02/06/01 20:55ID:???3、4レスのためだけに別スレに移動なんてしてたら、
話の一貫性がなくなってしまうだろう。
0135名前は開発中のものです。
02/06/02 11:58ID:???0136名前は開発中のものです。
02/06/03 11:14ID:???他人を蔑むだけのカキコって、技術レベルに関係なくなんかむかつく。
0137名前は開発中のものです。
02/07/22 05:33ID:???60FPS出るように作って、処理が遅れたら処理落ちすれば
いいだけなのでは、、、?
3Dのゲームなら30FPSくらいが普通でしょうか。
0138名前は開発中のものです。
02/07/24 05:29ID:???v' += v * dt みたいな感じかな…。
具体的な実現方法は何パターンかあると思います。
どっかのスレでそんな議論してたと思った。役に立たなくてスマソ
0139オマンコー&rlo;ー゚ホンィテ&lro;
02/10/26 08:35ID:???0140名前は開発中のものです。
02/11/01 08:50ID:???良スレっぽいものは強制的にageてやるからな!
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧_∧ ∧_∧ age
(・∀・∩)(∩・∀・) age
(つ 丿 ( ⊂) age
( ヽノ ヽ/ ) age
し(_) (_)J
0141あぼーん
NGNG0142名前は開発中のものです。
02/11/28 05:24ID:EVnGiSza/_ |
/. \ ̄ ̄ ̄ ̄|
/ / ― ― |
| / (・) (・)|
||| (6 > |
| | | ┏━┓| / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| | | | ┃д┃| < 正直、ageてすまん
|| | | | \ ┃ ┃/ \________
| || | |  ̄  ̄|
0143あぼーん
NGNG0144名前は開発中のものです。
02/11/28 07:20ID:Ib7kWWVj当たり判定なんかで絶対死ぬ。
面倒臭くて作ってられない。
よしんば自分は制御できても他の人はできないでしょ。
ネトゲはしかたないけど。
別に必要がないならフレーム飛ばしで対応が一番楽。
0145あぼーん
NGNG0146名前は開発中のものです。
02/11/29 00:07ID:MjrDrSuBピンボールゲームとかビリヤードとかだとそれじゃまずいんだけどさ。
0147名前は開発中のものです。
03/06/26 13:32ID:p0CgQeLa0148名前は開発中のものです。
03/06/26 13:49ID:+zxBVEy/時間軸で補間描画するのが主流っぽく見えた。
ただ、これもコンストレインツとかいろいろ面倒ごとが絡んできそうだけど。
0149名前は開発中のものです。
03/06/26 19:48ID:5GfwaFR5物理シュミレーションで
短い期間に衝突が起こりまくるとかかな?
でも固定フレームだとすり抜けが心配になるんだよね。
0150名前は開発中のものです。
03/06/27 06:02ID:rPLXqI2z0151名前は開発中のものです。
03/06/27 06:04ID:rPLXqI2z固定フレームレートでのすり抜けの問題は、非固定でも同じかと。
結局、補完して判定したり、繰り返し判定しないといけないのは変わらないのでは
0152名前は開発中のものです。
03/06/27 08:57ID:ixQrGkNZ独自のプリミティブ命令を描画スレッド(っていうかサーバ)に発行する形。
描画スレッドはプリミティブ命令をバッファリングして適当なタイミングで画面を構成する。
ワーカースレッドは発行したプリミティブ命令が正しく描画されたかは関与しないので、
ゲームループに描画サイクルが間に合わない場合はフレームがスキップされるし、
ゲームループが遅すぎる場合はコマ送りになる。
0153名前は開発中のものです。
03/06/28 02:00ID:aSb9r1M8http://plaza16.mbn.or.jp/~satchel/omanko_marumie/
美少女のワレメ…(*´∀`*)ハァハァ
美人お姉さんのオマ○コ…(*´Д`*)ハァハァ
0154名前は開発中のものです。
03/06/28 09:56ID:MijJhoN2だから固定フレームレートだろ?
0155名前は開発中のものです。
03/06/28 10:56ID:zsEm8tDY拾ったサンプルムービー集めたよ
0156名前は開発中のものです。
03/11/02 21:05ID:dOIWbDqO実装する前に予測できるじゃん
0157名前は開発中のものです。
03/11/02 22:35ID:1l/gGn+Eとくにリアルタイム性が必要になると(論文ネタになる、というかなったくらいだし)。
まぁ、厳密性が求められないなら、>>156のように割り切って実装するのが吉。
0158名前は開発中のものです。
03/11/04 09:01ID:CMviRQzL0159名前は開発中のものです。
03/11/04 16:54ID:1XiY25f5ここ?
【Collision Detection】
http://pc2.2ch.net/test/read.cgi/gamedev/1015484028/
0160名前は開発中のものです。
04/12/04 17:37:32ID:mVDy3Uy+状態遷移はB宗、表示は補間でリフレッシュレートに同期とか、
状態遷移の粒度を思いっきり上げるとか、そういうのが主流。
コンシューマやアーケードはやっぱり60fps決め打ち。
PAL圏で速度変わろうがシラネ(゚听) PS2やXboxになろうがファミコン時代と何も変わってないのさ。
とにかく、状態遷移の粒度が変わるとどんなタイミングで何が起こるかわからんので皆嫌がる。
サンプルプログラムレベルならともかく、中規模以上のゲームでA宗って例は知らんね俺は。
だいたい日本人だけが困ってる問題じゃない。
同じ環境でコード書いてる限り、ガイジンだけが特効薬持ってたりするわけないじゃん。
あと最近のDirectXはSetDisplayModeで素直にリフレッシュレート変わったりとか、
ほとんどの液晶ディスプレイは60Hz固定だったりとか、
いろんなリフレッシュレートに対応するメリットがかなり薄れてる。
プライオリティとしては、むしろ先に解像度決め打ちを廃絶するべきだな。
0161名前は開発中のものです。
04/12/04 17:58:18ID:kfKbWf9i最近出たPCの3DゲームでA宗じゃないの教えて欲しい。
0162名前は開発中のものです。
04/12/05 00:42:57ID:GrFe+qNVなんで解像度なんだよ?
リフレッシュレートの話しておきながらw
0163名前は開発中のものです。
04/12/05 13:40:24ID:3zCSSlsK普通にBが良いと思うよ。
Aだとフレームレートで細かい挙動が変わっちゃうでしょ。
その結果
> とにかく、状態遷移の粒度が変わるとどんなタイミングで何が起こるかわからんので皆嫌がる。
となる。
まぁ、問題にならないような状況なら好きにすればいいんじゃね?
0164名前は開発中のものです。
04/12/05 15:37:20ID:QEq2K2Fz0165名前は開発中のものです。
04/12/06 12:10:39ID:nOjB+322しかし解像度依存をなんとかせにゃならんのは同意
低解像度にすると画面中インターフェースで埋め尽くされるのとかアホすぎ
だが拡縮に耐えられるデザインをするのは難しい
0166名前は開発中のものです。
04/12/08 17:57:08ID:OfSHCP0i詳しく
0167名前は開発中のものです。
04/12/13 13:45:32ID:oLS390rH0168名前は開発中のものです。
04/12/13 15:00:58ID:3e0kR3EyB宗1派とか
> 状態遷移はB宗、表示は補間でリフレッシュレートに同期
> 状態遷移の粒度を思いっきり上げる
これとか
0169名前は開発中のものです。
04/12/13 15:14:09ID:aofj8uykフレームごとに時間を記録しておけばおk
再生時のフレームスキップの処理は必須
0170名前は開発中のものです。
04/12/13 15:23:24ID:KD6ePPwD◆A宗:「v += a * dt」
v-syncに同期。リフレッシュレートは任意。
◆B宗1派:「v += a」
タイマーに同期。一定間隔で値を更新する。
◆B宗2派:「v += a」
v-syncに同期。何らかの方法でリフレッシュレートを固定する。
「一定間隔で値を更新する。」 と「何らかの方法でリフレッシュレートを固定する。」って
まったく同じ意味じゃないですか?
参考サイト
フレーム制御
ttp://www.c3.club.kyutech.ac.jp/~sukiyaki/flame.html
0171名前は開発中のものです。
04/12/13 19:57:15ID:gHIs8Crz0172名前は開発中のものです。
04/12/13 20:02:17ID:OAPFomE20173名前は開発中のものです。
04/12/13 20:34:15ID:twbQb5tx読みづらいたとえですまないが
たとえばユーザーCとユーザーDの使ってるリフレッシュレートがそれぞれ70、100のとき…
A宗(C) 秒間70回値を更新する。描画も秒間70回
A宗(D) 秒間100回値を更新する。描画も秒間100回
B宗1派、例い(C、D) 秒間200回値を更新する。(描画は適当に)
B宗1派、例ろ(C、D) 秒間60回値を更新する。〃
B宗2派(C、D) 秒間60回値を更新する。描画も秒間60回。リフレッシュレートは60に無理やり固定
0174名前は開発中のものです。
04/12/13 20:38:11ID:twbQb5tx>>169の方法だと、ユーザーCのリプレイをユーザーDが再生するときには
秒間70回値更新で描画は適当(ユーザーDの環境に合わせたもの)、
ユーザーDのリプレイをユーザーCが再生するときには
秒間100回値更新で描画は適当(ユーザーCの環境に合わせたもの)、
となるのでは。
>>160にならい、状態遷移の粒度がユーザーの環境によって変化するのがA宗、とするならば、
>>169のはA宗のリプレイ再生方法でなく、B宗1派のリプレイ再生方法なのでは。
というわけで>>164-166へループ。
0175174
04/12/13 21:54:27ID:ZvpPKfOHA宗が状態遷移と描画を同じ周期で行わなければならないなんて決まりはないし、フレームスキップしてあたりまえだし。
・状態遷移の粒度がユーザーの環境によって変化するか
(v += a * dt か、v += a か)
・状態遷移の同期をタイマーでとるかv-syncでとるか
・ディスプレイのリフレッシュレートを、ユーザーの環境と関係ない固有の値で固定するか
・状態遷移と描画を同じ周期で行うか
がごっちゃになって混乱してました。
0176名前は開発中のものです。
04/12/14 00:23:44ID:JuD5jtQuあるいは、A宗は過激派と穏健派に分かれるということではないか。
A宗過激派・・・全てリフレッシュレートに同期。画面更新だけでなく数値積分のタイムステップも何もかもリフレッシュレートに同期。
A宗穏健派・・・(ティアリングの無い)滑らかな社会を実現するために画面更新はリフレッシュレートに同期させよう。
0177訂正
04/12/14 00:26:58ID:JuD5jtQuA宗穏健派・・・(ティアリングの無い)滑らかなスクロールを実現するために画面更新はリフレッシュレートに同期させよう。
0178名前は開発中のものです。
04/12/14 02:01:20ID:xwWJYjICxnew = xold + v;
ってやる場合、新しい位置用のメモリ領域と、旧位置用のメモリ領域が必要になるよな?
これを描画するとき、リフレッシュレートスレの結論から
x = xold + (xnew-xold) * Δt / T (T = 1フレームぶんの時間)
とかやってた。
でもって、スレッド分けの最大の利点は画面更新計算の間でも位置更新の計算が出来るってことだと思うんだ。
すると、描画用のメモリ領域と、位置更新計算用のメモリ領域を分ける必要があるよな?一緒にしちゃうととんでもないよな?
つーとメモリ領域は、新旧 * 描画用、位置更新用 の計4領域?必要になるってことか。すげーな。
位置更新用のメモリ領域は、描画直前に更新が発生してたら描画用のメモリ領域にコピーされる?
コピー中に位置更新が発生しないように同期オブジェクトを一つかませば出来るような気がするんだけどどう??
おれ、はっきり言ってバイトと卒論で趣味プログラムしてる暇ないんだけど、だれか試してみてくんない?
0179名前は開発中のものです。
04/12/14 23:27:44ID:uNvp6fIyあー。以前STGスレで自分はA宗であると告ったら
その過激派のほうだと思われたらしく
リプレイの件でチクチク突っつかれた。
俺は、A宗を名乗る上での必要条件は
・ティアリング排斥
・スムーズスクロール至上主義
だと思っている。
>>178
>描画用のメモリ領域と、位置更新計算用のメモリ領域を分ける必要があるよな?
>一緒にしちゃうととんでもないよな?
なぜそう思う。
深刻なアーティファクトが出るかどうかは状況による。
作れば一見してわかる話だ。
>コピー中に〜中略〜だれか試してみてくんない?
趣味プログラミングの醍醐味のひとつは
試行の自由を与えられることなのであり
その権利を行使せず無為に悩むは損かと。
0180名前は開発中のものです。
04/12/14 23:48:04ID:uNvp6fIy>>172
同意。
ゲームワールドの状態遷移を再現できるかどうかの話と
A宗B宗は無関係。
0181名前は開発中のものです。
04/12/14 23:52:15ID:uNvp6fIy0182178
04/12/15 07:18:24ID:QtJ8QeQp描画用と更新用を一つにしちゃうと、描画の位置計算中に描画の素になるデータを書き換えられちゃわないかな?
と思ったんだけど、どうだろう。
描画が終わるまで待つんだったら、そもそもスレッド分ける意味がないと思うし。
>趣味プログラミングの醍醐味のひとつは試行の自由を与えられることなのでありその権利を行使せず無為に悩むは損かと。
う。2月まで覚えてられるかな・・・自信ねー。○| ̄|_
0183名前は開発中のものです。
04/12/15 13:43:03ID:v1gXIgbp当初の定義は、
・数値積分のタイムステップを環境依存させるかで A宗 B宗1派 を分けている
・描画をどうするかでは分けていない
この定義だと、A宗は>>177のいう過激派しか認められないことになる。
>>179がA宗穏健派として状態遷移タイムステップをv-sync非依存にしているとしたら、
描画をリフレッシュレート同期にしていても関係なく、当初の定義だとB宗1派に明確に分類される。
A宗B宗の定義は、もう実用にはならないんじゃないか?
元々の定義は描画にはふれず状態遷移のみにふれているため、
>>179が過激派と思われたように意図を伝えられないことがある。
代案としては…。>>175の4要素16派に分類すれば多少マシだが、あのままでは煩雑だ。
話題になるのは16派のうちせいぜい4つくらいだし、
B宗1派とB宗2派のように一つのゲームに両方採用(設定変更)できるものも。
0184名前は開発中のものです。
04/12/15 19:01:03ID:h9T9p7ZJリフレッシュレートに関する論争スレでは
B宗2派とは別名、60Hz原理教のような扱いだったと思う。
彼らの経典によれば
リフレッシュレートとは即ち60Hzのことであり
60Hzができない環境は窓から放り投げろ。と。
> A宗B宗の定義は、もう実用にはならないんじゃないか?
Yep
0185名前は開発中のものです。
04/12/16 02:31:19ID:tK2W+T4cゲームの処理速度を安定させるものだと思うんだけど。
B宗のCPU処理固定主義とは根本的に違くない?
0186名前は開発中のものです。
04/12/16 02:56:42ID:hmZX33SkCPU処理落ちたらゲームの処理速度は一定してないんじゃ?
A宗は見掛けの速度をなるべく一定にするやり方でしょ
0187名前は開発中のものです。
04/12/16 03:35:18ID:tK2W+T4c見掛けの速度を安定させるってことを言いたかった。
んでB宗って描画が落ちた場合はフレームスキップとかできるけど、
CPUが落ちた場合処理落ちするしかないよね?
だから何が起きても見掛けの速度を一定にしたい場合は
A宗しかないんじゃないかなって。
0188名前は開発中のものです。
04/12/16 09:18:07ID:DxYxxvNbA宗で書くのはつらい。
でもB宗でも見かけの速度を一定にしたい。
だから A 宗でぐるぐる回して、B宗スレッドにイベントを送信することでA宗でもB宗の記述方式ができるようにしたい。
で、そのさいの同期処理ってどーやるの?って話じゃないの?このスレって。
0189名前は開発中のものです。
04/12/16 19:27:32ID:fImvV4snいろいろあってゲームループ総合スレになってるらしい。
0190名前は開発中のものです。
04/12/17 07:34:10ID:rOSemwp/たとえば、メインのゲームループは1/60sec決め打ちで回して、
メインのゲーム進行処理、キー入力、リプレイのロギングみたいなのは、
1/60で回ってるゲームループに同期させる。
で、絵とか音の表示やアニメは、イベントとして適当なバッファにキューイングして、
仮想フレームレート相当の時間経過とかVsyncをトリガに、ループ内か別スレッドで、
キューしておいたイベントを見ながら前回描画の経過時間を考慮しつつ
補間しながら絵を描けば、それで済む話じゃないの。
元々、ゲーム専用機のVsync同期は、Vsync割り込みを高速タイマの代用に
していただけだし、なんでそこまでVsyncにゲームの進行速度まで依存させ
たがる人がいるのかワカラソよ。
0191名前は開発中のものです。
04/12/17 22:48:03ID:6ejKXcKZでいいんじゃないかな。
0192名前は開発中のものです。
05/01/23 20:29:14ID:Air0xk8VVSyncの意味がわかってないようで・・・
0193名前は開発中のものです。
05/01/23 20:34:37ID:JtLG4rmH馬鹿に限って偉そうにダラダラ語りたがる好例。
0194晒しage
05/01/23 22:57:22ID:34KIVQ9x〜〜〜〜〜〜〜〜 36日経過。スレ深度186 〜〜〜〜〜〜〜〜〜
192 :名前は開発中のものです。:05/01/23 20:29:14 ID:Air0xk8V
193 :名前は開発中のものです。:05/01/23 20:34:37 ID:JtLG4rmH
0195名前は開発中のものです。
05/01/24 00:09:20ID:Am/KGoi60196名前は開発中のものです。
05/01/24 02:05:01ID:QUF1Uv+C2chブラウザで更新チェック仕掛けとけばどんなに深くても一瞬なんだが
0197名前は開発中のものです。
05/01/24 02:50:03ID:Pb4FhWzL0198名前は開発中のものです。
05/01/24 09:00:45ID:MwYTmyiPモレは2Dシューティング作ってたが、内部で画面の更新をする周期と
ゲームのタイミングは完全に同じじゃないと困る。
完全に同期してないと、移動キャラが一ドット進まなかったり
2ドット進んだりする。自機を移動させると
かくん…かくん…という感じでほんの少しぎこちなくなる…
FF7とか3Dのゲームならもともと30FPSとかでもそれなりに見えるし、
関係ないんだろうけど
0199名前は開発中のものです。
05/01/24 21:39:05ID:Am/KGoi6それは、画面の更新の2倍速以上の周期でゲームループをまわせば良いんじゃないの
0200194
05/01/24 21:57:23ID:6rvdu/5R私はあなたの主張を全力かつ必死で否定します。
何故なら私は>>190の手法に懐疑的な立場を取る人だからです。
>>190は状態遷移の時間ステップは1/60[s]で行うことで良いと言います。
しかし60[Hz]近傍の画面更新周波数を採用する場合に
ゲームによっては許容が困難なアーティファクトを呈します。
ひとつは状態遷移と画面更新の共鳴によってもたらされます。
>>190は補間すると言います。これは時間tを媒介変数とする3次
パラメトリック曲線パッチに物体軌道を追従させることと推定されます。
しかしこれはプレイヤーの感じる周期的な違和感を抑制はするものの
完全に除去することが難しいことを>>190は知るべきです。
0201194
05/01/24 22:01:08ID:6rvdu/5Rs/3次//
0202名前は開発中のものです。
05/01/24 23:52:46ID:ZznnHdPs0203名前は開発中のものです。
05/01/25 00:23:51ID:dxQ4cffY0204194
05/01/25 00:44:12ID:rMY0ZJDT0205名前は開発中のものです。
05/02/08 03:07:12ID:TagBEX16CGプログラマ方面ではよく使われる言葉だから、覚えておきなさい。
0206名前は開発中のものです。
05/02/08 17:45:03ID:s3qPbjfnで、アーティファクトってなんなんだい?
俺CGプログラマじゃないからわからんよ
0207名前は開発中のものです。
05/02/08 19:29:36ID:Cn4cPs8Nhttp://216.239.63.104/search?q=cache:yWVXkJ9vKzwJ:www.radiumsoftware.com/0401.html+%E3%82%A2%E3%83%BC%E3%83%86%E3%82%A3%E3%83%95%E3%82%A1%E3%82%AF%E3%83%88%E3%80%80CG%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0&hl=ja&lr=lang_ja
0208名前は開発中のものです。
05/02/09 13:34:04ID:kf+/5jfh《名-1》アーチファクト,技能(art)によって作り出したもの,人工物,加工品,工芸品,芸術品,所産,
作り事,《名-2》作為,人為的な結果[影響],《名-3》〔技術上の原因による〕不自然な結果,例えば,
不適切な統計処理の結果現れたパターンなど,《名-4》《コ》不可逆圧縮に伴う悪い副作用,動画
のブロックノイズなど,通例,複数形で
モアレとかマッハバンドとかがいい例じゃないかね。
0209名前は開発中のものです。
05/02/09 19:30:51ID:SbvEbW110210名前は開発中のものです。
05/02/10 20:28:57ID:Pq8Tvl+c0211名前は開発中のものです。
05/02/26 02:15:04ID:uFYBWVD/0212名前は開発中のものです。
05/02/26 17:30:23ID:eTx5dUeLhttp://pc5.2ch.net/test/read.cgi/prog/1108481342/176-177
http://pc5.2ch.net/test/read.cgi/prog/1108481342/253-254
描画と処理順序に関係する話題なのでなんとなく転載。
でもスレ違い気味。というより、家庭用機のハードウェアの話だし、板違いだよなあ…。
0213名前は開発中のものです。
05/02/27 13:00:33ID:ouQU2Gh6一言で言うと、元スレの175は
PSとかDCとかで起きてる、ハードウェアの描画パイプラインによる遅延を、
スプライト機能がないせいだ(フレームバッファのせいだ)と勘違いしている。
昔はこういうオヤジがよくいて更正に困った。
176-177はまったくの的外れ。
0214名前は開発中のものです。
05/02/27 13:02:05ID:ouQU2Gh6s/オヤジ/スプライトオヤジ/
0215名前は開発中のものです。
2005/04/22(金) 22:35:38ID:ARah4tGOFPS更新処理をABAさんとこのソースのまんまでやってみたが
描画一回に対する更新フレーム数の分布がこんな感じになった。
1frame=159, 2frame=3351, 3frame=144, 4frame=1, 5frame=4
そりゃ2frameが多いのは当たり前なんですが、
どうもリフレッシュレートと内部フレームが重なりかける瞬間、
見るからに、1frame→3frame→1frame→3frame→…
って感じで振動(?)してしまうらしい。何故こうなるんだろ
0216名前は開発中のものです。
2006/08/20(日) 00:49:06ID:R2OS+92F0217名前は開発中のものです。
2006/10/01(日) 00:17:12ID:iXDGlJTF0218名前は開発中のものです。
2007/03/05(月) 23:27:52ID:ck7zxrxb0219名前は開発中のものです。
2007/03/06(火) 21:24:03ID:aM0UjHqH0220名前は開発中のものです。
2007/04/03(火) 14:32:01ID:qom87o6H0221名前は開発中のものです。
2007/04/12(木) 12:16:41ID:OQ9CiyjSどうやってやるの?
0222名前は開発中のものです。
2007/04/12(木) 17:20:28ID:wkJX6b+Iというか、ほとんどが液晶モニタの現代ではそもそも「垂直同期」なんて発生しようがないわけだがw
0223名前は開発中のものです。
2007/04/12(木) 17:34:19ID:sR+tFe8jんなわけない。
ビデオカードからモニタに送る信号は走査線の順だし、
同期信号はアナログモニタを考慮したタイミングになっている。
0224名前は開発中のものです。
2007/04/12(木) 18:44:08ID:7RCwfy93アホ
0225名前は開発中のものです。
2007/04/12(木) 18:47:12ID:OHhAQ2El日本人ではない朝鮮総連や民団でさえ、日本を心配して改憲への反対運動を行ってくれている。
私は日本人だが、「改憲すべき」などという者は、日本人として彼らに恥ずかしいと思います。
Q.中国から身を守る為、戦争に対する抑止力が必要では?
A.前提から間違っています。そもそも、中国は日本に派兵しようと思えばいつでもできました。
なぜなら、日本は9条があるため、空母や長距離ミサイル等「他国を攻撃する手段」がない。
つまり、日本に戦争を仕掛けても、命令をだした幹部の命や本国の資産は絶対に安全なのです。
にも関わらず、中国は、今まで攻めずにいてくれたのです。
Q.日米安保も絶対ではないのでは?
A.いえ、絶対です。
知り合いの韓国人の評論家もそう言っていますし、私も同じ考えです。
そして日米安保が絶対なら、日本を攻める国はなく、改憲の必要はありません。
米国と戦争をしたい国はないからです。
Q.9条が本当に平和憲法なら、世界中で(日本以外に)1国も持とうとしないのはなぜか
A.誤解を恐れずに言うなら、日本以外のすべての国が誤っているとも言えます。
「敵国に反撃できる手段を持つ国は攻められづらい」というのは、誤った負の考え方です。
(もっとも韓国や中国の軍に関しては、日本の右傾化阻止の為でもあるので例外ですが)
さらに日本の場合、隣国が韓国・中国・ロシアと、GDP上位の安定した国ばかりです。
【改憲】ゼンガクレン老闘士、国民投票法案廃案訴え 国会前集結 「ゲバ棒が杖になっても」
ttp://news21.2ch.net/test/read.cgi/dqnplus/1174412397/l50
【広島】憲法9条遵守を訴え 武器を持たない妖怪「ねずみ男」に扮した男が全国行脚
ttp://news22.2ch.net/test/read.cgi/newsplus/1175835543/l50
0226名前は開発中のものです。
2007/04/13(金) 04:23:56ID:1JHojgjRDirectX9以降はPresent時に適切なオプションを与えるだけで
窓モードでもティアリング無しで描画できるわけだが。
0227名前は開発中のものです。
2007/04/13(金) 11:42:06ID:FDWvNnME知らんかった
0228名前は開発中のものです。
2007/05/05(土) 12:05:44ID:/Z3gtcge0229名前は開発中のものです。
2007/07/29(日) 00:25:32ID:HALNhbN2そう言えば同じ氏の本でバーチャファイターみたいな3D格闘本が近所に入荷されてた。
他のサンプル系のように1ヶ月くらいでまた返品されるだろうけどw
いきなり、冒頭で「60フレームが…」って固定fpsの話になってた。
PCなら可変フレームにしようぜって思ったよ。
一通りの内容は書かれてるようだけど、古い考え方が散見されるので注意ねw
3D格闘ゲームプログラミング
ttp://www.amazon.co.jp/dp/4797341807/
539 名前は開発中のものです。 [] 2007/07/28(土) 04:23:00 ID:HcOV0dC3
可変FPSだといろいろと弊害が('A`)
リプレイとか、どうすんだろ
FPSとか可変で、リプレイやってるよね・・・
スレ違いならいいところ教えてほしい
540 名前は開発中のものです。 [sage] 2007/07/28(土) 04:36:40 ID:yAMlpWBw
処理は固定で表示を可変にするんじゃないのか?
541 名前は開発中のものです。 [sage] 2007/07/28(土) 13:27:46 ID:0aIeWbas
実時間でタイムラインきればいいじゃないか。
ゲーム開始後、何msでパンチr入力開始っていう具合に。
0230名前は開発中のものです。
2007/07/29(日) 00:26:10ID:HALNhbN2542 名前は開発中のものです。 [sage] 2007/07/28(土) 14:49:45 ID:KJFTrgS8
グラフィックと内部処理を同期した場合、高スペックPCで記録したリプレイを
低スペックPCで再生すると大変なことに……
単純にスキップすればいい場合(オブジェクトの座標がすべて保存されてるなど)なら
問題にならないし、普通はFPSに上限を設けるのでせいぜい2倍遅い程度で済むけど
で、この「上限を設ける」を突き詰めると60FPS固定派がでてくるわけだ
推薦図書/必読書のためのスレッド in ゲ製作技術 2
http://pc11.2ch.net/test/read.cgi/gamedev/1136546780/
0231名前は開発中のものです。
2007/08/03(金) 14:01:52ID:4ObKP0Vq0232名前は開発中のものです。
2007/08/21(火) 00:20:00ID:daKI0ljlA宗は潜在バグ入りこみまくりんぐ。
0233名前は開発中のものです。
2007/08/21(火) 07:20:03ID:yyUqbYNX0234名前は開発中のものです。
2007/08/21(火) 19:41:52ID:4M628bN02)同期するしない
をわけて語ると、語りやすいのかな
今の話題なら同期については語らないことにすれば、誤解も少なそう、とか
0235名前は開発中のものです。
2008/02/05(火) 17:14:37ID:k9ariYLTメインで3フレーム目(3/60秒)時点でヒットしたのが
リプレイを、A宗で実行してしまったら
処理落ち(5/60秒ぐらい)とんでしまった場合
5/60秒移動した座標でヒットしたことになってしまって
再現出来んのじゃね?
とか思ったり。
やっぱ、細かい固定移動を複数回しかねーな。
ゲームシステムによるけど。
関係ないけど、
http://watch.impress.co.jp/game%2Fdocs/20060326/gdc_ha.htm
ここの動画のやつ動かしてる環境って
どのくらいのスペックなのかしら?
最新マシンでもリアルタイムじゃ無理くさくね?
こんな判定祭りは、固定複数回とかむずかしそうだけど。
スマブラXは、HAVOK使いつつ、
スローモーションとか早送りあるね
すごいね。
0236名前は開発中のものです。
2008/04/27(日) 21:17:07ID:jDBpFIG6スマブラXでのHavokの利用方法ですが、メインである格闘部分には使用されていません。
0237名前は開発中のものです。
2009/03/02(月) 15:34:56ID:7DRdx6AN0238名前は開発中のものです。
2009/03/02(月) 17:58:31ID:RWFwhzJiよくしんとか散々言われ放題だったな
うん、ダメだと思うよ
0239名前は開発中のものです。
2009/03/02(月) 18:47:57ID:H2kRluPcただ、PCの場合は環境によって処理能力に差があるから、環境によって
難易度が変わってしまうという問題があるが。
0240名前は開発中のものです。
2009/03/02(月) 19:25:11ID:RWFwhzJiハイスコアの出たプレイをリプレイデータとして保存するとして、そこに処理落ちの度合いを記録しておくのもよい
■ このスレッドは過去ログ倉庫に格納されています