1 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 22:47:45.95 ] 回答する人も、質問する人も必ず読んでください これらに当てはまる人のための質問スレです。 1.C/C++は多少理解している。 2.最近DirectXを始めたばかり 3.SDKを見ても、Googleで検索しても、いまいち理解できない人 4.余計な雑談は不要ですよ 【 回答してくださる方 】 ・ できるだけ優しく質問に答えてあげてください。 ・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。 「ググれ」「SDK見れ」以外の回答でおながいします。 ・ 神ですら理解不能な質問は無視して下さい。 【 質問する方 】 ・ どんな事で躓いているのか明確にしよう。 ・ 長くならないなら躓いている部分のコードを晒してみれ。 ・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。 ・ 回答して貰ったら、出来るだけお礼もしよう。 現在の最新バージョンはDirectX 11です。 前スレ 【C++】 DirectX初心者質問スレ Part35 【C】 hibari.2ch.net/test/read.cgi/tech/1305885376/
865 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 15:23:06.02 ] 共有メモリが使えるみたいな
866 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 15:52:31.53 ] msdn.microsoft.com/ja-jp/library/bb219800%28v=vs.85%29.aspx 一番の違いはデバロス関係。 あとは文字用に1bitサーフィス+Convolutionフィルターの追加。
867 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/03(火) 18:29:47.12 ] DirectShowでAVIファイルとかを開くと勝手に出るビューウィンドウを表示させないようにする方法を教えてください
868 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/03(火) 18:32:02.55 ] DirectShowスレなくなっちまったか。扱いはWindowsSDKだからAPIスレ逝け。
869 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/03(火) 18:36:34.82 ] あっちは・・・ もう雑魚隔離スレになってるから機能してないんだよね・・・
870 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/03(火) 18:42:25.27 ] ちょっとあっちは書き込みづらい雰囲気ではあるな
871 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/03(火) 20:42:12.84 ] DirectShowと戦ってたときが懐かしなぁ。
872 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/03(火) 20:42:49.09 ] ソースはNHKのNHK予算審議参院総務委 今日の片山さつきまとめ 「なんで、韓国の放送局が、NHKの中にあるの」 「なんでハングルメールブームを捏造するの」 「なんで紅白に反日時代を出すの」 ミュージックジャパンなのに韓国人を36%も混ぜてた ビックバンなどの大麻・人身事故そんな犯罪者も出してた そりゃミュージックコリアwだろとw 「皇室」「王家」と辱めたことは 宮内庁に聞いたのか? ほとんど答えてなかったね 「ニュース9の「在日参政権への誘導」については、今夜、謝罪放送しとけ」 も言ってた H24/03/29 参院総務委・片山さつき&礒崎陽輔【犬HKを質す!!】解約お勧め www.nicovideo.jp/watch/sm17394218 03.29 参議院総務委員会 片山さつき議員(自民)NHKの諸問題を追及 www.nicovideo.jp/watch/sm17394300
873 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/07(土) 23:09:41.61 ] DXライブラリのDrawGraph関数みたいなものを作ろうとしています。 画像の読み込みは後回しで、とりあいず100*100の白い四角形を描写しようとしたのですが・・・数ドットずれてしまいます。 w = 640; h = 480; HWND hWnd = CreateWindow( _T("D3D Window Class"), windowtitle , WS_OVERLAPPED | WS_SYSMENU , 100, 100, w , h , NULL, NULL, wc.hInstance, NULL ); でウインドウのサイズは640*480になっているはずなのですが・・・ここで次のような問題が発生してしまいます。 DDKL::DrawGraph(640,480,0);だと、ウインドウ外に四角形が描写される。これは成功なのですが・・・ DDKL::DrawGraph(634,452,0);もウインドウ外に四角形が出て描写されてしまいます・・・。 ←おかしい!! ウインドウのサイズは640*480になっているはずだから、四角形が画面右下からすこしだけ表示されないとおかしいと思うのです。 DDKL::DrawGraph(633,451,0);だと、ウインドウにぎりぎり1ドット映ります。 なぜ、ずれてしまうのでしょうか・・・? どなたか、アドバイスをいただけると幸いです。 私が模倣しようとしているDXライブラリのDrawGraphの説明 ttp://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_graph.html#R3N7
874 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/07(土) 23:16:00.32 ] ちゃんとクライアント領域意識してる? あと、数字によっては小数点以下の誤差があるよ。
875 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/07(土) 23:26:59.98 ] クライアント領域・・・?本当だ! >>874 さん、即答ありがとうございます! なるほど・・・描画のできる領域?だけで640*480というわけじゃないんですね・・・。 まさか、こんなに早く回答をいただけるとは・・・ありがとうございます;
876 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 12:41:48.42 ] spy++とか使うといい
877 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 17:28:04.20 ] チュートリアルに習って定数バッファにXNAを使っているのですが、射影変換がうまくいきません 具体的には何も表示されません XMMatrixPerspectiveFovLHに入れているパラメータは上から PI/180*45 16/10 0.0 1000.0 です ワールド、ビュー、プロジェクション変数に全てXMMatrixIdentityを入れると変形されないポリゴンが表示されます 回転もZ軸方向に回らない回転ならうまくいきます XMMatrixIdentity(単位行列)と回転がうまくいってるのでビューポートやバッファの初期化が間違っている、と言うことは無いと思いましたが、一応確認しました(そもそもコピペ 気になることといえば頂点バッファのByteWidthを頂点数+1しないとテクスチャがちゃんと貼れないということです 頂点数-1してみると表示される頂点が減って頂点数と同じ症状になります 使っているのはD3D11です
878 名前:>>877 [2012/04/13(金) 19:25:15.35 ] >>877 補足 ワールド変数 = XMMatrixIdentity(); ビュー変数 = XMMatrixLookAtLH( XMVectorSet(0.0f, 0.0f, -2.0f, 0.0f), XMVectorSet(0.0f, 0.0f, 0.0f, 0.0f), XMVectorSet(0.0f, 1.0f, 0.0f, 0.0f) ); です
879 名前:>>877 mailto:sage [2012/04/14(土) 01:58:23.97 ] 頂点バッファの事で気になったのでその周り調べてみると頂点レイアウトのFormat設定間違ってました 相変わらず射影変換されませんが、案外こんなのかもしれないんで一度コード全部洗ってみます
880 名前:デフォルトの名無しさん [2012/04/17(火) 07:56:59.52 ] 9.0cの良書おしえてつかさい customUIがわからない
881 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 17:29:20.89 ] やーだよ
882 名前:デフォルトの名無しさん [2012/04/17(火) 17:32:13.93 ] 雑魚ばっかりだなあ
883 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 07:39:14.66 ] directxをスマフォやブラウザで使えるようにしたい これって違法じゃないよね? 勝手に移植して販売して訴えられたりとかしたら困る
884 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 14:14:07.93 ] 全然問題ないけど技術的な部分を理解した上でほざいているのか?
885 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 22:30:33.58 ] HLSL初心者ですが、ご教授お願いします。 MMDデータ使って、頂点ブレンドをシェーダーでやろうと思ったんですが、 D3DXMATRIX g_pMatrixAllBoneArray = new MATRIX [boneNum]; pEffect->SetMatrixPointerArray( "world_array", &g_pMatrixBoneArray, boneNum ); boneNum=140とか普通入れていいものなのでしょうか?なんか効率悪そうな気がして .fx側で float4x4 world_array[]; とかサイズを動的に宣言したいんですが、どうすればいいのでしょうか? よろしくお願いします。
886 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 00:04:45.63 ] >>885 シェーダーバージョン3以下だとfloat4が256個までなんでfloat4x4だと64個までしかレジスタに入らなかったりするよ 配列を動的にってのはあれなんで最大サイズとっておいて使う分だけ転送とかは?
887 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 16:10:37.69 ] >>886 ありがとうございます。 >シェーダーバージョン3以下だとfloat4が256個までなんでfloat4x4だと64個までしかレジスタに入らなかったりするよ 64個ですか。140個、全部送れれば実装が楽だったんですが。 > 配列を動的にってのはあれなんで最大サイズとっておいて使う分だけ転送とかは? なるほど、そういうふうにやるんですね。 一般的に頂点ブレンドのボーンの行列配列というのはどのように送るべきなのでしょうか。 ボーン配列が全部入れられないので、サブセット毎に一時的な配列を作る。(40個ぐらい) そのためのindexを作成する必要がある 頂点宣言はこんな感じで struct ORIGINAL_VERTEX { D3DXVECTOR4 pos; D3DXVECTOR3 normal; unsigned color; //頂点色 D3DXVECTOR2 uv; float weight[MODEL_BLEND_COUNT]; unsigned short index[MODEL_BLEND_COUNT]; unsigned short indexInShader[MODEL_BLEND_COUNT]; }; ボーン数が多い場合、こんな実装が一般的なんですか? なにか違和感があるような…
888 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 01:00:29.65 ] MMDの場合、MMEを見ればわかると思うが頂点のスキニングはCPUでやって スキニング済みの頂点をGPUに送りそこでワールドビュープロジェクション変換してる MMMの場合はサンプルのfxmを見る限りGPUでのスキニングでvs_3_0と書いてあるのでその制限の中でやっているのだろう とりあえずシェーダーのセットアップが必要なマテリアル単位で 使っているマトリクス(ボーン)数だけを送ることになるんだろうけど もちろんそれでも想定したレジスタ数を超えることがあるので それが超えないようにプリミティブを分けて複数回の転送&描画が必要になる。 この分け方はまぁ自分で考えて。 例に出てる頂点宣言のORIGINAL_VERTEXだけど プリミティブを分ける以上 隣り合った三角形が必ず同じ描画になるというわけないので 一つの頂点に indexInShader が一つにするのは至難の業になるかもしれず。 じゃぁブレンドインデクスはストリーム分けてってのはかなりのメモリが無駄になるような気もするので 分けた後の描画数分のVertexBufferとIndexBufferおよび Matrixの元インデックス→シェーダーに送るインデックステーブルを生成するのが手っ取り早いと思う 頂点モーフやUVモーフがあるので生成した頂点に元の頂点インデックスを知る手段もなにかしらで生成。 でindexInShaderだけどどうせ256以内に収めるんだしD3DDECLTYPE_UBYTE4のunsigned char indexInShader[4]でいいんじゃないかな? [4]って書いたのは.pmxのBDEF4のため。 SDEFをやるならVECTOR3のC、R0、R1も追加。 あとスキニングなら回転(拡縮)と移動だけなので転置して1列削れば floatの数が12個なので1ボーンあたり3レジスタ分でいけてお得
889 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 20:02:36.13 ] >>888 規制がされてるので携帯から失礼します。 うーん、難しい レス有り難う御座います original_vertexは元のインデックスをC+側クラスで保存しときます あー表情のプログラムのことモーフっていうのか 並べ替えたら破綻する可能性、全く考慮してませんでした。 とりあえずはC側では実装出来てるので、またあとで実装してみたいと思います。 PMXは色々機能有るんですね、クォータニオンの補間がBDEF2の場合しか上手くいかず、拡張し難い実装した気がしますw
890 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 20:08:15.08 ] 続けて失礼します unsigned charにします D3DDECLTYPE_USHORT2がない理由がわかりました。 そんなにレジスタないからですね。 groupId : material0 での三角形単位の使用ボーンインデックス 0 : ( 9, 40, ) 1 : ( 9, 72, ) 2 : ( 20, 23, ) 3 : ( 41, 42, ) 4 : ( 73, 74, ) 5 : ( 136, ) material0 内で使用したボーン. 9, 20, 23, 40, 41, 42, 72, 73, 74, 136,
891 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 20:08:54.92 ] material0でのグループ分け開始 indexBufferのindex : groupId index 0: 4 index 3: 4 : : index 429: 4 index 432: 3 : : index 861: 3 index 864: 1 : : index 1059: 1 index 1062: 0 index 1257: 0 index 1260: 5 index 1833: 5 index 1836: 2 index 2073: 2 index 2076: 5 index 2121: 5 index 2124: 2 index 2241: 2 index 2244: 5 省略 とりあえず、ここまで進みました。わかりにくいと思いますが… ここからIndexBufferを並べ替えてやろうかなーとか思ってます。 また、何かありましたらよろしくお願いします。
892 名前:デフォルトの名無しさん mailto:sage [2012/04/23(月) 03:48:20.81 ] WindowProcとMainWndProcの違いって何でしょうか? もう何がなんだか分からない…
893 名前:デフォルトの名無しさん mailto:sage [2012/04/23(月) 13:42:14.99 ] Win32SDKのみの環境ならWNDCLASSEXのlpfnWndProcで設定された名前だから なんでもいいんじゃない?どっちでも一緒かと その他別のライブラリとかのコールバック関数なら知らない
894 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 09:18:34.85 ] 複数のモデルが同じテクスチャを参照している場合は、 VRAMに送られるテクスチャの実体って一つなんですか? たとえば3Dソフトなどで木のモデルを自動生成した(頂点の個数や座標は個々に違う)場合とかどうなるんでしょうか
895 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 16:11:19.72 ] Release()とGMA500について質問です DirectX7以前に作られたゲームを Win7とGMA500の機種でプレイすると if (xxx) xxx->Release(); で 必ず落ちることがわかりました それもDirect3DDeviceなど GPUに関するインターフェイスだけです igdumd32.dllでエラーが出てるので インテル最新の8.14.10.2030にしましたが 結果は同じです 同じ機種にXPだと問題ないですし GMA3000など他の環境でWin7でも 問題なく動いてます 互換性の問題で古いDirectXで ビルドする必要があります これは相性の悪い組み合わせとして 諦めるしかないのでしょうか?
896 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 01:16:22.83 ] 環境を疑う前に自分のコードを疑え
897 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 07:36:34.10 ] >>896 もちろんやってます 最低限のDD、Primary、D3D、D3Deviceだけ作り ReleaseしようとするとDirect3DDeviceでエラーです テクスチャを読ませると DirectDrawSurfaceで同様になります このトラブルはVistaの頃から続いてるようで DirectX9でも同じエラーを確認しました 何か決定的な対処法が見つかってないかなと思い 質問してみたわけです 試してみたところ Releaseせずに処理を進めれば 問題なく動作してしまうので GMA500が勝手にそうしてしまうのか よくわかりませんが Releaseが必要かどうかを知る方法は ありませんよね? それともVista以降ではReleaseせずに 上書きするようにCreateするんでしょうか? でもSDKにはそんなこと書いてませんし GMA3000やGMA4500では Release必要だったので違いますよね
898 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 08:30:29.61 ] もっと自分のコードを疑え。 最低限のコードだけでも貼れば、誰かが間違いを指摘してくれるかも。
899 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 15:42:32.66 ] Releaseでクラッシュするとか、たいてい初期化していない物だったり、破棄済みを更に呼び出すとか素人コードな。 あとシングルスレッドのデバイスなのに複数のスレッドからアクセスするってのもNG。 他には、メモリ書き込みで他の領域を壊してしまったとか。 間違いなく、お前のコードにバグがある。
900 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 17:39:16.03 ] あれからいろいろ試しましたが テクスチャを使用してポリゴン表示すると Direct3DDeviceかテクスチャのReleaseで エラー出るようです テクスチャ読んでも使用しなければ普通にReleaseできてます テクスチャを2枚読んで 2枚のポリゴンにそれぞれのテクスチャを貼り 終了するときReleaseさせると なぜか片方のテクスチャだけReleaseできます RenderStateでテクスチャのハンドルを渡しますが これをNullで消そうとしてもエラーです どうやら最後にRenderStateで伝えたハンドルの テクスチャをReleaseさせようとすると このエラーが出るようです なぜ開放してくれないのかはわかりません 逆にデバイスがロストしたときは デバイスやテクスチャは生きてるのに 実際はRelease済みになってるので Releaseさせようとするとエラーです DxSDK付属のサンプルでもエラーです SAFE_RELEASEマクロが機能しませんので当然こうなります DirectX7で作られたゲームや DxLibで作られたゲームでも 同様な環境でGPUを使うと 同じエラーが出てるようです その後の対処法が見つからず 情報が止まってしまっているので 解決できたのかどうかわかりません
901 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 18:05:41.98 ] ところでエラーって何なのさ? 例外?エラーコード?
902 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 18:19:08.37 ] >>901 AppCrashでigdumd32.dllからエラー出ます
903 名前:デフォルトの名無しさん [2012/04/30(月) 04:51:34.49 ] 技術面の質問ではないのですが、OSをwindows7の64bitに変えてから、DirectX製のゲームを起動すると どのゲームでも「ヴゥゥー」といった感じの爆音のノイズが必ず流れるようになりました。原因を教えてください
904 名前:デフォルトの名無しさん [2012/04/30(月) 08:25:21.52 ] やーだよ
905 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 11:26:56.87 ] 最近、企画会社A社が日本進出を打診して落ち込んだ。所属アイドルグループの日本での活動を控え、 日本企画会社が提示した契約金が昨年水準に大きく至らなかった。既に昨年から日本でラブコールを受けていたが 国内でさらに実績を積んだ後に進出するという計画に支障をきたした。 K-POPが日本市場で萎縮する兆しを見せている。日本はアジアの最大規模の音楽市場だ。 日本エンターテインメント業界でK-POPを見つめる目が昨年に比べ熱気が冷めているという兆候が次から次へ感知されている。 今年の初めに日本で開かれた大規模公演のチケット販売率も大きく落ちた。 問題はこのような雰囲気がK-POPに否定的な影響を及ぼす恐れがあるというところにある。 既に今年開かれたいくつかのK-POP公演では赤字を記録したと伝えられた。先月に日本でアルバムを発売したいくつかの歌手の場合、 期待値にはるかに至らない成果を上げて関係者たちを落胆させた。 (中略) ついこの前まではK-POPという看板だけ掲げれば韓国で存在感がない歌手でも日本では注目をあびた。 もう日本進出に対する方法の変化が必要だという声が出てきている。 歌手らの実力とスター性を整えるのはもちろん、企画会社と放送会社全てが日本国内のK-POP市場をさらに拡張できる方法を模索し、 徹底したビジネスマインドで接近をしなければならないという指摘だ。 K-POP日本で何が?…放送会社主導公演「憂慮が現実に」(韓国語) starin.edaily.co.kr/news/NewsRead.edy?newsid=01092246599498088&DCD=A10202&SCD=EA21
906 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 12:37:12.80 ] 来月末マスターアップで間に合わないので GMA500とVista以降の2つを検出したら クリーンナップでReleaseしないよう 対処することにしました お騒がせしました
907 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 13:29:44.68 ] バグ入りで完成したとさ。おしまい。
908 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 14:32:10.06 ] いまどきDX7時代の遺産の保守作業か 他人事ながら悲しくなってくるね
909 名前:デフォルトの名無しさん mailto:sage [2012/04/30(月) 15:13:28.73 ] このスレ読んでるだけで楽しい
910 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 05:27:59.42 ] ウィンドウモードでも遊べるようなFPSを作っているのですが、 マウスカーソールをゲームウィンドウの外に出した時でも、無効化、非表示に するようにしたいのです。 SetCursorPosではペンタブ等で簡単に画面外をクリックできてしまいますし、 ShowCursorもクライアント領域内のカーソールしか非表示に出来ません。 なにかよい方法は無いでしょうか?
911 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 06:19:48.38 ] ↑自己解決しました。ClipCursorで、カーソールの位置を制限できるそうです。
912 名前:デフォルトの名無しさん mailto:sage [2012/05/01(火) 23:14:17.85 ] ペンタブでFPSやる奴いねえだろ
913 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 01:15:52.37 ] FPSは無いなって思えるけどフラッシュとかでたまにあるハエ叩きゲーとかだとペンタブのがやりやすいぜ
914 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:33:34.48 ] DirectX11の参考書で初心者〜中級者向けの本探してるんだがオヌヌメありますか。言語はC++で