DirectX総合スレ (Part8)
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2008/03/12(水) 16:15:18ID:Jo1vXsg5他の言語使ってる奴はいますぐ消えろ
■過去スレ
DirectX総合スレ
Part 7: http://pc11.2ch.net/test/read.cgi/gamedev/1179516297/
Part 6: http://pc11.2ch.net/test/read.cgi/gamedev/1163691532/
Part 5: http://pc8.2ch.net/test/read.cgi/gamedev/1157727402/
Part 4: http://pc8.2ch.net/test/read.cgi/gamedev/1132937938/
Part 3: http://pc5.2ch.net/test/read.cgi/gamedev/1105333209/
Part 2: http://pc5.2ch.net/test/read.cgi/gamedev/1095863432/
Part 1: http://pc5.2ch.net/test/read.cgi/gamedev/1083728025/
0128123
2008/06/19(木) 23:41:05ID:rOBzS8e6D3DXFontは60FPSだと重くて使い物にならないだろ
文章表示だから、最初にちょっと重い処理をしてあとはテクスチャから描画するだけ
一応クリティカルセクションで排他制御はしてるんだけどね
XPや2000で問題なくてVistaで動かないとか、どうしてもゲイツを疑ってしまう・・・
0129名前は開発中のものです。
2008/06/19(木) 23:45:33ID:J9NyTZGtGetGlyphOutline()を文字毎に呼んでわざわざサーフェイス転送する方が使い物にならないだろ・・・。
D3DXFont()は中である程度の文字はテクスチャにキャッシュ出来るようになってるぞ。
0130名前は開発中のものです。
2008/06/20(金) 00:04:24ID:G3IoCWKiそうなのか?昔20文字表示しただけでFPSがた落ちだったんだが
まあ他にも面倒なことをやってまで、サーフェス転送する必要があるんでこの方法にしてる
0131名前は開発中のものです。
2008/06/20(金) 00:08:44ID:88LRPetr俺も似たようなシステムでフォントを描画してる。
たしか、Vista でもそんなに遜色なく動いた気がする。
ちなみにシングルスレッドでやってる。
一回、シングルスレッドにして動かしてみたら?
>>129
キャッシュを作れば軽いよ。
うちは、キャッシュするフォントとは別に最初にから用意するフォントと
2つシステムを持ってて自動で判断して使い分けるようになってる。
キャッシュのヒット率を上げるような最適化はまだやってない。
0132名前は開発中のものです。
2008/06/20(金) 00:08:49ID:3x+Mh2k+コンシューマーでは当たり前の方法だけどWindowsだと意外とマイナー。
どんなものでも事前に作っておけるならそれが最速だし、
どうしても動的に作る必要があるならピクセルシェーダー使うかストリームアウト使う方がいい。
0133名前は開発中のものです。
2008/06/20(金) 01:02:57ID:G3IoCWKiとりあえずシングルスレッド仕様にしてみた
コードがすっきりしていい感じ。XPでは問題なく動作
Vistaは大学にしか無いから、明日試してみます
0134名前は開発中のものです。
2008/06/20(金) 04:54:23ID:DQo2PM0/Windowsのシステムフォントを画像に展開するのはライセンス的にまずくなかったか?
だから動的に描画してるんだと思ったが。
俺はFreeType使って描画してる。ノベルゲームでも1000字程度らしいから、文字を走査
したテーブルを作って、最初にまとめて生成してるよ。
後はテクスチャロックして適宜転送してる。
ビデオメモリにの容量に問題ないなら、全部のっけたほうがいいんだろうけどね。
0135名前は開発中のものです。
2008/06/20(金) 07:31:33ID:6THOk7MT0136名前は開発中のものです。
2008/06/20(金) 10:51:47ID:88LRPetr0137名前は開発中のものです。
2008/06/20(金) 12:49:44ID:LR2HafI7ボケるのが嫌で俺は使ってない。(特に横線)
AA無しの横幅4倍で描画して、横だけ1/4に縮小が一番バランスがいいと思う。
0138133
2008/06/20(金) 17:20:12ID:G3IoCWKi>>136
チャットなんてそんなに難しい漢字は使わないから、
フォントイメージキャッシュをうまく作れば大丈夫だろ
俺はテクスチャサーフェスに文章を直接書き込んじゃうけどな
テキストボックスはD3DXFontで表示
0139名前は開発中のものです。
2008/06/20(金) 18:36:40ID:yFi5+cKLシフトJISの6000文字分をキャッシュするのに1時間以上待たされることになるから
現実的な方法ではないな。
0140名前は開発中のものです。
2008/06/20(金) 19:57:23ID:88LRPetrとりあえず良かったね。
いや、この辺りの実装は人によって違うだろうから、
まぁ、文字が表示できればそれで良いとは思うけどね。
ちなみに、すごーく前は俺はGDI描画用のビットマップを
CreateDIBSection で作ってそれに描いて、ロックしてから転送してた。
最適化矩形で転送してたけど、重かった。
0141名前は開発中のものです。
2008/06/20(金) 19:59:38ID:88LRPetr6000文字でもそんなにかかるわけ無い。
6000文字だとメモリが無駄な方が大きい。
サイズ違いのフォントを描画することも考えると、
動的なキャッシュが一番メリットあると思うけどなぁ。
0142名前は開発中のものです。
2008/06/20(金) 20:11:38ID:DQo2PM0/ちょおまどんだけ重い処理なんだよテキスト描画wwww
0143名前は開発中のものです。
2008/06/20(金) 22:52:38ID:2WCNqkQLツールを作る、事前に全部展開した状態で画像ファイルを作っておく。
展開時間0、描画速度最速。
しかも事前生成なのでどんなエフェクトもかけ放題ってなもんだ。
0144名前は開発中のものです。
2008/06/20(金) 23:20:17ID:56wrysHRリアルタイムに配色やスタイルの変更に対応出来ないなど欠点だらけだけどね。
0145名前は開発中のものです。
2008/06/20(金) 23:31:15ID:2WCNqkQL色変更・太字・斜体・影は描画時にも解決できるし。
リアルタイムの配色やスタイルの変更をどれほどのゲームがするのかが逆に気になるけどなー。
フォントなんて起動時の常駐読みになるんだからそこまで気にするものじゃないだろ。
モデル何体か読むのとかわらんだろ。
0146名前は開発中のものです。
2008/06/21(土) 00:20:34ID:/7rkvMr8メリット極薄で無駄な手間ばかりをかけ放題ってなもんだ。
0147名前は開発中のものです。
2008/06/21(土) 00:26:03ID:7vOAv24tD3DXSprite+D3DXFontが最強なのは同意
0148名前は開発中のものです。
2008/06/21(土) 00:26:33ID:Y/LgtI+D太字はめんどくさそうだな。
テクスチャに書き込んで描画&キャッシングのシステムを
作る方が手間的に楽だと思うんだけどね。
使用予定の文字数を計算してテクスチャサイズを計算してとか
やってエフェクトとかつけたりしてると意外とめんどくさそうだけど。
0149名前は開発中のものです。
2008/06/21(土) 05:46:39ID:4xY7NaMs色変更はともかく他のエフェクトは間違いなく汚くなるよ。
あと太字は画像処理が必要だと思うんだが。
フォントをあらかじめレンダリングするのは、使うフォントと文字数があらかじめ
決められてて、なおかつ解像度が変更されないという、間違いなくコンシューマ
機のための技術。
PCなら動的生成&キャッシュのほうがいいよ。実装なんてたいした手間じゃ
ないんだし。底辺プログラマを自覚する俺でも一日で組めたよ。
0150名前は開発中のものです。
2008/06/21(土) 07:15:00ID:7UsNOBf3どんな見積もりだよw
0151名前は開発中のものです。
2008/06/21(土) 09:24:52ID:GX14nWKqまぁそこら辺は難しい話だけど。
デザイナーがMSゴシックはイヤだつったら話が終わっちゃうべ。
このフォントが使いたい!って状況の方が普通は多いから
そういう時は結局事前に展開するしかないってわけだから、
ま、両方作っとけって事・・・だな。
>>139
ツールでやってるけどSJIS700文字↑展開しても5分もかからんぞ。
まぁそのツールもオープンソースで公開されてる某ライブラリ流用してるだけだが・・・。
0152名前は開発中のものです。
2008/06/22(日) 18:19:45ID:Who4Uymlエロゲ? なら速度はいらんだろ
0153名前は開発中のものです。
2008/06/22(日) 18:58:24ID:HkbwoMtcあんなもんNスクでもつかって作る方が手っ取り早いんだし。
0154名前は開発中のものです。
2008/06/25(水) 01:04:05ID:cdVa78dZ0155名前は開発中のものです。
2008/06/26(木) 23:35:30ID:gzo15sHF"文字/フォント名/サイズ"のタグをつけてキャッシュ。
次回からはタグから検索。
文字ごとに色変えたり位置をずらしたりできるようになった。
0156名前は開発中のものです。
2008/06/28(土) 18:58:13ID:DiDLQexL0157名前は開発中のものです。
2008/06/30(月) 03:18:17ID:ZOwoeIrp逆引きDirectxの説明を見ると、各Frameのローカル行列に対し
アニメーションメッシュならこれとフレーム⇔メッシュで対応させ、スキンメッシュならフレーム⇔ボーンで対応させているので、
通常、xファイルの内容はアニメーションメッシュとスキンメッシュは排他的なのでしょうか?
0158名前は開発中のものです。
2008/06/30(月) 17:43:47ID:DWsjqPVu0159名前は開発中のものです。
2008/06/30(月) 18:51:13ID:C6yQPXMM0160名前は開発中のものです。
2008/06/30(月) 19:43:44ID:HQPfJ2jgその質問に答えられる人による評価はアテにならない。
0161名前は開発中のものです。
2008/06/30(月) 20:29:57ID:4+6kc0+6というか最近ゲームプログラミング本があんまり出ていない気がする。
アメリカじゃ、現役のゲームプログラマー10数人が書いたとかいうすんごいのが出てるとか聞いたが。
日本は最近ゲ製作が盛り上がってない気がする。
0162名前は開発中のものです。
2008/06/30(月) 20:54:38ID:6zGSHOYv0163名前は開発中のものです。
2008/06/30(月) 21:13:57ID:UHWWoQnvttp://www.borndigital.co.jp/book/program/index.html
0164名前は開発中のものです。
2008/06/30(月) 22:09:44ID:xObvUcvs>ファイルの内容はアニメーションメッシュとスキンメッシュは排他的なのでしょうか?
階層構造内のどのフレーム内にも複数のメッシュコンテナを入れることができるし
それらはスキン情報有り無し関係なく自由に組み合わせて入れることができる
オーケー?
0165名前は開発中のものです。
2008/06/30(月) 22:27:07ID:xObvUcvs>最近ゲームプログラミング本があんまり出ていない気がする
日本語しか読めない初心者向けの和書はもう飽和状態ってだけだろ
一人で何冊も買い揃えるような類のものでもないからな
>日本は最近ゲ製作が盛り上がってない気がする
そういやIGDA日本のアジテーターもそんなこと吠えてたな
嘘まみれでかなりどうでもいい類の話だったが
0166名前は開発中のものです。
2008/06/30(月) 22:52:27ID:AFuFN1mL0167名前は開発中のものです。
2008/07/01(火) 12:17:20ID:BzUlX8zx0168名前は開発中のものです。
2008/07/01(火) 12:37:47ID:BzUlX8zxまず、5年に1本以下のサークルは誤差の範囲で無視しても
さほど問題にならないと考え、5年に1本以上新作ゲームを
出しているサークルのみを抽出し、それらの平均を足し合わせれば、
それっぽい答えは出るかもしれんな。
0169名前は開発中のものです。
2008/07/01(火) 21:16:09ID:PeYsX8PTそれに北米のハイアマチュアに相当するのは日本ではエロゲ業界だろう
そもそも北米のアマチュア市場はとても盛り上がってるようには見えない
0170名前は開発中のものです。
2008/07/01(火) 21:35:12ID:ouXzqyGsそれを除いても、1コミケで20〜30本は完成と認めてもいいレベルで出ていると思う
0171名前は開発中のものです。
2008/07/04(金) 16:40:42ID:Hmauzxe8フォントを表示するまでは出来て、フォントの種類を変えたいのですが、変わるフォントと変わらないフォントがあって原因が分からず困っています。
フォントの変更はD3DXFONT_DESCA.FaceNameに入れています。
ソースはここをベースに作りました。
http://www.shader.jp/xoops/html/masafumi/directx9/3dtips/d3d19.htm
OpenTypeとTrueTypeの両方試しましたが、どっちも変わりませんでした。
フォントは知り合いが作ったオリジナルのものです。
原因と良い解決策があったら教えてください。
0172171
2008/07/04(金) 19:05:10ID:Hmauzxe8原因は気合が足らなかったためでした。
0173名前は開発中のものです。
2008/07/07(月) 08:44:27ID:S6eYuGUY0174名前は開発中のものです。
2008/07/07(月) 08:55:57ID:S6eYuGUY0175名前は開発中のものです。
2008/07/07(月) 17:19:03ID:tuCQvVgrやっぱ、それ用のクラスをたくさん作るもんなの?
0176名前は開発中のものです。
2008/07/07(月) 18:34:44ID:xHBf+NpG0177名前は開発中のものです。
2008/07/07(月) 23:50:05ID:6IQFMCJIDX10 なら出来るんじゃね?
>>175
それは設計による。
出来ることをある程度制限すれば、
何パターンかのシェーダを一つのクラスにまとめられる。
どのシェーダに何のパラメータが必要で、どういう処理をするかを
リストアップしてみて設計を決めると良い。
0178名前は開発中のものです。
2008/07/11(金) 13:24:48ID:P09V94huなんかできそうな気がするな・・・
拒否されそうだけど
0179名前は開発中のものです。
2008/07/11(金) 20:08:43ID:NtN52HAvworldMatrixとか渡すパターンの時、
普通に
SetTransform( D3DTS_WORLD, &matWorld )
の値と同じものを渡せばいいのですが、
スキンメッシュ等で
SetTransform( D3DTS_WORLDMATRIX(k), &matMatrix );
複数のWORLDMATRIXをブレンド指定している場合、
何を利用すればいいのでしょうか?
0180名前は開発中のものです。
2008/07/11(金) 20:52:45ID:440n+1OX0181名前は開発中のものです。
2008/07/12(土) 03:26:18ID:Jy5P8SW00182名前は開発中のものです。
2008/07/12(土) 03:34:36ID:h2IsikqF0183名前は開発中のものです。
2008/07/12(土) 03:36:35ID:Jy5P8SW0帰れ
自己解決しました
0184名前は開発中のものです。
2008/07/12(土) 09:00:22ID:h2IsikqF0185名前は開発中のものです。
2008/07/12(土) 11:42:59ID:2H5wP26+0186名前は開発中のものです。
2008/07/12(土) 12:31:33ID:h2IsikqF0187名前は開発中のものです。
2008/07/12(土) 15:18:50ID:63DzYNyw0188名前は開発中のものです。
2008/07/12(土) 15:25:36ID:63DzYNyw0189名前は開発中のものです。
2008/07/12(土) 15:32:16ID:2H5wP26+0190名前は開発中のものです。
2008/07/12(土) 15:40:52ID:h2IsikqFもしかしてクォータニオンで回転をブレンドしたいと言う事だったのならスマンカッタ。
0191名前は開発中のものです。
2008/07/12(土) 16:32:39ID:2H5wP26+0192名前は開発中のものです。
2008/07/12(土) 16:33:41ID:2H5wP26+0193名前は開発中のものです。
2008/07/12(土) 21:13:51ID:5esvK4N+0194名前は開発中のものです。
2008/07/14(月) 10:49:04ID:It2QMgYs0195名前は開発中のものです。
2008/07/14(月) 20:53:46ID:/rj7hpD2なんか膨らんじゃうのよね。mikotoのあれはどうやってるんだろ。
0196名前は開発中のものです。
2008/07/15(火) 00:16:08ID:JLPuqzcM0197名前は開発中のものです。
2008/07/17(木) 00:26:28ID:HR02tt2s0198名前は開発中のものです。
2008/07/17(木) 00:50:13ID:T19+GCJc0199名前は開発中のものです。
2008/08/06(水) 19:07:35ID:i/h/kZ8f誰かヘルプきぼんぬ、、、
ttp://hishou.ddo.jp/~bbs/up/img/up085.jpg
付近のコード
theDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
theDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
theDevice->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
theDevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTOP_SELECTARG1);
theDevice->SetSamplerState(0 ,D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
theDevice->SetSamplerState(0 ,D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
theDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
theDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
theDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
D3DXCreateTextureFromFileEx(theDevice, _T("gamewaku6.bmp"), 0, 0, 0, 0,
D3DFMT_A8R8G8B8, D3DPOOL_MANAGED,
D3DX_FILTER_LINEAR, D3DX_FILTER_LINEAR,
D3DCOLOR_XRGB( 255, 255, 255), NULL, NULL,&m_pTexture);
theDevice->SetTexture(0, m_pTexture);
0200名前は開発中のものです。
2008/08/06(水) 19:14:19ID:BA/k/K+K0201名前は開発中のものです。
2008/08/06(水) 20:04:00ID:ukeWIa4jなんだこれ
0202名前は開発中のものです。
2008/08/06(水) 20:28:11ID:5gJwnRM20203名前は開発中のものです。
2008/08/06(水) 20:50:23ID:X/KJc5beなんかもう説明するのも面倒だから、「アルファ 色漏れ」とか0.5ずれてるとか
D3DTEXF_POINTとかでググれ。
>>202
D3DTOP_SELECTARG1だから、COLORARG2は無視される。
0204名前は開発中のものです。
2008/08/07(木) 01:06:59ID:LcaVReEU周りを抜くようなデータはサイズを1ピクセル分減らすか
隣り合う画像も1ピクセル分抜きにするかで対応するしかない
0205名前は開発中のものです。
2008/08/07(木) 01:20:58ID:LcaVReEU拡大縮小なんかを考えると微妙に使い勝手が悪い
まあ、解像度固定のエロゲとかならそれもありだろうけど
0206名前は開発中のものです。
2008/08/07(木) 20:34:52ID:gT/2dL1K専用のエディタかなにか・・・ありませんよね?
まぁくれるといってもいや別に・・・って感じですが・・・
0207名前は開発中のものです。
2008/08/07(木) 21:42:22ID:DJIBM8fSxyyzyのc-modeをてきとーに改造して使ってる。
まぁちょうだいと言われてもいや別に・・・って感じですが・・・
0208名前は開発中のものです。
2008/08/09(土) 00:00:13ID:S6EfEoExD3DXLoadSurfaceFromInMemoryが成功する環境と失敗する環境があるんだが
失敗する環境では転送先をNULLにすると成功する
これはどうすればいいんすか・・・・
0209名前は開発中のものです。
2008/08/09(土) 01:09:35ID:S6EfEoExしかもageてすいません
0210名前は開発中のものです。
2008/08/09(土) 01:57:46ID:p64XJKaN失敗する環境をkwsk
0211208
2008/08/09(土) 02:28:39ID:S6EfEoEx成功:OS:WinXP SP3, RAM:1.5GB, GPU:Intel 965
失敗:OS:WinXP SP2, RAM:1GB, GPU:Mobility Radeon 9000
処理内容を詳しく書くと、あらかじめ作成しておいたテクスチャがあって、指定の場所へ画像をロードする感じです
texture->GetSurfaceLevel(0, &surface);
D3DXLoadSurfaceFromFileInMemory(surface, NULL, &dst, fileBuffer, len, NULL, D3DX_FILTER_NONE, 0, NULL);
surface->Release();
これは成功(1024*1024の画像を1024*1024のテクスチャにロード)
RECT dst = {0, 0, 1024, 1024};
これは失敗(512*128の画像を512*512のテクスチャにロード)
RECT dst = {0, 384, 512, 512};
0212名前は開発中のものです。
2008/08/09(土) 04:55:59ID:66ox0ntR0213名前は開発中のものです。
2008/08/09(土) 08:46:01ID:j8c9uAS20214名前は開発中のものです。
2008/08/09(土) 09:47:32ID:4zG+KeTL0215208
2008/08/09(土) 11:04:30ID:S6EfEoExでもVRAMチェッカーで調べると、エラー時あと100MBくらいの空きが残ってるみたいなんだが
ただビデオチップのメモリ32MBは使い切ってる感じ。メインメモリの一部もVRAMに加算されてるってこと?
CreateTextureでいくらVRAMを浪費しようとエラーは起きないが
D3DXLoadSurfaceFromFileInMemoryだと、何故か突然OUTOFVIDEOMEMORYが返ってくるみたいです
0216名前は開発中のものです。
2008/08/09(土) 12:06:31ID:4zG+KeTLVRAM32MBという時点で色々諦めてPCの強化をした方がいい。
その10倍はないと今時のDirectXを弄るのは至難の業だ。
0217名前は開発中のものです。
2008/08/09(土) 15:32:11ID:YxdWWNAhもうFAQだと思うんだが、デバッグD3Dランタイムの出力は確認したか?
surfaceのlockでこけている場合、何かしらメッセージを出すはず。
0218208
2008/08/09(土) 16:33:15ID:S6EfEoExUpdateSurfaceでテクスチャに転送することで動作しました
あまり時間がないのでこれで行くことにします
スレ汚し失礼しました
0219名前は開発中のものです。
2008/08/10(日) 04:26:55ID:Tdwq8ODGttp://www.microsoft.com/downloads/details.aspx?FamilyID=ea4894b5-e98d-44f6-842d-e32147237638&DisplayLang=en
DirectX End-User Runtime
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en
0220名前は開発中のものです。
2008/08/12(火) 00:21:25ID:PkSs1ro3080808
これ絶対狙ってただろw
0221名前は開発中のものです。
2008/08/12(火) 10:05:39ID:z9I6VkRNうちも512*512のレンダリングターゲット可能なテクスチャを
CreateTextureした場合、サーフェイスに設定できない。
1024*1024だとできる。謎。
0222名前は開発中のものです。
2008/08/13(水) 18:21:53ID:7XqVuSeOそんな環境依存があるなんて全く考慮してなかったぜ…
作成失敗したらビデオメモリ不足と判断してゲーム終了だ
どこのGPUだと失敗するのか教えてくだしあ
もうとっくにプレス終わってるし、盆休み返上でパッチ作成か…ハァ…
0223名前は開発中のものです。
2008/08/13(水) 18:52:50ID:vuKSgZqzこちらのサイトで配布されているライブラリを商用に使用しても問題ないのでしょうか?
ttp://www.xiph.org/downloads/
権利関係がイマイチよくわからないので、商用PCゲームでサウンドを扱っている方
サウンドを再生する際、どのような形式のファイルをどんな感じで再生の実装をしているのかなど
簡単にでいいので参考までに教えていただけるとありがたいです。
0224名前は開発中のものです。
2008/08/13(水) 19:11:02ID:8yHT/T8B0225名前は開発中のものです。
2008/08/13(水) 19:35:07ID:DC8V4YTZ0226名前は開発中のものです。
2008/08/13(水) 19:46:25ID:sZdvj7o2まあ数年前まではMP3を使っていたエロゲーばかりだったわけだが。
0227名前は開発中のものです。
2008/08/14(木) 02:25:06ID:1+gEJy9C某葉っぱみたいにソース全公開を強制されるみたいなトラップもあるし
■ このスレッドは過去ログ倉庫に格納されています