トップページgamedev
987コメント302KB

DirectX総合スレ (Part9)

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2009/02/11(水) 05:00:58ID:viN0kzG2
言語はC++

■過去スレ

DirectX総合スレ
Part 8: http://pc11.2ch.net/test/read.cgi/gamedev/1205306118/
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/
0502名前は開発中のものです。2009/06/12(金) 20:39:07ID:cLwjJz3x
>>501
見た目とフィーリングに決まってるだろ
0503名前は開発中のものです。2009/06/12(金) 22:45:55ID:fSDZxlGT
パフォーマンスに影響が出ないレベルは必須として
出来上がったものを他人にみせて(製品にして)自分が許せる範囲でお好きに
0504名前は開発中のものです。2009/06/12(金) 23:35:26ID:D4yGktG4
地形の見た目はポリゴン数よりテクスチャと頂点色とライティング。
FF11の背景とか見てみるとあのポリゴン数でよくやるわ、と思う。
0505名前は開発中のものです。2009/06/14(日) 12:24:26ID:bw5ulBh+
>>501
プログラマの腕次第なところあるから、まずは色々試行錯誤してみろ。

ここで、いきなり100万ポリゴンとかいわれても出せないだろ?
0506名前は開発中のものです。2009/06/16(火) 20:06:02ID:5Ar73aZc
D3DXCreateTextureFromFileで作ったテクスチャの画像サイズを得るには
どうすれば良いですか?
0507名前は開発中のものです。2009/06/16(火) 20:22:38ID:dTJ8h2Ku
GetLevelDesc()
0508名前は開発中のものです。2009/06/20(土) 22:39:01ID:Wu2JE3tK
HLSLについて質問なんですが、d3d9のフラグメント使ってみた人いますか?
使えないって評判をちらほら見るんですが
どこが不便なのか調べた限りではわかりませんでした。
使った方、よかったら感想聞かせてください。
0509名前は開発中のものです。2009/06/20(土) 23:53:53ID:0e0lo+Z7
>>508
DirectX10じゃなくなってるし。
DirectX11はシェーダーでクラスの継承とかでぜんぜん違うのが搭載されてるし。
0510名前は開発中のものです。2009/06/21(日) 00:09:16ID:7Yh+8Cxp
レスどうもです!
11ってそこまで進化してるのか・・・
確かにそんな高級ならテクニック数の爆発とは無縁なんだろうなぁ
0511名前は開発中のものです。2009/06/21(日) 03:10:17ID:WBKEcadm
DX9出始めの頃で忘れてしまったが、
当時の俺は、多分エフェクトファイルとの親和性が低いのを
問題視していたと思う。
エフェクトインターフェイスと併用が出来ないんで、
自分で同等のものを作るか、あるいはもっとローレベルな方法を
強いられる。
また、プログラム全体を通しての最適化に難がある、、、たような。
忘れた。
0512名前は開発中のものです。2009/06/21(日) 08:43:52ID:DZGoW206
ゲームの配布先で d3dx_24.dll がねーよ って現象が結構あるらしいんだけど...
DirectX9 SDK (2004 December) だと D3DX つかっても d3d9.dll にリンクしてくれるけど、
それ以降だと d3dx_**.dll がないとダメぽい。

これは最新版の DirectX 入れてくれとしかいいようがない?
0513名前は開発中のものです。2009/06/21(日) 09:31:30ID:X+nPpQbO
DirectXランタイムはネット上ならMSのDirectXサイトで配布してる
CDやDVDで配布する場合はディベロッパ向けにDirectXランタイムの
再配布可能パッケージがあるからそれを同梱してやればいいんじゃね
0514名前は開発中のものです。2009/06/21(日) 10:55:59ID:w322u/qr
>>512
Webインストーラなら常に最新版を入れてくれるから、
それにリンク張っとくのがいいかと。
0515名前は開発中のものです。2009/06/21(日) 11:09:06ID:peHhyDD5
昔のsdkで開発すれば良い
0516名前は開発中のものです。2009/06/21(日) 21:35:59ID:a14bSkta
MSIを使わない配布ならば、d3dx_**.dllを遅延ロードにして、システムに存在しないのを
検出したらDirectSetupでインストールってのが正攻法。

http://msdn.microsoft.com/ja-jp/library/bb174600(VS.85).aspx
http://msdn.microsoft.com/ja-jp/library/bb219742(VS.85).aspx

ちなみにd3dx_**.dllを実行ファイルと同じパスに置いても動くけど、
ライセンス上これはやっちゃダメなので気をつけてね。
(XAudio2はCOMサーバとしての登録が必要だったりとかD3DXが例外なんだが)
0517名前は開発中のものです。2009/06/22(月) 08:40:41ID:N/j22pOh
>>516情報サンクス!

遅延読み込みにするってことは、
例えば D3DXVec3TransformCoord をつかっているなら、
D3DXVECTOR3 * (WINAPI * DynD3DXVec3TransformCoord)( .... ) = NULL;
とかやって、既存のプログラムで D3DXVec3TransformCoord 読んでるところを全て
DynD3DXVec3TransformCoord にかえておく ... (そして動的ロードする)
てことを,使っているすべての D3DX 関数でやらなきゃダメだよね。
めんどくせーーーーー


0518名前は開発中のものです。2009/06/22(月) 08:45:06ID:EAX2GkrU
>>517
Xp以降でいいなら、単にVS等で、遅延ロードDLLに指定するだけでは。
0519名前は開発中のものです。2009/06/23(火) 13:38:33ID:uwWTpxSM
服を着せかえるようにしたいのですがどうすれば良いですか?
0520名前は開発中のものです。2009/06/23(火) 14:14:43ID:T6Q520oN
モデルを差し替える
0521名前は開発中のものです。2009/06/23(火) 14:27:09ID:uwWTpxSM
今裸の状態なんだけど
0522名前は開発中のものです。2009/06/23(火) 14:42:52ID:odOiP6Fc
服って言わないで、困ってる点を挙げたら?
縮尺があわないとか、半透明な部分がうまく抜けないとか

労力やデータ量あわせても520の案で裸のボディも含む
モデルを差し替えるのが実は最も適しているかもしれないし
0523名前は開発中のものです。2009/06/23(火) 14:47:05ID:T6Q520oN
だから
裸のモデル→服を着たモデル
に差し替えるだってば
服が変わるとおっぱいの大きさが変わるゲームみたことあるだろ?そういうことだよ

まぁ、ベースとなるモデルのボーン構造やアニメーションを維持したままで
パーツごとにメッシュを差し替えられるように作るのがベスト
スキンメッシュの理屈がわかってればそんなに難しくない

モーションとかついてないモデルなら普通に重ねてだせばOKでしょ
0524名前は開発中のものです。2009/06/23(火) 14:50:13ID:uwWTpxSM
いや、やり方が全くわからない初心者です
服は別のオブジェクトで作ったのですが、ウエイトを付けないと駄目だろうと思い
そうするとモデリングからデータの抽出からどうすればよいのかわからなくなりました
どういう感じで作業を進めていけば良いのでしょうか
0525名前は開発中のものです。2009/06/23(火) 15:00:09ID:uwWTpxSM
つまり裸の物体と服の物体を同時にアニメーションさせるってことですか?
0526名前は開発中のものです。2009/06/23(火) 15:23:06ID:T6Q520oN
簡単に言うと服を着た状態でもウェイトをつけておく
こいつに裸の状態のボーンやアニメーションを適用する
0527名前は開発中のものです。2009/06/23(火) 15:44:39ID:uwWTpxSM
ありがとうございます
裸(ボーン)+服(ウエイトだけ設定)→一つのオブジェクトにする→アニメーション
裸→アニメーション、服→アニメーションを同時に
だとやっぱり下なのですか?
上のほうが直感的だし軽そうで最初上かなと思ったのですがウエイトの仕組みとかをまだあんまり理解して無いのですがちょっと見てみたら無理に思えてきたのですがやっぱり下なのですか?
0528名前は開発中のものです。2009/06/23(火) 15:53:49ID:uwWTpxSM
いや、つまり動くのはボーンだけでメッシュを登録していく感じ?
0529名前は開発中のものです。2009/06/23(火) 15:54:15ID:T6Q520oN
上であってるよ
その一つのオブジェクトにするってところがめんどくさいから
服にウェイトをつけるんじゃなくて
服をきた人体にウェイトをつけておく

必要なものは
ベース
裸の人体の頂点情報+ボーン+モーション

パーツ
服を着た人体の頂点情報(ボーンやモーションはいらない)

を用意しておいて
実際に動かすのはベースのボーンなんだけど
参照している頂点情報を切り替えることで着せかえる
0530名前は開発中のものです。2009/06/23(火) 15:56:36ID:T6Q520oN
>>528
それで合ってる
0531名前は開発中のものです。2009/06/23(火) 15:57:53ID:uwWTpxSM
サンクス
とりあえず方向性は確定したので頑張ってみます
0532名前は開発中のものです。2009/06/27(土) 20:43:51ID:D7q9OIpz
DirectX 9の勉強に役立つ本やサイトって知ってますか?
近くの本屋にはDirectXの本がないので、ネットで買おうと思ってます。
ついでに、初心者なので専門的な言葉を使いまくってるのは、たぶん無理です。
0533名前は開発中のものです。2009/06/27(土) 22:00:43ID:IJZmdZva
まずはヘルプのチュートリアル
0534名前は開発中のものです。2009/06/27(土) 22:23:50ID:D7q9OIpz
ありがとうございます。やってみます
0535名前は開発中のものです。2009/06/28(日) 00:15:10ID:0EFQaPrk
9.0と11.0の主な違いを教えてください
0536名前は開発中のものです。2009/06/28(日) 00:33:09ID:TOQxhDB2
バージョン
0537名前は開発中のものです。2009/06/28(日) 09:17:22ID:jSivxpYx
違いがわからない人は11使っちゃいかんと思う
仕様が違ってる、書籍のソースが使えないなんてのは日常茶飯事
0538名前は開発中のものです。2009/06/28(日) 10:11:57ID:TOQxhDB2
>>535
マジレスするとD3DXの行列ベクトル演算の関数以外の
全部が全く違うものになってる。
0539名前は開発中のものです。2009/06/28(日) 10:32:03ID:RI607p8m
11出たの?
0540名前は開発中のものです。2009/06/28(日) 10:50:48ID:TOQxhDB2
βははいってる
0541名前は開発中のものです。2009/06/28(日) 10:56:24ID:dMUlDk7e
10と違って11は9〜10のカードでも動くから
新規で学ぶなら11で良いと思う
0542名前は開発中のものです。2009/06/28(日) 11:13:43ID:kwR36hFM
10は要らない子か・・・
0543名前は開発中のものです。2009/06/28(日) 11:32:39ID:dMUlDk7e
10の追加拡張が11だからな
0544名前は開発中のものです。2009/06/28(日) 11:53:24ID:TOQxhDB2
8と同じ扱いと考えれば11が今後のメインになってくんだろう
0545名前は開発中のものです。2009/06/28(日) 18:43:52ID:flI5dhRi
11で作ったやつが9のカードでも動くってマジ!?
ちなみに11は当然デバイスのロストとか無視して作っていいんだよな?
マジで!?
0546名前は開発中のものです。2009/06/28(日) 19:04:20ID:nvJMygiz
頭の悪い奴だ
0547名前は開発中のものです。2009/06/28(日) 19:10:30ID:TOQxhDB2
>>545
動く≠実用的な速度で動く
当たり前の事だろ。
DirectX10みたいな起動すらしませんってのが改善されるだけだ。
0548名前は開発中のものです。2009/06/28(日) 19:14:50ID:dMUlDk7e
CPUレンダがマルチコア対応で軽くなってるから
SM2.0、3.0のアクセラレーションがあれば30以上は簡単に出せるけどね
0549名前は開発中のものです。2009/06/28(日) 20:06:20ID:TOQxhDB2
SM20のアクセラレーション可能な環境でPS内でループ回してもエミュレーションで30出ると。
0550名前は開発中のものです。2009/06/28(日) 20:26:13ID:Ceu0I/E1
DirectX11ってXPにも対応してますか?
0551名前は開発中のものです。2009/06/28(日) 20:39:35ID:TOQxhDB2
10がVISTA以降だろ・・・
11も当然VISTA以降のみ対応。
0552名前は開発中のものです。2009/06/29(月) 00:56:24ID:9PVwcXNE
ttp://game.watch.impress.co.jp/docs/news/20090326_79970.html
> なお、DirectX 11は、正確にはWindows 7専用の機能ではなく、Windows Vistaに
>も無償提供される。提供時期もWindows 7のリリース前になる見込みだ。余談だ
>が、DirectX 11は、Windows XPには提供されない。
0553名前は開発中のものです。2009/06/29(月) 01:37:47ID:gfO0eJFI
D3D11てSM2.0もサポートするの?
せっかくD3D10で下限を引き上げたのに
なんだか大変だねえ。
0554名前は開発中のものです。2009/06/29(月) 09:59:04ID:HmvFiuQF
SM4.0からじゃないか?
DX10の時もSM4.0以外使えなかったような・・・
0555名前は開発中のものです。2009/06/29(月) 11:32:13ID:fUTumelu
>>553
SM2.0までしかサポートしてないビデオカードでも動くってだけ。
現実的にはDirectX11対応のビデオカードじゃなきゃたかが知れてる。
0556名前は開発中のものです。2009/06/29(月) 11:53:41ID:3rJ21sSL
>>553
OSの都合だろ。
0557名前は開発中のものです。2009/06/29(月) 11:58:00ID:gfO0eJFI
>>555
動くってどういうこと?
SM2.0がHALで動くってこと?
つまりSM2.0がサポートされるってことか?
0558名前は開発中のものです。2009/06/29(月) 12:35:38ID:fUTumelu
>>557
ソフトウェアエミュレーション
0559名前は開発中のものです。2009/06/29(月) 13:39:43ID:vrifgW3h
それはありがたい
0560名前は開発中のものです。2009/06/29(月) 13:49:46ID:HmvFiuQF
なんか会話がかみ合ってない気がするんだが
0561名前は開発中のものです。2009/06/29(月) 14:22:30ID:gfO0eJFI
>>558
ソフトウェアエミュレーションは何を
エミュレートするの?

アンタ、日本語が不自由な人だね。
無理して答えなくていいよ。
0562名前は開発中のものです。2009/06/29(月) 15:15:42ID:fUTumelu
SM2.0クラスのビデオカードでDirectX11の機能を動かす場合に
ハードウェアアクセラレーションが出来ますか?→○or×
0563名前は開発中のものです。2009/06/29(月) 15:30:08ID:HmvFiuQF
そもそも>>553
SM2.0クラスのビデオカードでDirectX11の機能が使えるかって事じゃなくて
DirectX11でSM2.0を使ったプログラム書けるのか聞いてるんじゃないのか?
0564名前は開発中のものです。2009/06/29(月) 15:32:19ID:fUTumelu
ならSM2.0を使う必要がない、でFAなんじゃね。
0565名前は開発中のものです。2009/06/29(月) 15:42:14ID:n+27wGuQ
誰か知っていたら教えてください。

DirectInputでマウスの入力を取得しているとき、
マウスのボタンを押したまま離していないのに勝手にボタンのUPイベントが通知される場合がありますが、
これは正しい動作なのでしょうか。

再現方法は、

1. マウスのホイールを入力 (DIMOFS_Z)
2. すぐにマウスのボタンを押下する。そのまま押したままにする。 (DIMOFS_BUTTON0とDIMOFS_BUTTON1で確認済)
3. マウスのホイールを入力 (DIMOFS_Z)

すると、なぜか2でDownしたままになっているボタンのUpイベントが来ます。
もちろん実際にはマウスのボタンは押したままです。
1.と2.はほぼ同時のタイミングで入力すると再現します。
2.と3.は時間が開いても大丈夫です。

これはSDKのサンプル (Samples\C++\DirectInput\Mouse) で確認できます。
バッファを使っても使わなくても起きます。

情報求む。
0566名前は開発中のものです。2009/06/29(月) 15:54:28ID:9PVwcXNE
マウスのメーカーと型番は?
0567名前は開発中のものです。2009/06/29(月) 16:02:21ID:n+27wGuQ
マウスはMicrosoft Intelli Mouse Explorer 3.0です。
型番はたぶんB75-00123だと思います。
0568名前は開発中のものです。2009/06/29(月) 18:58:13ID:QhhTiuCy
結局Directx11がSM2.0までのビデオカードで動くってわけじゃないのか
0569名前は開発中のものです。2009/06/29(月) 20:53:31ID:gfO0eJFI
>>565
俺んちじゃ起きないな。

>>568
ここにはは動くって書いてあるが、どういうレベルで動くのかはわからないな。
http://www.realtimerendering.com/blog/direct3d-11-details-part-i-intro/

例えば、SM2.0のPSは最低8bit精度もOKだと思ったが、
SM4.0は最低32bit必要だ。DX9レベルのHWで動くとなると、
SM2.0のサポートは避けられないと思う。
0570名前は開発中のものです。2009/06/29(月) 21:37:38ID:fUTumelu
DX9レベルのハードで動くつってもそもそも
その時代になかった機能までハードでやってくれる魔法があるわけじゃないぞ。

SM3.0世代までの整数演算だって全部FLOATでエミュレーションしてたんだし。
0571名前は開発中のものです。2009/06/30(火) 13:45:01ID:07rmTjVt
ttp://lizsoft.jp/fs/download.shtm
この体験版をやってみたんだけど、
windows/system32/d3d8.dll とかを削除した状態でゲームを実行すると、
なんか勝手にd3d8.dllとd3d9.dll が復元されてるんだよね。

これってアリなの? っていうかどうやってるの?
付属のDLLはsotesw.dllが30MB、sotesd.dllが80MBとかも
気になる。どういう仕組みになってるんだろう??
0572名前は開発中のものです。2009/06/30(火) 13:49:29ID:07rmTjVt
と思ったら自分がつくったD3D9アプリでも同じ挙動になるなあ....
OSが勝手に補完してくれるのか???
0573名前は開発中のものです。2009/06/30(火) 14:31:43ID:nijAQ3rl
OS「気が利くだろう?」
0574名前は開発中のものです。2009/06/30(火) 14:41:18ID:t1xKyX8f
>>572
http://support.microsoft.com/kb/222193/ja
0575名前は開発中のものです。2009/07/03(金) 19:59:27ID:8p6fJxFm
漢字表示をもっとも簡単、かつ高速に行うプログラム書いてくれ
0576名前は開発中のものです。2009/07/03(金) 20:59:57ID:MV84aTyT
必要もないのに毎フレーム書き直すなんてことをしない限り、
フォントイメージをテクスチャに転送してレンダリングするだけで実用速度になる。
0577名前は開発中のものです。2009/07/03(金) 21:14:22ID:PxubNay2
それが簡単に思えないんじゃね?
ぐぐってパクればOKだと思うんだが…テクスチャー?
そんなん画面解像度分確保して、一文字でも変更があれば、
同時に表示する全ての文字だけ、左上からでも埋めてけばおk。
0578名前は開発中のものです。2009/07/03(金) 21:22:28ID:QUqWWjI3
文字データ全部テクスチャデータ化して使う分だけ読み込んでる
自分の好きなフォント使えるし、他PCに持っていったときにそのPCに同じフォントが入って無くても使えるし
もちろんフォントの著作権の問題はあるけど
0579toya2009/07/12(日) 01:03:44ID:+auraSRZ
聖書53ページ
0580名前は開発中のものです。2009/07/12(日) 12:37:26ID:uzKQsXNq
よくあること
0581名前は開発中のものです。2009/07/12(日) 13:32:12ID:v+1Ruet9
韓国人に近いリスト

一重
耳垢が乾燥している
ワキガじゃない
平面顔
たれ眉毛
ど直毛
体毛が薄い

3つ当てはまったら朝鮮人に近い
0582名前は開発中のものです。2009/07/12(日) 20:40:39ID:lpMikX8D
質問です
XPで作ったDX9アプリがVISTAでは動きませんでした
なぜ?
0583名前は開発中のものです。2009/07/12(日) 20:41:59ID:a74a9G0S
君の書いたソースがバグってるから以上の理由は無い。
0584名前は開発中のものです。2009/07/12(日) 20:43:20ID:XdLS7hGc
それは本当に「Vista」だから動かなかったのかい?
ほかの開発環境の入ってないXPでも動かないってことはないかい?
0585名前は開発中のものです。2009/07/12(日) 20:51:59ID:lpMikX8D
サブなんたらがなんたらというエラーが出ます
0586名前は開発中のものです。2009/07/12(日) 20:52:45ID:a74a9G0S
日本語でおk
0587名前は開発中のものです。2009/07/12(日) 20:55:42ID:Uccb4SA3
エラーは一字一句改変せずに
0588名前は開発中のものです。2009/07/12(日) 21:10:33ID:jkZPQGRm
丁寧に書かれた質問に対しては、丁寧に回答されると思うんだな。
スクリーンショットの撮り方も知らないんだろうか
0589名前は開発中のものです。2009/07/12(日) 21:17:07ID:yE1osiWd
サイドバイサイドじゃねーの?
0590名前は開発中のものです。2009/07/12(日) 21:19:49ID:a74a9G0S
それならVISTAで動かないってこたないんじゃね
0591名前は開発中のものです。2009/07/12(日) 21:22:01ID:lpMikX8D
サイドバイサイドでした
つまりどういう事?
0592名前は開発中のものです。2009/07/12(日) 21:27:22ID:a74a9G0S
マニフェストうめろ
0593名前は開発中のものです。2009/07/12(日) 21:31:34ID:XdLS7hGc
マニフィスト関係ないだろ
単なるCRT設定ミスだと思われる
オプションのコード生成のランタイムライブラリの設定が
マルチスレッドデバッグDLLかマルチスレッドDLLになってる
外に出すときはReleaseにしてマルチスレッド(/MT)にしとけ
0594名前は開発中のものです。2009/07/12(日) 21:41:45ID:lpMikX8D
試してみます
0595名前は開発中のものです。2009/07/12(日) 22:02:06ID:a74a9G0S
OpenMPとか使ってるとマニフェストにかいとかないとこけるじぇ
0596名前は開発中のものです。2009/07/13(月) 13:13:57ID:G4TpQQWr
XPでDX10 これ最強
0597名前は開発中のものです。2009/07/13(月) 13:14:52ID:G4TpQQWr
サイドバイサイド   side by side 隣に
 おそらくケースバイケースと言いたかったのだろう
0598名前は開発中のものです。2009/07/13(月) 13:52:11ID:Enmj0qxF
そんな餌に俺様が(ry
0599奇跡age2009/07/17(金) 10:39:11ID:WnY7CWjL
qwertyui
0600名前は開発中のものです。2009/07/17(金) 22:04:11ID:Z3s3jxcY
マルチスレッドでも描画を先にしてから計算でおk?
コアが増えてからDirectXとどう付き合えばいいのかよくわからなくなってきたZE!
0601名前は開発中のものです。2009/07/17(金) 22:18:35ID:GYNcPi+G
ウィンドウモードでメニューとか処理してる間もゲームループと描画を止めずに動かしたいんだが
移動・描画・ウィンドウメッセージのスレッドを別々にすればいいのではないかと思うんだけど
どうやればいいのかよくわからないんだよなぁ
■ このスレッドは過去ログ倉庫に格納されています