ドラゴンクエストクローンを作ろう (746レス)
上下前次1-新
435(1): 名前は開発中のものです。 [] 2006/07/15(土) 03:05:51 ID:81t16XAC(2/4) AAS
 俺が言葉足らずだったのは申し訳ないが、 
 垂直同期をとるところは作るもんではないんですか? 
  
 dxみたいに同期を待ってくれるものがあれば、それを使えばいいですけれども。 
  
 実験して5msとあるのであれば、16.6待つまでに時間あるから 
 あんまり気にしないでも大丈夫だと思います。 
436: 名前は開発中のものです。 [sage] 2006/07/15(土) 07:56:06 ID:J160mIqM(3/10) AAS
 >>435 
 ですから、垂直同期をとるには専用のAPIが必要なんです。 
 垂直同期信号を検地する為のAPIが無ければ何時垂直同期信号が 
 来ているのか知る術はありません。 
 そのAPIが私の知る限りではDirectX以外に無いのです。 
  
 標準のWin32APIにDirectDrawのWaitForVerticalBlankやGetScanLineに 
 相当する機能を持つAPIがあれば良いのですが、ご存知ですか?
437(1): 名前は開発中のものです。 [] 2006/07/15(土) 09:08:09 ID:gt1duSp0(1) AAS
 んなもん使わねーよ 
438: 名前は開発中のものです。 [sage] 2006/07/15(土) 09:26:13 ID:J160mIqM(4/10) AAS
 >>437 
 実際はFlipやPresentの中で自動的に垂直同期を待ってからフリップ 
 されるのでWaitForVerticalBlankやGetScanLineを使う機会は無い 
 かもしれませんが、要はDIBに垂直同期を待ってからスクリーンに 
 画像を転送すき仕組みがあるかどうかです。 
 無い場合はテアリングが発生してしまうのでスクロール処理がある 
 2Dのゲームには向いていないということになります。
439(1): 名前は開発中のものです。 [sage] 2006/07/15(土) 09:27:46 ID:9Xtt4+04(1) AAS
 ウィンドウで動くアプリで垂直同期は全く関係ないとおもったけど? 
  
 てーかフルスクリーンで動くDirectXだからこそ関係ある話。 
440(1): 名前は開発中のものです。 [sage] 2006/07/15(土) 10:24:05 ID:J160mIqM(5/10) AAS
 >>439 
 デスクトップが希望のリフレッシュレートになっていないと 
 見苦しいことになりますが、一応ウインドウで動くアプリでも 
 垂直同期は関係あります。 
 試しに同期を取るアプリと取らないアプリをうpしましたので 
 お時間があれば試してみて下さい。 
 (画面のリフレッシュレートが60Hzだと違いが特に分かります) 
  
 外部リンク[zip]:gamdev.org 
  
 リフレッシュレートがゲームのFPSと合っていない場合は垂直同期 
 を取っても取らなくても見苦しくなりますが、最近はリフレッシュ 
 レートの設定項目数が少ない液晶モニタが普及しているので 
 ウインドウで動作させる場合も割と意味があると思います。
441: 名前は開発中のものです。 [sage] 2006/07/15(土) 10:31:52 ID:J160mIqM(6/10) AAS
 >>425論点を >>431431(1): 名前は開発中のものです。 [sage] 2006/07/15(土) 00:21:00 ID:J160mIqM(1/10) AAS
 試してみました。 
 640x480一回の転送で約5ms、60FPSで1フレ約17msですから余裕ですね。 
 何か勘違いしていました。申し訳ありません。 
  
 この際環境依存が激しいDirectXを捨ててDIBに乗り換えようかと 
 思ったのですが、私が知る限りではDIBは垂直同期を取る方法が 
 なかったような気がします。 
 スクロールするゲームではなるべくテアリングは避けたいのですが、 
 DIBで垂直同期を取る方法はあるのでしょうか? 
 で少しずらしてしまいましたが、テアリングを気に 
 しないのであれば >>430 の指摘通り >>427 の条件からDirectXは外れます。 
 誤ったレスをしてしまって申し訳ありません。
442(1): 名前は開発中のものです。 [] 2006/07/15(土) 12:10:07 ID:81t16XAC(3/4) AAS
 >>440 
 上げてくれた同期取りをしない奴に、 
 自分で作った垂直同期とりの関数かなんかをいれると 
  
 上げてくれた同期取りをしている方のような動作に出来ます。 
  
 って俺はそうしてるんだが・・・。 
443: 名前は開発中のものです。 [sage] 2006/07/15(土) 12:29:37 ID:J160mIqM(7/10) AAS
 >>442 
 >自分で作った垂直同期とりの関数かなんかをいれると 
  
 それはDirectXを使わない方法ですか? 
 もしDirectXを使わないで垂直同期をとっているのでしたら 
 是非その方法を教えていただけないでしょうか。 
 私もDIBで済むのならDIBにしたいので・・・
444(1): 名前は開発中のものです。 [sage] 2006/07/15(土) 16:41:48 ID:WwdAlzc2(1) AAS
 内部の描画はDIBでやって 
 表示だけdirectdrawにすりゃええやん。 
445(1): 名前は開発中のものです。 [sage] 2006/07/15(土) 17:06:22 ID:J160mIqM(8/10) AAS
 >>444 
 >>425-428 
 この話題は 
  
 (質問)DQ1みたいなのDXライブラリ使わなくても作れるの? 
 ↓ 
 (私)DXライブラリ関係なくDirectXが使えてその他条件が揃う言語ならどれでも作れる 
 ↓ 
 (指摘)速度はDIBで十分、DirectX無くても大丈夫 
  
 という流れから始まったものなので、DirectDrawを使うと 
 なるとDirectXが必要となり、意味がありません。
446(1): 名前は開発中のものです。 [sage] 2006/07/15(土) 17:34:24 ID:MDeESeX3(1) AAS
 >>445 
 所詮WINAPIはゲームには向かないって事。 
 いくら処理が早くても、ゲームを作るための物ではないですよ。 
  
 それを分かってるから、えらい人たちがDirectXとか作ったんでしょうし。 
  
 そうじゃなかったらDirectXなんてない。 
 問題は処理速度ではないって事ではないんでしょうか? 
447: 名前は開発中のものです。 [sage] 2006/07/15(土) 17:45:30 ID:J160mIqM(9/10) AAS
 >>446 
 はい、速度についてはDQ1程度ならDIBでも問題ないという結論が出たので、 
 今はDIBで垂直同期信号(VSYNC)を待った画面出力が可能かどうかという話に 
 なっています。(違うかもしれませんが今の私の関心事はそれです) 
  
 私が知る限りではDirectX以外で垂直同期信号を待ったり、帰線消去期間中か 
 どうかを調べたりする方法は無かったと思うのですが、442の方が432,435 
 辺りでDirectXが無くても垂直同期を検知する手段がある、というような発言を 
 されているので、それについての詳細を私が求めて今ご返答を待っている状態です。
448(1): 名前は開発中のものです。 [] 2006/07/15(土) 20:55:59 ID:81t16XAC(4/4) AAS
 垂直同期を検知できるんでなくて、 
 同期取りをしているかのような動作が出来ると言うことですな。 
  
 完全になくなるかどうかは俺にも分かりませんが、 
 上のサンプルのように毎回がたつきは出なくなります。 
449(2): 名前は開発中のものです。 [sage] 2006/07/15(土) 21:18:46 ID:J160mIqM(10/10) AAS
 >>448 
 がたつきがあるのは私の組んだプログラムのタイマー精度が原因です。orz 
 がたつきも非常に問題ですが、テアリング=がたつきではありません。 
  
 タイマーの精度を上げて、がたつかないようにしましたので、申し訳ありませんが 
 お時間のあるときにもう一度試してみて下さい。今度は Non_VSync.exe ではっきり 
 テアリング(前のフレームと今のフレームの画像が混ざってしまう現象)が 
 確認できると思います。(タイミングが合い、運良く確認できない場合もあります 
 ので、確認できない場合は2・3回再実行してみてください) 
  
 外部リンク[zip]:gamdev.org
450: 名前は開発中のものです。 [sage] 2006/07/16(日) 00:49:27 ID:ovtqapnP(1/2) AAS
 俺はノートPCで液晶だからVSYNCとか言われてもわからねぇ 
451: 名前は開発中のものです。 [sage] 2006/07/16(日) 00:56:24 ID:DFiXRGJs(1/3) AAS
 液晶でもVSYNCはありますしテアリングも発生します。
452: 名前は開発中のものです。 [sage] 2006/07/16(日) 01:00:23 ID:DFiXRGJs(2/3) AAS
 正確にはCRTと同じ信号を処理している関係上の擬似的なもの 
 だと思いますが、少なくともソフト側から見れば液晶とCRTの 
 区別はありません。(し、CRTと同じ様にテアリングも発生します)
453(1): 名前は開発中のものです。 [sage] 2006/07/16(日) 01:04:37 ID:ovtqapnP(2/2) AAS
 試してみたいんだけど、さっきアップしてくれたやつ 
 何も起こらず終了しちゃうんだよね。 
 Zバッファの作成に失敗しましたとかいうログが出てる。 
 3Dものなのだろうか? 
454(3): 名前は開発中のものです。 [sage] 2006/07/16(日) 01:22:23 ID:DFiXRGJs(3/3) AAS
 >>453 
 ソフトは2DですがDXライブラリがZバッファを作成しようとするようです。 
 Zバッファを作らない物をうpしました。 
  
 外部リンク[zip]:gamdev.org 
  
 場合によってはNon_VSync.exeでも最初全くテアリングが発生しないことが 
 ありますが、30秒〜1分ほど放っておくとその内テアリングが発生し始めます。 
 (画像が横にずれるような現象です)
455(1): 名前は開発中のものです。 [sage] 2006/07/16(日) 16:09:10 ID:eLVapp7P(1/3) AAS
 >>449>>454 
  
 442らへんの人です。 
  
 そういうことだったんですな。 
 ならば仰るとおりテアリングがじわじわ発生します。 
  
 てっきりドラクエを作るんだとおもい、DIBすすめてみたんですが、 
 この程度でもテアリングが気になるようならば、dx使うと良いでしょう。 
  
 なんか変な流れになってしまったようで申し訳御座いません。 
  
 俺もDIBでテアリング観察ソフツ作ってみました。 
  
 外部リンク[zip]:gamdev.org 
456: 名前は開発中のものです。 [] 2006/07/16(日) 21:32:37 ID:HonGYrh5(1) AAS
 うぜえ 
457: 名前は開発中のものです。 [age] 2006/07/16(日) 22:18:10 ID:GjLYai51(1) AAS
 なんだと 
458: 名前は開発中のものです。 [sage] 2006/07/16(日) 22:46:48 ID:eLVapp7P(2/3) AAS
 まあ、これを機にTDQみたいなドラクエベースのRPG作ってみるか。 
459: 名前は開発中のものです。 [sage] 2006/07/16(日) 22:54:27 ID:soNF5USm(1) AAS
 >>455 
 曖昧なまま終わるのは嫌だったのでついしつこく反論し続けてしまいました。 
 テアリングが気になるかどうかの個人差は大きいと思います。 
 どんなにテアリングが酷くても言われるまで気付かない人も居ると思いますが、 
 私はこの程度でも気になる人間です。気になる方がおかしいとか、気にならない 
 方がおかしいとか、そんな優劣は無いので本来なら制作の勉強をしている内に 
 気付いて自然とそこに拘るかどうかが決まっていくものだと思うのですが、 
 一応 >>425 ではDQ1クローンを引き合いに出されたので拘ってみました。 
 何時無視されても良かったのに最後までお付き合い下さり有難うございます。 
上下前次1-新書関写板覧索設栞歴
あと 287 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.018s