ドラゴンクエストクローンを作ろう (746レス)
1-

436: 名前は開発中のものです。 [sage] 2006/07/15(土) 07:56:06 ID:J160mIqM(3/10) AAS
>>435
435(1): 名前は開発中のものです。 [] 2006/07/15(土) 03:05:51 ID:81t16XAC(2/4) AAS
俺が言葉足らずだったのは申し訳ないが、
垂直同期をとるところは作るもんではないんですか?

dxみたいに同期を待ってくれるものがあれば、それを使えばいいですけれども。

実験して5msとあるのであれば、16.6待つまでに時間あるから
あんまり気にしないでも大丈夫だと思います。
ですから、垂直同期をとるには専用の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
425(4): 名前は開発中のものです。 [] 2006/07/14(金) 00:32:16 ID:XNNCuakE(1) AAS
>>424
ところでDXライブラリ使ってるみたいだけどこれ使わなくてもDQ1みたいなゲームつくれんの?
論点を >>431
431(1): 名前は開発中のものです。 [sage] 2006/07/15(土) 00:21:00 ID:J160mIqM(1/10) AAS
試してみました。
640x480一回の転送で約5ms、60FPSで1フレ約17msですから余裕ですね。
何か勘違いしていました。申し訳ありません。

この際環境依存が激しいDirectXを捨ててDIBに乗り換えようかと
思ったのですが、私が知る限りではDIBは垂直同期を取る方法が
なかったような気がします。
スクロールするゲームではなるべくテアリングは避けたいのですが、
DIBで垂直同期を取る方法はあるのでしょうか?
で少しずらしてしまいましたが、テアリングを気に
しないのであれば >>430
430(1): 名前は開発中のものです。 [] 2006/07/14(金) 22:05:12 ID:2BtiSCsl(2/2) AAS
可能すぎる。

ただし、グラボの恩恵を最大限には受けることが出来ない。
の指摘通り >>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クローンを引き合いに出されたので拘ってみました。
何時無視されても良かったのに最後までお付き合い下さり有難うございます。
460
(1): 名前は開発中のものです。 [sage] 2006/07/16(日) 23:47:57 ID:eLVapp7P(3/3) AAS
放置しとけば良いのを455で書き込んだのを少々気にしつつ
あなたのドラクエクローンを期待。

俺はあなたの性格が好きです。(関係無さ過ぎ)
1-
あと 286 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.029s