PCで描画と内部処理の非同期処理ってどうやんの?
■ このスレッドは過去ログ倉庫に格納されています
0001(;´д⊂ヽ
02/04/29 16:14ID:Gsu.P7Dk実装したいんですが、具体的に、どういう風な構造にすればいいのか全然わかりません助けて
キー入力とかタイミングに厳しい処理を別スレッドで回すとして
描画担当スレッドはどーすればいいんでしょう?
(描画途中で別スレッドにより内部変数が書き換えられるケースが出てきますよね?)
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ハイスコアの出たプレイをリプレイデータとして保存するとして、そこに処理落ちの度合いを記録しておくのもよい
■ このスレッドは過去ログ倉庫に格納されています