[表示 : 全て 最新50 1-99 101- 2chのread.cgiへ]
Update time : 12/24 03:50 / Filesize : 42 KB / Number-of Response : 157
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

DXライブラリ 総合スレッド その14



1 名前:名前は開発中のものです。 mailto:sage [2012/10/19(金) 12:42:58.26 ID:axIyAfJ0]
Cを習得した程度のスキルでも、ゲームのグラフィックを比較的容易に描画する事のできる、
「DXライブラリ」に関するスレッドです。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。

【公式】
homepage2.nifty.com/natupaji/DxLib/

【前スレ】
DXライブラリ 総合スレッド その13
toro.2ch.net/test/read.cgi/gamedev/1339368894/

【過去スレ】
01 pc11.2ch.net/test/read.cgi/gamedev/1197468399/
02 pc11.2ch.net/test/read.cgi/gamedev/1224923873/
03 pc11.2ch.net/test/read.cgi/gamedev/1238429676/
04 pc11.2ch.net/test/read.cgi/gamedev/1249822550/
05 pc11.2ch.net/test/read.cgi/gamedev/1259912953/
06 hibari.2ch.net/test/read.cgi/gamedev/1267108154/
07 hibari.2ch.net/test/read.cgi/gamedev/1286180687/
08 hibari.2ch.net/test/read.cgi/gamedev/1301818631/
09 hibari.2ch.net/test/read.cgi/gamedev/1310904069/
10 hibari.2ch.net/test/read.cgi/gamedev/1313655495/
11 toro.2ch.net/test/read.cgi/gamedev/1322844235/
12toro.2ch.net/test/read.cgi/gamedev/1330000532/

【関連スレ】
C/C++ゲーム製作総合スレッド Part1
toro.2ch.net/test/read.cgi/gamedev/1337516528/

13 名前:名前は開発中のものです。 mailto:sage [2012/10/30(火) 18:39:01.26 ID:6PlZvoHG]
イミフ

拾えるぞ?

14 名前:名前は開発中のものです。 mailto:sage [2012/11/03(土) 20:15:04.25 ID:MPi99ujn]
マップ3Dの2Dアクションだけど、段差にくっ付きながらジャンプすると引っかかってジャンプしない
これ判定の仕方が悪いよね…
移動→本体座標ずらす→埋まってたら戻す、って当たり判定してるんだけど
仮の座標伸ばして本体座標を動かさないようにした方がいいかな

15 名前:名前は開発中のものです。 mailto:sage [2012/11/04(日) 00:29:39.08 ID:tGjg6t73]
>>14
真上、あるいは段差から離れる方向へのジャンプなら問題ない?

16 名前:名前は開発中のものです。 mailto:sage [2012/11/04(日) 01:51:30.27 ID:X8B1kDix]
真上とかは問題ないですね
キャラは2Dでマップ3Dだから当たり判定に線引いてみたら左右に移動してる時は当たり判定ずれてる…

17 名前:名前は開発中のものです。 mailto:sage [2012/11/06(火) 00:26:39.72 ID:33aP3UWk]
SetChangeScreenModeGraphicsSystemResetFlag()なんて関数があったのね…
わざわざグラフィックハンドルを自前で管理して
ウィンドウモード切替時にロードし直すように実装した後に知ったぜ…
つか関数名なげーよw

18 名前:名前は開発中のものです。 [2012/11/07(水) 01:05:46.09 ID:WpkERH/p]
バグ見つけたぜ
対応してもらえるかな?

19 名前:名前は開発中のものです。 mailto:sage [2012/11/07(水) 01:08:57.42 ID:qWOOTSqW]
バグかどうか怪しい、あるいは環境依存かもしれないと思った場合は
一度ここに最小コードを晒してみても良いのよ。


20 名前:名前は開発中のものです。 [2012/11/07(水) 11:35:40.40 ID:WpkERH/p]
よく考えてみたら正しい動きっぽい

21 名前:名前は開発中のものです。 mailto:sage [2012/11/08(木) 14:11:47.68 ID:ZRu+0OPY]
受け取った文字列(FileName)+数字(i)のpngファイルの画像ハンドルを
可能な限りvector配列に突っ込むって処理なんですが、
もっと綺麗に書ける気がするんですけど、どうしたらいいですか?

int tmpHandle = LoadGraph((FileName+"0"+".png").c_str(),0);
for(int i=1;-1==tmpHandle;i++){
HandleFrame.push_back(tmpHandle);

ostringstream oss;
oss << FileName << i << ".png";
tmpHandle=LoadGraph(oss.str().c_str(),0);
}



22 名前:名前は開発中のものです。 mailto:sage [2012/11/08(木) 15:57:53.29 ID:zekuNjSm]
>>17
リピートアフタミー!

セットチェンジスクリーンモデルグラフィックスリセットフラグ!!!

23 名前:名前は開発中のものです。 mailto:sage [2012/11/08(木) 16:35:21.45 ID:7mLtHdGO]
モデルちゃう、モードや

24 名前:名前は開発中のものです。 mailto:sage [2012/11/09(金) 01:32:49.15 ID:n63NaICX]
3Dアクションで大量のパーティクルをステータス与えて演算してDrawPolygonIndexed3Dで描画してるんだけど
ずっと1万エフェクトぐらいでfpsが5以下になるレベルまで落ちてたからいよいよグラボ載せようかと思ってたんだが
ふと描画無しで演算だけさせたら、それでも10ぐらいまで落ちるんだけどなにか仕様上の問題ってあったかな
CPUは4つのコアが均等に20%ぐらいの負荷がかかってる状態だから問題無いと思うんだけど

25 名前:名前は開発中のものです。 mailto:sage [2012/11/09(金) 01:47:07.21 ID:o9281V2N]
2コアユーザー切り捨てですか?

26 名前:名前は開発中のものです。 mailto:sage [2012/11/09(金) 14:31:44.30 ID:4xNJHqjF]
記憶を頼りに書いたけど実際ちゃんと測ったら2つ目のコアが50〜90%ぐらいで他は10〜30%ぐらいの負荷だった
演算の最適化と評判悪いけどマルチスレッドしか無いかな
あとグラボ載せたら描画関係の演算はGPUに行くからCPUの方は余裕できたりってするかな

27 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 00:03:11.03 ID:TKwz0d4m]
>>21
書式

28 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 11:25:46.48 ID:kh6O9RiO]
DXライブラリ初期化の前に設定ファイル(ユーザが前回のプレイで設定したコンフィグ)を読み込んで
指定された画面サイズで起動するのと、まずは320×240(デフォルト)で起動しておいて「起動中...」とか
メッセージを表示しつつ設定ファイルを読み込んでから画面サイズを自動で変更するのだと後者の方が
安全なのかな?自分がプレイヤーだった場合の視点だと起動時にまどろっこしいのは苦手だから悩む

29 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 12:23:35.06 ID:ovwu58bw]
前者だろ。後者の目的が分からん。そんなゲームは見たことない。

30 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 12:37:47.24 ID:kh6O9RiO]
>>29
Windowsみたいな起動ロゴ表示されたりプロンプトで起動準備するPCゲーは珍しくないでしょ?
DXライブラリなら特殊な知識を必要とせずにこれが擬似的に表現できると思ったんだけど

31 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 17:16:34.01 ID:ovwu58bw]
>>30
珍しくないって例えば何てタイトル?
そんなゲームは少なくとも商業ゲームでは記憶にない。
そもそもそれをする理由がないし。

スプラッシュスクリーンはロードに時間のかかる重量級ソフトが
ユーザーに対して、フリーズとロードを区別できるようにするためのもの。
例えばPhotoshopやEclipseがそう。Windowsがこれら以上に重量級なのは言わずもがな。



32 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 20:38:55.50 ID:MaNESqv5]
自分の知ってる洋ゲーだと、

起動ランチャーからPlayとOptionが選べて
Optionからウィンドウ・フルスクリーンまたは解像度の選択をすることで
Play時の画面が変わるタイプと、
とりあえずフルorウィンドウモードで起動させておいてゲーム内オプションから
画面モード、解像度が切り替わるタイプがあるね。

スプラッシュロゴを先に表示させてーって言うのはなくもない気がする。
確かあれは…アリスソフト

33 名前:名前は開発中のものです。 mailto:sage [2012/11/11(日) 00:01:50.31 ID:ftt+7YV1]
アリスソフトはスプラッシュスクリーンじゃなくねと思ったら古いのは一見そうだったな
でもあれはオプションでスキップできるからやっぱりスプラッシュスクリーンじゃないんじゃね

34 名前:名前は開発中のものです。 mailto:sage [2012/11/11(日) 00:07:54.36 ID:FJ/BuQzh]
そんな面倒なことするなら、さっさと起動してサークルロゴでも表示して、その隙に読み込むほうがマシ

35 名前:名前は開発中のものです。 mailto:sage [2012/11/11(日) 00:25:39.48 ID:briCeBRn]
つーか、あんなくだらない質問する人がスプラッシュスクリーンが必要になるほどのゲーム作ってるとは思えんw

36 名前:名前は開発中のものです。 mailto:sage [2012/11/11(日) 00:44:26.75 ID:FJ/BuQzh]
初心者だからこそ大量のデータを非効率的に読み込んで時間がかかるんだろ
データ量が多いゲーム=いいゲームってどこの小学生だよ

37 名前:名前は開発中のものです。 mailto:sage [2012/11/11(日) 05:43:02.75 ID:Hm1wlo6/]
>>32
ランチャーでオプションの設定、MODの切替とかできるゲームは腐るほどあるね
開発ブログのフィード表示したりとか

でも>>28が言ってるような、設定読むためにスプラッシュスクリーン表示するゲームってのは聞いたことないな

38 名前:名前は開発中のものです。 mailto:sage [2012/11/11(日) 06:55:56.42 ID:Fz8S8jkx]
初心者が初心者なりに試行錯誤しながら
ゲーム作っちゃいかんのか?

39 名前:名前は開発中のものです。 mailto:sage [2012/11/11(日) 07:03:25.92 ID:WRJMXXw0]
前に自分がやったときは、
別途にGUIアプリを作っておき、そこからゲーム本体を起動する形にしてた。

GUIアプリはルートディレクトリに、ゲーム本体の方は下位ディレクトリに置くようにして、
ユーザには基本的に前者を起動させるようにする。

解像度とかの設定は、起動時に引数で渡すなり、iniファイルを経由するなり。

40 名前:名前は開発中のものです。 mailto:sage [2012/11/11(日) 08:39:59.76 ID:FJ/BuQzh]
わざわざ別アプリにしなくても、Windowsアプリケーションならゲームのexeに組み込めるけどね
ゲームのメインループに行く前にそのダイアログのプロシージャだけwhileで回しておけばいい

41 名前:名前は開発中のものです。 mailto:sage [2012/11/11(日) 08:42:20.83 ID:L5JKQqt7]
俺もDLLの数がかさんだ時やってるなあ



42 名前:名前は開発中のものです。 mailto:sage [2012/11/11(日) 10:44:08.51 ID:uoIXRWNI]
DXライブラリなら、ini読んで最初の描画するまで1秒とかからないよね
前者も後者も時間は変わらないと思うんだけど

最初の描画の前に、巨大なファイル読み込みをしてしまって時間かかってるなら、
それをやめて、最初の描画のあとで巨大なファイル読み込みすればいいと思う

43 名前:名前は開発中のものです。 mailto:sage [2012/11/12(月) 21:21:49.93 ID:YFdCFH9b]
3Dゲーム作ってるんだけど、キャラモデルの影が強すぎる…
みんな調整とかしてるの?マップの方はなんともないのに

44 名前:名前は開発中のものです。 [2012/11/13(火) 14:04:57.88 ID:NSnEvyoH]
アクティビジョンのトニーホークシリーズで、画面解像度とか、Fogのオンオフとか選べるランチャー経由で起動してたな。
exe直だと前回と同じオプションのままで起動だったと思う

45 名前:名前は開発中のものです。 [2012/11/13(火) 17:18:55.36 ID:54EeWz/8]
>>24
均等に負荷かかってるならマルチスレッド処理してるってことだよね?
処理の粒度が細かすぎるとかじゃないかな。粒度が細かすぎると、同期APIでカーネルスケジュラーが
頻繁に起されて、CPUの負荷が上がらなくなるように見えたはず。

46 名前:43 mailto:sage [2012/11/13(火) 22:35:47.91 ID:kWBnqj8x]
俺だけみたいだな、モデルの問題か
XファイルなのがDXライブラリと相性が悪いとかじゃないならいいや

47 名前:名前は開発中のものです。 [2012/11/15(木) 20:46:12.19 ID:fgdtbuMx]
CSSスプライト見たいな手法って画像のロード時間だけで
描画とかゲームの速度自体に影響するのかな?

48 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 22:18:24.14 ID:n5nkf/Ds]
一応テクスチャ切り替えの手間が省けるからちゃんと軽くなる

そこが結構重いとか重くないとかいう噂は聞いたことあるけどそういえば調べたことはないな・・

49 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 22:31:02.33 ID:V2Q8QmNk]
速度よりは、全く同じように使えるようにする工夫が気になる

50 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 22:48:07.83 ID:JeS5pTB2]
めっちゃ影響するぞ
最悪の状態と最高の状態を比べると数倍から数十倍もの速度差がでる

最悪の場合をテストするには、画像Aと画像Bそれぞれの画像からグラフィックハンドルを作って交互に描画

最高の状態をテストするには、画像Aと画像Bを結合した一枚の画像を作って、LoadDivGraphで読み込むか、
もしくは画像Aと画像Bを結合した一枚の画像を読み込んでグラフィックハンドルを作り、DerivationGraphでそれぞれのハンドルを作って、
交互に描画


最悪のパターンなんて、実際には弾幕シューティングでわざわざ別画像の弾を交互にばら撒きまくとか、
別テクスチャのマップチップを交互に敷き詰めるとか、奇妙な状況でしか起こり得ないけど

51 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 22:54:50.95 ID:fgdtbuMx]
へぇ、メモリに入ったら同じかと思ってた



52 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 22:58:50.04 ID:JeS5pTB2]
書いてて思ったけど、テクスチャ切り替えの発生回数をカウントする関数が欲しいな
最適化プログラム作る際の参考になりそう

53 名前:名前は開発中のものです。 mailto:sage [2012/11/15(木) 23:22:09.30 ID:j9gB1nc1]
実際どのぐらい違うんだろうね
3Dだとモデルを描画する度にテクスチャが切り替わってると思うんだけど

54 名前:名前は開発中のものです。 mailto:sage [2012/11/16(金) 00:18:40.62 ID:oomGOn6x]
>>45
まさか今更相手してくれるとは思わんかったありがとう
えっとID変わってるけど>>26の通り、改めて計測してみると
大体計測の単位時間あたり2〜3単位時間に1回ぐらい100%になるコアがある
でも他のコアは20〜30%ぐらいだし2〜3単位時間に1〜2回は60〜80%ぐらいしか稼働してない
fpsは常時3〜5程度

ソースコードは公式の3Dサンプルプログラムをひたすら改変したものだけどマルチスレッド処理は書き加えてない
描画関数をコメントアウトしても同じぐらいの負荷とfps
でもパーティクルの運動とかの記述はそのままに描画関係の行列計算とかを大量に含む部分を切ったら1万パーティクルでもfps59.6〜59.9で安定
今のところテストでグラフィックハンドルは1つしか使ってないので>>50で言う最悪の状態にはなってないはず

将来的にはもっと大量のエフェクトを描きたいので出来れば10万〜100万ぐらい扱いたい
最適化は一切してないので描画関係の行列計算がかなり多いように感じる
でもCPUの計算能力や描画関数の呼び出しとかとの相対的な負荷が想像がつかないのでどの程度影響与えてるかわからない
1万〜10万ともなると普通の四則計算や行列計算の負荷もバカにならないのかな

55 名前:名前は開発中のものです。 mailto:sage [2012/11/16(金) 00:22:29.41 ID:oomGOn6x]
連投スマン
仮にマルチスレッド処理をさせるようになって>>45の状況になったしたら
CPUの負荷が上がらなくなるように「見える」だけで実際は限界まで負荷かかってるの?

56 名前:名前は開発中のものです。 [2012/11/16(金) 01:43:36.27 ID:O/FEtKHj]
>>54
あれーじゃあなんで均等に負荷がかかってるんだっていう疑問がわいてくる・・・
前段の部分は、行列計算が重いのかなぁ・・・。でもその場合はそのスレッドが全力で走るはずだよね。

後段の方は、実際にも限界まではかかってないよ。
粒度が細かすぎの場合カーネルオブジェクトで同期すると(最悪時には同じ
オブジェクトをそれぞれのスレッドでロックをとりにいくから)1/スレッド数 ぐらいしか
はたらかなくなっちゃう、で、ただただカーネルスケジュラーが走る分だけ重くなる。
(スピンロックの時は全力でスピンし続けるからすべてのスレッドが上限に張り付くのが見える。)

57 名前:名前は開発中のものです。 mailto:sage [2012/11/16(金) 02:52:18.52 ID:oomGOn6x]
>>56
紛らわしいことしてごめん
>>24の均等に負荷ってのは間違いで>>26>>54の通りどれか1つのコアは高負荷状態になってる
他の3つは確かに割と均等だけど……
でも確かに自分でも処理落ちしてるんだからどれかのコアは常時100%負荷じゃないとおかしいとは思ってる
一応CPUはi5 2500Kでそこまで古いわけじゃないからちゃんとしてやれば別に毎フレーム数万回の運動計算ぐらいなら大丈夫だと思うんだけど
さすがに100万エフェクトに上限設定したらアイドル時?の毎フレームのループ処理だけでfps40ぐらいまで落ちるけど

もう少しして描画関係の関数が落ち着いたらマルチスレッド処理するようにしてみようかな
そのときにもうちょっと勉強して参考にさせてもらうよ
でもまあなんとなくのイメージは分かったありがとう

あとつい勢いでグラボも積んでみたんだけど、ソフトウェアレンダリングじゃなくてハードウェアレンダリングにするのは
SetUseSoftwareRenderModeFlag でFALSE返せばいいんだろうか
これを入れる前後でGPUの負荷も変わったように見えない……
0〜40%ぐらいまでしか上がったこと無いんだけど

58 名前:名前は開発中のものです。 mailto:sage [2012/11/16(金) 03:14:19.95 ID:N1OcN+jA]
行列計算は用意された関数を使ってるわけじゃなく自前?
だとしたら普通にその計算が重いだけだと思う

昔自前で座標変換してたコードを発掘してみたら三角関数たっぷりの糞重そうなコードだった

1万パーティクルというと頂点数はその数倍あるだろうし、その上ソートとかもあるとしたらかなりの重さになると思う
弾幕STGの弾の計算処理との比較での想像だけど

59 名前:名前は開発中のものです。 mailto:sage [2012/11/16(金) 14:41:04.47 ID:nI21i1kq]
>>58
行列計算は主にDXlibのMGetRotAxisがほとんどかな
自前で用意したのは使ってない
1パーティクルあたり6頂点(4インデックス)の長方形の板ポリを
時間経過に合わせて自由に変形できるようにしたりしてる

あともう一つ心配な要素としてパーティクル構造体のメンバがかなり多いことがある
個人的な話だけど今まですごく不自由な環境で真似事みたいなことを長いことしてたから
パーティクル一つ一つの運動や展開にとにかく自由度をもたせた結果、
数えてみると一つのパーティクルごとに(unsigned)charが42、intが26、floatが23 程あった
計算がここからの引用の演算が9割なんだけどこれって影響あるかな

60 名前:名前は開発中のものです。 mailto:sage [2012/11/16(金) 14:55:28.38 ID:N1OcN+jA]
MGetRotAxisでも頂点を個別に処理してると重そうだな
何をやろうとしてるのはかよくわからないが、頂点数が多い場合はカメラの側を動かすとかの工夫が要ると思う
頂点一つの変換だけで三角関数が数十回使われるからね

構造体の重さだけど、それが問題になるのはメモリコピーや再配置が行われる場合
つまり、構造体の配列をソートしたり、構造体を関数などに直接渡すときだけ
ソートが含まれる場合は、その配列は構造体のポインタにしておくと早くなる
関数の場合は参照渡しかポインタで

61 名前:名前は開発中のものです。 mailto:sage [2012/11/17(土) 03:20:24.81 ID:lLy9v9bv]
3D空間に文字を表示する方法ってある?
リファレンスみたけどそれっぽい関数が見当たらなくて
内容変化するからテクチャーに貼って表示する方法は使えない



62 名前:名前は開発中のものです。 mailto:sage [2012/11/17(土) 03:45:07.67 ID:qyuu2tNE]
内容変化するなら毎フレーム描画し直せばいいじゃん?

まぁヘッダ読むと多分見つかると思うよ
未確認だけど

63 名前:名前は開発中のものです。 mailto:sage [2012/11/26(月) 06:43:45.17 ID:UmrBg6OG]
更新来てるね
毎度お疲れ様です

64 名前:名前は開発中のものです。 mailto:sage [2012/11/26(月) 11:34:46.37 ID:3FNv2Sko]
自分で制作中のプログラムを 3.09 に載せ替えただけで、60 FPS に届くようになった。

65 名前:名前は開発中のものです。 mailto:sage [2012/11/26(月) 17:41:20.96 ID:ABDeEVSH]
更新しようと思ったらVisualStudioも2012とかなってるのかよ知らなかったわ

66 名前:名前は開発中のものです。 mailto:sage [2012/11/26(月) 18:00:36.41 ID:fShAradv]
VC++11はconstexpr以下もろもろサポート無しで萎えたんだけど使ってる人いるの
blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx

だいたいXP対応するっつってもツールで対応するみたいだしもうなんか覚えるの面倒くさいしいいや(バカ
blogs.msdn.com/b/vcblog/archive/2012/06/15/10320645.aspx

67 名前:名前は開発中のものです。 mailto:sage [2012/11/26(月) 18:38:13.09 ID:1/gWMvah]
ライブラリの更新ってまだ軽量化の可能性とか残ってるもんなの?

68 名前:名前は開発中のものです。 mailto:sage [2012/11/27(火) 02:04:26.00 ID:JayK2jV6]
少なくともDXライブラリはソース見る限りエラーチェックが一番の重くなる原因だと思うから、まだまだ軽量化はできると思うよ
数年前にはライブラリ作者自身がDirectX生で使うより10倍以上遅いって言ってたし

69 名前:名前は開発中のものです。 mailto:sage [2012/11/27(火) 11:28:23.82 ID:f5qtpDPQ]
>@1万枚が1つのテクスチャを使用していて、且つ全く動かず、1画像辺り16x16サイズであり、それを1万枚毎フレーム描画する、
という条件でしたらDirectXを直接扱う場合はビデオカードの性能が良ければDXライブラリの10倍以上高速に描画できると思います
>A動かない、という条件のみ変えて1万枚の画像がランダムに画面上を等速直線運動している(画面端にぶつかったら跳ね返る)という場合ですと
差はいきなり縮まってDXライブラリのDrawGraphを使う場合より1.5倍ほど高速に描画できると思います、ただ、DXライブラリの
DrawPrimitive2Dを上手く使用した場合は恐らく速度差は殆ど無いと思います

これだべ?
10倍遅いは誤解を招くべ

70 名前:名前は開発中のものです。 mailto:sage [2012/11/27(火) 11:38:25.25 ID:JayK2jV6]
それだ
うろ覚えだったわ
でも関数によってはまだまだ数倍高速化できるのは事実
描画関係じゃなくね

71 名前:名前は開発中のものです。 mailto:sage [2012/11/27(火) 11:49:37.42 ID:f5qtpDPQ]
描画関係以外で速度求めるって一体どんな関数使ってんだよ…



72 名前:名前は開発中のものです。 mailto:sage [2012/11/27(火) 11:58:08.94 ID:JayK2jV6]
1フレームに数千回呼び出す関数なんかはエラーチェックでかなり処理食われたりするよ
多数のオブジェクトに別々の動作をさせるようなプログラムだとたまに起こる

73 名前:名前は開発中のものです。 mailto:sage [2012/11/27(火) 12:06:38.69 ID:f5qtpDPQ]
いや…自分で定義した関数ならともかく、DXライブラリの関数で数千回とか何やっとるん…?

74 名前:名前は開発中のものです。 mailto:sage [2012/11/27(火) 12:25:04.10 ID:JayK2jV6]
想像できないなら想像できないでいいと思うよ

75 名前:名前は開発中のものです。 mailto:sage [2012/11/27(火) 12:56:42.07 ID:ByhNS8r3]
性格悪っ!

76 名前:名前は開発中のものです。 mailto:sage [2012/11/27(火) 13:02:12.23 ID:JayK2jV6]
だってめんどくさそうな人だから相手したくないんだもん

77 名前:名前は開発中のものです。 mailto:sage [2012/11/27(火) 13:16:49.74 ID:ByhNS8r3]
だったら無視すればいいだけ!

78 名前:名前は開発中のものです。 [2012/11/27(火) 13:17:22.16 ID:6Mv2IZhC]
アホす

79 名前:名前は開発中のものです。 mailto:sage [2012/11/27(火) 13:32:11.78 ID:LIfIJ6xQ]
自演まるわかり

80 名前:名前は開発中のものです。 mailto:sage [2012/11/27(火) 18:06:28.14 ID:SSSMeP/t]
プログラマブルシェーダー2.0を使用できる環境では通常の描画処理にも
ピクセルシェーダーを使用するように処理を変更。

81 名前:名前は開発中のものです。 mailto:sage [2012/11/27(火) 18:27:43.01 ID:n5lQqkP/]
DXlibがソースそのままでWindowsStore用のアプリ生成出来ればええな
昔作った奴いつくかそんなに日本語部分多くないから英語でリリースして
外人さんの感想聞きたい



82 名前:名前は開発中のものです。 mailto:sage [2012/11/27(火) 18:59:23.43 ID:Y6tGCz/D]
まず海外のフリゲ公開サイトにでも登録してみたら

83 名前:名前は開発中のものです。 mailto:sage [2012/11/27(火) 22:32:16.92 ID:TGtbuLIb]
>>81
すぐには無理でしょ。
.DxlibがNETベースのC++/CLIかC#あたりに移植されれば別だが。
当然、自分のゲームソースも同じようにC++/CLIかC#に移植になるけど。

84 名前:名前は開発中のものです。 mailto:sage [2012/11/28(水) 00:14:38.58 ID:9BuN3YHL]
更新されてたんで久々に更新したら
SetCreateDrawValidGraphChannelNumでチャンネル数2で良かったものが3必要になってた

85 名前:名前は開発中のものです。 mailto:sage [2012/11/28(水) 14:16:31.64 ID:YnS7DAU9]
DXライブラリのソース追っていくのすげーきついな

86 名前:名前は開発中のものです。 mailto:sage [2012/11/29(木) 20:45:23.29 ID:cXkL+nrF]
ちょっとお前らの経験則から助言いただきたいんだけど、筋力から物理攻撃力を求める時みたいに
元の数値さえあれば格納しておかなくても計算で導き出せるような項目をわざわざ格納しようかなと
思ってしまう 計算の複雑さ×使用頻度 の目安ってどんなもん?

そういう数値は格納したら格納したで整合性を保つための更新タイミングも考えなくちゃいけないけど
そういう手間も加味して評価するよね、こっちは管理者が更新するようにして解決しようと思うけど

87 名前:名前は開発中のものです。 mailto:sage [2012/11/29(木) 21:03:47.74 ID:GNB73dnr]
何を言ってるかよく良く解らんが、
全てを最新状態に更新する処理を作っておいて、
装備を変えるときとかにそれを呼び出せばいいんちゃう?
(デバフ喰らったりしたときとかはまた別になるのかもしれんけど)

新しい項目を追加したりした時その方が変更楽じゃない?

でもDXライブラリと関係ないよね。

88 名前:名前は開発中のものです。 mailto:sage [2012/11/29(木) 22:52:50.84 ID:fLuPtmdH]
>>86
外部ファイルやらDBやらを使ったり、算出にランダム要素などが加わるならキャッシュする。
そうでなければ気にしないかなあ。

89 名前:名前は開発中のものです。 mailto:sage [2012/11/29(木) 23:29:10.33 ID:JG9/8B69]
俺はそういう場合、キャラクラスですべて管理するようにしておいて、
実数値もメンバとして用意しつつ、変化と再計算もメンバ関数にする

アイテムを装備する場合とか能力変化技を受ける場合、そのキャラの装備関数能力変化関数を呼ばせる
その中で毎回再計算関数を呼べば数値は常に最新になるし

そもそも実数値をほとんど使わないとしても、格納しておかないと、規模が大きいゲームになってくるとデバッグが面倒になったりする

90 名前:名前は開発中のものです。 mailto:sage [2012/11/30(金) 21:55:18.56 ID:d5cNZMEM]
環境によって作成できる最小テクスチャサイズってあるのかな
MakeScreen(8, 8, TRUE)
と小さい画像作ったんだけど、テクスチャ幅が8以下の画像だと
初期化もされないうえにClearDrawScreenをやってもクリアされないっぽくゴミが残る
これより一回り大きい幅16になるとゴミも消えてくれる

91 名前:名前は開発中のものです。 mailto:sage [2012/11/30(金) 22:41:41.07 ID:oui3MhFc]
>>87-89
サンクス。とりあえずインターフェイスを計算結果側の項目に絞っておけば
後からどっちにも対応できて良さそうだね



92 名前:名前は開発中のものです。 mailto:sage [2012/12/01(土) 13:33:46.23 ID:IBe3OiN8]
初心者です。画像表示のためのラッパクラスを作っていて
画像ハンドルと、DxLibのDrawRotaGraph3の引数と同じ項目(描画位置以外)をメンバ変数として持ち
各メンバに値をSetした後にDraw(int x, int y)で描画できるようにする予定なのですが、
拡大率が1.0倍で回転角度も0度のような、DrawRotaGraph3を使わずともDrawGraphで描画可能な場合、
やはりDrawGraphを使って描画した方が処理が速いのでしょうか?

93 名前:名前は開発中のものです。 mailto:sage [2012/12/01(土) 14:35:16.76 ID:b+EQ3+6O]
速度のことは必要になるまで考えるな
以上

94 名前:90 mailto:sage [2012/12/01(土) 15:57:16.54 ID:xUkutrV6]
自己解決した
ListUpTexSize関数内で、2のn乗ではなくて良い場合の条件に合致するとき
最小サイズ未満の場合が抜けていたのがうまくいかない理由だった
MIN_TEXTURE_SIZEで最小サイズを変更できるけど上記の部分も変更しないと
最小サイズが適用されないことがある

95 名前:名前は開発中のものです。 mailto:sage [2012/12/01(土) 23:49:15.26 ID:IBe3OiN8]
>>93
確かに。とにかく突き進んでみます

96 名前:名前は開発中のものです。 mailto:sage [2012/12/05(水) 07:28:58.56 ID:dxKlQPoH]
MV1SetMaterialTypeってトゥーン表示に出来るみたいだけど
リファレンスに乗ってない?使い方が分からない…

97 名前:名前は開発中のものです。 mailto:sage [2012/12/05(水) 10:07:53.76 ID:cfYtyBWt]
プロローグによくあるような、画面上部にイラストがあって、下部に「むかしむかし、、、」みたいなかんじで文字をだしたりしようとおもってるんですけど、ああいうのってムービー作って再生させてるんですか?
実装しようとするとフェードインアウトとか結構手間がかかりそうで。

98 名前:名前は開発中のものです。 mailto:sage [2012/12/05(水) 10:12:25.17 ID:5bbxrjLT]
全然手間じゃない
フェードはフラグを用意しておいて、TRUEなら透明度が255になるまで毎フレーム増やす、FALSEなら透明度が0になるまで毎フレーム減らす、
みたいな感じに組めばすぐできる

そんなのでムービーにするのはバグや相性問題の元だからやめとけ

99 名前:名前は開発中のものです。 mailto:sage [2012/12/05(水) 11:06:07.54 ID:ze777H3I]
>>98
なるほどー。相性とかあるのか、、、。
わかりました。今日の夜やってみます。

100 名前:名前は開発中のものです。 mailto:sage [2012/12/05(水) 12:46:04.92 ID:r3FoL9zZ]
「画面上部にイラストがあって」の部分がよくわからないけど、ゲームのプロローグなんかは普通動画だよ。
背景に動画を流して、下に字幕被せてるだけ。

101 名前:名前は開発中のものです。 mailto:sage [2012/12/05(水) 12:50:44.41 ID:5bbxrjLT]
ヨッシーアイランドみたいなのだろ

アニメを流すなら動画だけど、単に静止画やドットアニメレベルならプログラムの方がいいと思う
プログラムで簡単に出来ることをわざわざ動画にして要領増やすのも馬鹿らしい



102 名前:名前は開発中のものです。 mailto:sage [2012/12/05(水) 14:12:16.87 ID:JhztC1FO]
上から黒い四角を重ねるだけでも、フェードイン/アウトにはなるしな。

103 名前:名前は開発中のものです。 mailto:sage [2012/12/05(水) 14:43:15.90 ID:kPhWb69t]
まずは完成させること優先で考えたら?
動画作りが得意なら動画で済ませておいて、後でやり直したくなったらやり直せばいいだけ。
プロじゃないんだから極力難しいことは避けても問題ない。
例えば作り直すタイミングで、もっとかっこいい3D動画にしよう!という新たな方向性に目覚める可能性も残せたりね。
でも完成させることよりプログラムの勉強が優先なら、ちょっと悩んでもやりたいと思った今プログラム組んでみたほうがいいと思う。

104 名前:名前は開発中のものです。 mailto:sage [2012/12/05(水) 15:49:01.40 ID:lks+z0Wj]
言われている通りでまさにヨッシーアイランドと同じような感じで作りたいと考えてました。
動画作成も興味はありますが、とりあえずプログラムでやってみます。

105 名前:名前は開発中のものです。 mailto:sage [2012/12/05(水) 16:11:07.03 ID:8b/D9r5+]
便乗してすごく初歩的な質問なんだけど>>98が普通に「透明度」って言葉使ってるけど
画像を表示するためのDrawGraph系の関数には透明度の指定がないから、
毎回SetDrawBlendModeでアルファ値を設定してから描画するって意味?

フェードの話だとマスク画像かもしれないけど、単純に画像に透明度を指定して
表示させたい場合はやっぱり↑の方法しかないんですか?

106 名前:名前は開発中のものです。 mailto:sage [2012/12/05(水) 17:05:02.24 ID:d0fjoMgW]
少なくとも俺はそうやってる。

107 名前:名前は開発中のものです。 mailto:sage [2012/12/05(水) 17:26:51.05 ID:5bbxrjLT]
>>105
そう
自前でSetDrawBlendModeしてからDrawGraphする関数を作ってもいい

108 名前:名前は開発中のものです。 mailto:sage [2012/12/05(水) 18:27:00.14 ID:J7+ZDMKL]
ライブラリを更にまとめた自前関数いいよね

109 名前:名前は開発中のものです。 mailto:sage [2012/12/05(水) 22:27:44.51 ID:8b/D9r5+]
>>106>>107
そうだよね、ふと不安になってしまった

>>108
Mintの人ってまだ生きてるのかな

110 名前:名前は開発中のものです。 mailto:sage [2012/12/06(木) 04:06:11.37 ID:e4ZfE9+5]
ついでだから俺も便乗させてもらうけど
パーティクルの描画をそれぞれに描画に必要なステータスをクラスのメンバで管理してて
いろんな種類のパーティクルを全部DrawPolygonIndexed3Dにステータスを当てはめて一括で描画してるんだけど
黒煙の表現とかに減算合成使いたいんだがSetDrawBlendMode使うと
管理の方法上パーティクル一つ一つの描画のたびにSetDrawBlendModeを呼び出すことになって
たかだか1000程度のパーティクル数で30fpsぐらいまで落ちる

管理人が昔、一括描画の最適化処理がSetDrawBlendModeの変更とかで途切れるから重たくなるって話を聞いたんだが
ここまで酷いもんなの?それとも他に原因がありそうだろうか
っていうか直接DrawPolygonIndexed3Dで減算みたいなこと出来ないかな
何かいい方法ない?

111 名前:名前は開発中のものです。 mailto:sage [2012/12/06(木) 07:31:49.70 ID:lmRU6WCg]
ブレンドタイプごとにまとめて描画すればいいんじゃね



112 名前:名前は開発中のものです。 mailto:sage [2012/12/06(木) 08:27:40.98 ID:M80gGcCN]
普通に考えると何度もブレンドモードを切り替えるような設計が間違ってる
SetDrawBlendModeは現在のブレンドモードと同じなら変更しないようになってるので、できるだけ同じタイプのパーティクルの描画が続くようにするべき
クラスで管理してるのならソートは簡単なはず

組み合わせてる描画が通常描画なら、煙のエフェクトには減算なんて使うもんじゃないし、黒いパーティクルを用意して通常描画にするのもいい
もしくは、複数のパーティクルを一つにまとめて数を減らす
┌─────┐
│        │
│        │
│   ●    │
│        │
│        │
└─────┘
↑みたいな画像を大量に描画するんじゃなく、
┌─────┐
│●    ● │
│        │
│  ●    │
│ ●     │
│     ● │
└─────┘
↑みたいな画像にすれば見た目はあまり変わらず、パーティクルの数と描画負荷は1/5にできる

113 名前:名前は開発中のものです。 mailto:sage [2012/12/06(木) 20:04:35.05 ID:hHiG3Evm]
横槍っぽくてすまんがクラスのメンバにFlagを持たせる場合intとboolどっち使ってる?
個人的にはbool使いたいんだがDXライブラリのFlagがintだからどっちにしろムズ痒い






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<42KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef