DXライブラリ 総合スレッド その18
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2014/05/07(水) 19:44:28.30ID:qr2Z08k5「DXライブラリ」に関するスレッドです。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。
【公式】
http://homepage2.nifty.com/natupaji/DxLib/
【関連スレ】
C/C++ゲーム製作総合スレッド Part5
http://toro.2ch.net/test/read.cgi/gamedev/1389798031/
ゲームプログラムなら俺に聞け30
http://toro.2ch.net/test/read.cgi/tech/1388933972/
●DXライブラリではなくDirectXの質問ならこっちへ
【C++】DirectX初心者質問スレ【C】(プログラム技術板)
http://toro.2ch.net/test/read.cgi/tech/1370015791/
0744名前は開発中のものです。
2015/07/18(土) 22:54:14.28ID:JvQ6nS7Vあれゲームエンジンらしいけどゲームエンジンが何かいまいち分からなくて避けてたんだよね。
ライブラリは呼び出すだけだけどゲームエンジンは専用の開発環境でしたりするんだっけ?
0746名前は開発中のものです。
2015/07/19(日) 00:12:12.23ID:1F0+7bomある程度C#分かるなら比較的簡単にできるから試してみなよ
0747名前は開発中のものです。
2015/07/19(日) 01:30:40.05ID:2qGlkVp30749名前は開発中のものです。
2015/07/26(日) 15:08:32.51ID:2iT8Iq22別のアプリケーションを起動してみたらそいつが「解像度を変更します」とか言ったから「はい」クリックしたんだけど
その途端DXライブラリの方がクラッシュしちゃった
0750名前は開発中のものです。
2015/07/27(月) 01:17:04.47ID:/CO8ZZaM0751名前は開発中のものです。
2015/07/27(月) 16:59:52.98ID:9uiHxYHQ0753名前は開発中のものです。
2015/08/05(水) 17:33:36.88ID:N5RUUKL7DXライブラリはC++上でのライブラリ、DirectXのを平易に呼び出せる
フレームワークとラッパーの中間くらいか。
SharpDXはその上にフレームワークが乗ったりもするは、あくまでも.NET上で使う
すみません。
c#用のDXライブラリとの比較です。
0755名前は開発中のものです。
2015/08/05(水) 17:53:52.00ID:N5RUUKL7レイヤーが違う
0756名前は開発中のものです。
2015/08/05(水) 18:01:30.68ID:N5RUUKL7DirectX でよく使う機能を絞ってまとめてあるのがDXライブラリ
それと同じ違い
SharpDXの上にDXライブラリのようなものを構築することだってやろうと思えばできる
0758名前は開発中のものです。
2015/08/05(水) 19:45:01.09ID:N5RUUKL7C#のはDXライブラリの全部が入ってるわけじゃないのと
DXライブラリにはDirectXの全てが入ってるわけじゃないので
足りない分を自力で補えるか使わないで済むとかで決めては
生のDirectXはかなり厳しいから何らかのフレームワークと組み合わせる必要があるかと
XNAが良かったけどDirectX9と心中しちゃったから
XNA風のやつがいいとは思う
もちろん、DXライブラリはとっつきいいので
最初に使ってみるのもいいと思うよ
0759名前は開発中のものです。
2015/08/07(金) 20:34:40.46ID:bvYAYBSw初心者にはもう厳しい
0760名前は開発中のものです。
2015/08/09(日) 11:47:25.97ID:MRvAVR8Q生でDirectX使うのに近いしな
0761名前は開発中のものです。
2015/08/09(日) 18:28:56.42ID:l5+JBnA20762名前は開発中のものです。
2015/08/15(土) 02:24:53.52ID:U8JMMOVl普通のメッセージループな形式全然分からなくて。
しかしファイルセレクタ使う必要が出て、DXライブラリでコモンダイアログ取り扱う
方法を検索したら、真っ先に作者様の掲示板でのフォローが出て来た。
ほんっっっと、昔からマメな方ですね。
# と言うかドキュメントにひと通り書いても良いかもしれん知識ですね。勉強になりました。
0763名前は開発中のものです。
2015/08/25(火) 21:52:23.94ID:hIaHeOa8OS : Windows8
ソフト : VS2015
この環境でDxライブラリを使い始めました。
手始めに画像を表示しようとDrawGraphを使用したところ
実行画面がフルスクリーンになってしまいます。
また適当に画像が横に移動するコードを書きましたが
表示が遅いのか速いのか、すでに移動し終わった状態で表示されてしまいます・・・
Dxライブラリが直接の原因とは思えませんが、どうしたらよろしいでしょうか?
0764名前は開発中のものです。
2015/08/25(火) 22:01:15.38ID:3/2xaZaADXが原因
関数リファレンス読め
0765名前は開発中のものです。
2015/08/25(火) 22:05:27.68ID:81f7WKEU検索すればタダでチュートリアルが見れるんだからそれくらいやれや
そうすれば全部解決するよ
0766名前は開発中のものです。
2015/08/27(木) 21:13:26.50ID:54XixN4Aプログラマブルシェーダーをフルに活用してどこまで目指せるのか
理想を言えばこれくらい、現実は知らない
ttps://www.youtube.com/watch?v=sYX9I3ONHc4
技術的には無理じゃないんだろうけどちゃんとしたミドルウェアには及ばないよな
とりあえず遅延シェーディングの実装からやるか。。。
0767名前は開発中のものです。
2015/08/27(木) 21:27:52.81ID:vPZMERZ5Unreal Engineとかもあるじゃん
0768名前は開発中のものです。
2015/08/27(木) 21:51:00.09ID:54XixN4A今から導入してもすぐにはわかんないだろうし
あーこうやって頭固い老害が生まれてくのか
0769名前は開発中のものです。
2015/08/27(木) 23:09:56.19ID:vPZMERZ50770名前は開発中のものです。
2015/08/28(金) 00:08:59.22ID:u/A4PV2C作ったものの配布とかってどんな感じ?
0771名前は開発中のものです。
2015/08/28(金) 00:16:30.04ID:FiAe9UOi料金は売上のパーセンテージで決まってて、4半期(三ヶ月)につき3000ドルまではタダで、超過した部分のうち5%だけ取られる
ちなみにアーケードゲームとアニメーション用途なら完全無料らしい
0772名前は開発中のものです。
2015/08/28(金) 00:22:24.05ID:u/A4PV2C気になることはまだいっぱいあるけど、
とりあえず触ってみてそれで分かんなかったらUEスレで聞くことにするわ
0773名前は開発中のものです。
2015/08/28(金) 02:06:55.16ID:29wnk3kKちょっと前のPCだと動かないのがネックくらいか
0774名前は開発中のものです。
2015/08/28(金) 03:43:37.94ID:u/A4PV2C当たり前か
かなり奥が深そうだけど勉強にどれくらいかかるかな
楽しみで寝付けない
0775名前は開発中のものです。
2015/08/28(金) 03:54:53.69ID:29wnk3kK手元のPCは32bitだから動かないんだよなー。しょぼん。
それはともかくUnityでもUE4でもcocos2dでもいいんだけど、
他のフレームワークで使われてる仕組みを、DXライブラリで実装したことってある?
0776名前は開発中のものです。
2015/08/28(金) 04:49:38.42ID:PpCdnE9a0777名前は開発中のものです。
2015/08/28(金) 14:21:48.61ID:u/A4PV2C>>775
4Gamer見てシェーダー周りをいじるのならよくやってるけど
到底UEやCryEngineには及ばないな
グラフィック以外はわからn
0778名前は開発中のものです。
2015/08/28(金) 17:07:42.49ID:29wnk3kKenemy.x += 5;
enemy.y += 1;
みたいなのを毎フレーム呼び出してたんだけどさ。
いろんなゲームエンジン見てると、オブジェクト自体に速度とかのパラメータを持たせておいて
enemy,velocity.x = 5;
enemy,velocity.y = 1;
みたいに書くと、あとは自動的に移動する感じだったりするのよね。
他にも回転とか、特定の座標まで自動的に移動とか。
自分が真っ先にやってみたのはそれくらいかなあ。
0779名前は開発中のものです。
2015/08/28(金) 17:57:49.79ID:FiAe9UOi0780名前は開発中のものです。
2015/08/28(金) 18:53:40.81ID:29wnk3kK0781名前は開発中のものです。
2015/08/28(金) 23:54:34.78ID:O5/VKpXf0782名前は開発中のものです。
2015/08/29(土) 02:21:31.39ID:qnm/FjLD0783名前は開発中のものです。
2015/08/29(土) 23:55:10.31ID:Mf6xeY9N0784名前は開発中のものです。
2015/08/29(土) 23:58:13.38ID:Arq4ZV8J.NET Frame Wark
0785名前は開発中のものです。
2015/08/30(日) 02:14:16.32ID:Trd8b8psクラスにほぼ必ずUpdate()って関数が入ってる感じかな
あるある
0786名前は開発中のものです。
2015/08/30(日) 22:08:04.88ID:/9wdOfF7ありがとぉ ´∀`)
0787名前は開発中のものです。
2015/08/31(月) 00:01:01.77ID:lL0rAF3dの「う」だけ色を変えたい場合どうしてますか
0788名前は開発中のものです。
2015/08/31(月) 00:05:27.09ID:qBurG/Qt0789名前は開発中のものです。
2015/08/31(月) 00:21:38.50ID:lL0rAF3d0790名前は開発中のものです。
2015/08/31(月) 01:37:20.88ID:7O6pik21変えるのが色だけってわかってるならカラーコードを埋め込んだ文字列を引数にするとか
「#ffffffあい#ff0000う#ffffffえお」って渡せば「う」は赤で、他は白で描かれるみたいな
0791名前は開発中のものです。
2015/08/31(月) 03:08:45.47ID:qBurG/Qt多分その前提で話をしてるよ
0792名前は開発中のものです。
2015/08/31(月) 08:01:15.54ID:fkr3LSvyhttp://www.moguragames.com/entry/three-minutes-contest/
0793名前は開発中のものです。
2015/08/31(月) 11:17:51.04ID:m3+FT2iK3分で作るのかと思った
0794名前は開発中のものです。
2015/08/31(月) 19:01:43.34ID:qBurG/Qt0795名前は開発中のものです。
2015/08/31(月) 21:40:42.12ID:Cj/G8avt0796名前は開発中のものです。
2015/09/01(火) 00:31:13.68ID:PkxY2sLo0797名前は開発中のものです。
2015/09/01(火) 02:41:26.21ID:D6RwCZdhエイプリルフールなら半年後だぞ
0798名前は開発中のものです。
2015/09/01(火) 03:53:05.37ID:Yfw3K3VH0799名前は開発中のものです。
2015/09/01(火) 12:37:25.70ID:G0iu6PfV0800名前は開発中のものです。
2015/09/01(火) 13:16:25.61ID:YazNB0MOコンパイル不要なLuaみたいなスクリプトで書けるようにしてほしい気もする
0801名前は開発中のものです。
2015/09/01(火) 14:31:30.96ID:0asKcjM1http://www.famitsu.com/news/201509/01087335.html
0802名前は開発中のものです。
2015/09/01(火) 16:49:40.11ID:2qQ15eCP0803名前は開発中のものです。
2015/09/03(木) 01:29:27.07ID:rl5cKGihそれともOpenGLラッパーのDXライブラリなのだろうか
0804名前は開発中のものです。
2015/09/03(木) 01:59:04.49ID:P1fA5LLb0805名前は開発中のものです。
2015/09/03(木) 12:38:34.63ID:4ZJDr9k20806名前は開発中のものです。
2015/09/03(木) 16:47:55.16ID:DQ12RPzx0807名前は開発中のものです。
2015/09/03(木) 17:20:02.07ID:F9WTpJ6U0808名前は開発中のものです。
2015/09/03(木) 17:36:36.35ID:7EIFxaV2そもそもアンリアルエンジンはもともとギアーズのために出来たようなもんだし。
0809名前は開発中のものです。
2015/09/03(木) 18:18:10.27ID:/QEVOx/j0810名前は開発中のものです。
2015/09/03(木) 18:34:35.78ID:7EIFxaV20811名前は開発中のものです。
2015/09/03(木) 18:39:55.51ID:/QEVOx/j0812名前は開発中のものです。
2015/09/03(木) 19:21:08.69ID:P1fA5LLb0813名前は開発中のものです。
2015/09/03(木) 21:27:59.84ID:l0N7kKyf負荷のかかる部分はGPUに投げちまうからそんなに気にするほどではない
0814名前は開発中のものです。
2015/09/06(日) 10:04:28.73ID:E7bRQ4Kv例えば円を増やすようなプログラムの場合、一気に出力されるんですが…
順番に実行されるなら増えていくように描画されるはずだと思いますが
何がいけないんでしょうかね。
0815名前は開発中のものです。
2015/09/06(日) 11:27:11.05ID:Y/6WeeZ5Drawcircleしても直ぐに表示される訳じゃない
0816名前は開発中のものです。
2015/09/06(日) 12:12:26.12ID:qpvafNweDXライブラリでは人が目にするディスプレイの画面(表画面)とは別の仮想的なスクリーン(裏画面)に描画して
最後にScreenFlipで裏画面に描かれたグラフィックを表画面に反映させてる
だからScreenFlipする直前までに裏画面に描かれた内容全部がScreenFlipのタイミングで一瞬でディスプレイに表示される
一気に表示されるのは裏画面の中で連続して描画した後最後にそれをScreenFlipしてるからじゃない?
だんだん増えていくように描画したいのならDrawcircleの回数を最初は1から始まってループが繰り返されるにつれて
増やしていくようにしないとダメなんじゃないかと
0817名前は開発中のものです。
2015/09/06(日) 15:33:44.65ID:z/NhP+Ylでもそれだとwaitした場合は、段階的に表示されるんんですけど?
0818名前は開発中のものです。
2015/09/06(日) 15:47:38.32ID:z/NhP+Yl書かなくてもあるタイミングで発生するんでしょうか?
0819名前は開発中のものです。
2015/09/06(日) 15:50:06.08ID:z/NhP+Ylあれ?まとめて表示されるんじゃないんですか?
あれれ?
0820名前は開発中のものです。
2015/09/06(日) 16:10:26.61ID:wfQnnRMp0821名前は開発中のものです。
2015/09/06(日) 16:13:53.84ID:f5CeStioまずはゲーム製作の入門サイト等を見たほうがよさそう
0822名前は開発中のものです。
2015/09/06(日) 16:59:42.78ID:ze49L8dSまず画像を裏画面に描いてから、一気に表画面に反映させる…というのが原則。
だが、「裏画面に描き込むよ!」というのを最初に設定しないといけない。
それが行われていない場合、いきなり表画面に描画される。
で、ここからは予想。
表画面=ユーザが見てる画面そのものなので、描画命令を出すたびに随時見た目が変わる。
最初、円が一瞬で表示されたというのは、単にコンピュータが高速すぎて目が追いつかなかっただけかもしれない。
waitを挟むことで、順番に表示されてる様子が見えただけかもしれない。
具体的なやり方は、SetDrawScreenおよびScreenFlipを参照されたい。
http://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_graph3.html#R4N6
0823名前は開発中のものです。
2015/09/06(日) 17:29:28.59ID:qpvafNweまず公式サイトのチュートリアルとか市販の解説本とかで
DXライブラリの描画の基本を覚えた方がいいんでない?
>>822が少し書いてくれてるけど、DXライブラリでのオーソドックスな描画の流れは
1. 裏画面を準備する
2. 裏画面の内容をクリア
3. 表示させたいグラフィックスを裏画面に描く
4. ScreenFlipで裏画面の内容を表画面に反映
5. 2に戻る
って感じ
定石無視してるとなると質問についてはどういう流れで描画をやらせてるのかが分からないと
予想の範囲でしか回答は無理だな・・・
0824名前は開発中のものです。
2015/09/06(日) 19:28:07.81ID:z/NhP+Ylいきなり表画面に表示される設定ですよ?
だってDXライブラリのサンプルにある真ん中に点を打つっていう
プログラムを改変しただけですもん。
for(i=0; i<=10000 i++)
{
drawcircle();//ランダムな場所に円表示、シグネチャは割愛
}
この場合5〜10秒たってから一気に表示です。
おかしくないですか?裏側に描写せずそのまま表画像表示なのに
何故いきなり表示されないんですか?
0825814
2015/09/06(日) 19:35:00.27ID:z/NhP+Yldrawcircleの中に ScreenFlip関数が埋め込まれているのではないか?
っていうのが僕の予想です。
でもscreenflip関数によってある程度書き込みがなかったら、一定期間終了後
書き出すんじゃないでしょうか?つまりscreenflip関数が呼び出されたかどうか
監視するための、Detectionscreenflip関数なるものがあって、それによって制御
されていると。
だから1万回連続でdrawcircleがあった場合、連続的に書き込まれるために
5〜10秒待たなければならない、でもwaitを挟むとDetectionscreenflip関数が
FALSEを返すから、すぐに出力されると。たぶん5〜10ミリの間だと思いますね。
違いますか?
0826名前は開発中のものです。
2015/09/06(日) 21:07:10.01ID:N98xBdEO前世紀8ビット時代の様に、ライン文実行すると始点から終点まで作画が見えるような時代でもないですし。
「実行前の初期化」の方が、「実行内容」より重かったりするのも、現代ではありがちです。
試しに、WaitTimer()で千単位の引数をDraw命令の直後に置いてみれば分かるのではないでしょうか。
0827822
2015/09/07(月) 02:36:49.56ID:eAYDJya10828814
2015/09/07(月) 19:10:44.33ID:nsmH+La5for(i=0; i<=100; i++){drawcircle(); waittimer(1000);}の場合も
for(i=0; i<=100; i++){drawcircle(); waittimer(100000);}の場合も
最初の円を表示する時間はいずれも3秒前後でした。もちろん次の円以降は
waittimerの影響で後者のほうが100倍遅いですが…
つまりdraw系の関数は、連続でdrawが実行されない場合は3秒たったら
出力されるってことでいいですかね?
0829814
2015/09/07(月) 19:37:15.54ID:nsmH+La5やっぱりわかんね…
10ミリwaitかませたら、最初は3秒でも次以降は10ミリ秒未満で連続で
表示されるってことだからな…
何故drawcircleが連続であるときは、一気に表示されずに
waitを挟むと連続的に表示されるのか?
これが謎です
0830814
2015/09/07(月) 19:53:55.22ID:nsmH+La5最初の3秒はたぶん描画と関係ないんだ、エンジンを準備してるとか
そういう話なんだろうな。
さっき
for(i=0; i<=100; i++){drawcircle(); waittimer(1);}
で試したら、こっちは10秒くらいたってから一気に表示
for(i=0; i<=100; i++){drawcircle(); waittimer(10);}
の場合は3秒たってから1個ずつ10ミリ感覚で表示
つまりdrawcircle内の描画の部分は1〜1+xしか感覚がない場合は
まだ描画を我慢してるってことなのかな?
0831名前は開発中のものです。
2015/09/07(月) 19:55:16.01ID:VQkXc7Tw>だってDXライブラリのサンプルにある真ん中に点を打つっていう
>プログラムを改変しただけですもん。
の時点でまったくわかってないからそうなる。
だからみんな描画の仕組みを理解しろと言ってる。
いいからここを見て勉強するんだ。
http://homepage2.nifty.com/natupaji/DxLib/dxprogram.html
0832814
2015/09/07(月) 19:55:45.18ID:nsmH+La5一々描画のエンジンを呼んでたら処理量が多くなるから
描画エンジンのバッファを一定期間開放して溜まったら表示みたいに
したほうが効率的なんだろうね
ここまで分かると本当に気持ちいいな
0833名前は開発中のものです。
2015/09/07(月) 20:01:38.42ID:IRqnnJFS0834814
2015/09/07(月) 20:03:49.87ID:nsmH+La5描画の仕組みは裏画面に表示してから出力って事じゃないんですか?
DrawCircle内部にScreenFlip関数があるんでしょう。
で、あるとして問題はタイミングですよ。
LoagGraphみたいに内部にScreenFlipが無い場合はScreenFlipをこちからから
呼べるけどDrawCircleの場合はできないですからね。
だから、DrawCircleが一気に呼ばれた場合はScreenFlip関数が競合してしまうから
一気にデータを送れるようなバッファに書き込むようにしてるんじゃないでしょうか?
だから何十秒たって一気に表示されるんだと思いますよ。
0835814
2015/09/07(月) 20:14:55.48ID:nsmH+La5DxLib_Init()
これに3秒かかるんでしょう?
0836名前は開発中のものです。
2015/09/07(月) 20:16:21.73ID:IRqnnJFSソース全部晒せば誰か答えてくれるんじゃね?
今の時点だとエスパー募集状態だし
0837名前は開発中のものです。
2015/09/08(火) 11:43:00.24ID:daj1hZ2R変な予想してるうちは説明めんどくせえ
0838名前は開発中のものです。
2015/09/08(火) 12:35:31.55ID:UYKaVKO9100000個drawcircleしても1秒もかからないぞ?
10000なんてディスプレ-の1フレーム書き換え時間で終るだろ
Aero有効ならティアリングも起きなくて一度に表示されてるように見えてあたりまえ
0839名前は開発中のものです。
2015/09/08(火) 16:34:33.34ID:iPo9dlpz隱ュ繧薙〒繧ゅo縺九i縺ェ縺縺ェ繧峨∝驛ィ讒矩縺ッ縺ゥ縺縺帷炊隗」縺ァ縺阪↑縺縺九i鮟吶▲縺ヲ蜈・髢繧オ繧、繝医ョ騾壹j騾イ繧√↑縺輔>
0840名前は開発中のものです。
2015/09/08(火) 18:01:51.93ID:vOwENlZY0841名前は開発中のものです。
2015/09/08(火) 21:33:10.24ID:ekVBbRJPそれは開発環境の違いでしょ
Drawcircleは競合するとすぐには描画メソッドが呼ばれないっていう
原理に注目しないとダメだよ
0842名前は開発中のものです。
2015/09/08(火) 21:35:01.26ID:ekVBbRJPソース全部って…
単に
Initの後for一回呼び出しただけですよ
0843名前は開発中のものです。
2015/09/08(火) 21:37:13.95ID:zfzkyIQr0844名前は開発中のものです。
2015/09/09(水) 01:20:18.20ID:sDt8QyPO■ このスレッドは過去ログ倉庫に格納されています