【C++】 DirectX初心者質問スレ Part40 【C】©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2016/09/25(日) 14:43:57.34ID:3wiQalb8
回答する人も、質問する人も必ず読んでください

これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ

【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
 「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。

【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。


【C++】 DirectX初心者質問スレ Part39 【C】
http://echo.2ch.net/test/read.cgi/tech/1418438785/

>>2リンク
496デフォルトの名無しさん
垢版 |
2017/03/29(水) 00:52:25.71ID:JmTVAqMX
プログラムももう少し幅広くやりたいと思ってるんだが気が付くと
directxいじってるな・・
2017/03/29(水) 01:22:07.32ID:lNLvepMu
>>495
ただの数学じゃねぇか
アホか
2017/03/29(水) 02:27:07.53ID:h4zEcUcw
俺は良い質問だと思うよ
ただ、2chで答えられる奴はいないと思う
ここの連中のレベルは大体ここらが限界
2017/03/29(水) 07:24:44.94ID:hn731+Xa
クオータニオンからオイラー角を求めたいってことかな?
500デフォルトの名無しさん
垢版 |
2017/03/29(水) 13:42:30.66ID:BJA+tiDg
500
2017/03/29(水) 17:13:30.33ID:l/YV52ul
いわゆる球面上の2点間の角度?
だとしたらそれこそXMQuaternionSlerpの実装読めばわかると思うんだが
2つの単位ベクトルの角度と同じやり方じゃなかったか
502デフォルトの名無しさん
垢版 |
2017/03/29(水) 19:39:08.71ID:J7HfnKx0
ただの余弦定理だな
503495
垢版 |
2017/03/29(水) 20:00:16.36ID:iMBASESi
>>501
>2つの単位ベクトルの角度と同じやり方じゃなかったか

これで分かりました!
ありがとうございました!
2017/04/02(日) 21:16:27.42ID:hVKci9Io
求:DirectX11でスキンメッシュアニメーションのやり方を解説しているサイトのURL
2017/04/02(日) 21:42:43.90ID:7vnu7zpi
>>504
英語でググれ
2017/04/03(月) 04:36:00.26ID:YI4oZC/R
バッファーに行列突っ込んでシェーダーリソースビューにしてbuffer<float4>ってやればDirectX9の頃とそんな変わらずできるよ
2017/04/04(火) 06:24:39.51ID:f9q9WtqG
directx11(windows sdkに統合された以降)のオヌヌメの入門本かサイトありませんか?
ずっと昔に9を触ったきりなんだけど、突然11を触らないといけなくなりました
2017/04/04(火) 07:32:03.32ID:YweiRM0d
>>507
工学社本一択
2017/04/04(火) 08:42:48.40ID:f9q9WtqG
>>508
ありがとうございます
本屋で探してみます
2017/04/04(火) 10:18:54.82ID:KCjjE9r+
工学社のDirectX 11 3DプログラミングってDirectX SDKを使った古代のコードじゃないの?
改訂版で新しくなってるかと思ったらサンプルのタイムスタンプを見る限り2010年のままだし
2017/04/04(火) 14:55:21.28ID:2s+EX403
https://web.archive.org/web/20090925225036/http://www.tkzdev.net/?p=12
続きが見られないから手さぐりするしかないか
Direct2D始めるのにいい書籍とかあるんだろうか
512デフォルトの名無しさん
垢版 |
2017/04/05(水) 00:23:12.79ID:LHYX2AZb
directx12なんだが
コマンド関係の処理と並列にmallocやった場合
visual studio 2017のグラフィックデバックをやった時にmalloc失敗することが有る
通常のデバックだと失敗しない。
なんでグラフィックスデバックだけ失敗するのかわからんのだが
あんまきにしなくてもいい?
513デフォルトの名無しさん
垢版 |
2017/04/05(水) 14:27:32.66ID:+eJqUohN
lockし忘れ
514デフォルトの名無しさん
垢版 |
2017/04/05(水) 21:07:50.87ID:LHYX2AZb
>>513
コマンド処理してる間はmalloc排他処理しないとだめって事みたいね
サンクス
2017/04/07(金) 21:52:40.83ID:KKCe02fo
directx11で3dモデルとレイの当たり判定ってどうしたらいいの?
調べてみたらdirectxcollision.hってのがあるみたいだけどどう使ったらいいのかさっぱりわからん...
2017/04/07(金) 22:27:40.81ID:Zthlhbj+
>>515
DirectXCollision.hの範囲で解説すると

o メッシュのすべての三角形で判定したいならTriangleTests::Intersects
o メッシュの大雑把な形状で判定したいなら各BoundingなんちゃらのCreateFromPointsにメッシュの頂点突っ込んで
ボリュームを作成しIntersectsメソッド

これでわからんかったらもーなんかとりあえず3Dゲームのための数学とかそんな感じの教科書一冊読んできて…
2017/04/07(金) 22:29:50.10ID:yD13/JV6
directxmathかなんかに統合されてなかったっけ
2017/04/07(金) 22:47:59.65ID:KKCe02fo
>>516
返信ありがとうございます
とりあえず適当な本買ってみます
もうひとつ質問なんですがどのポリゴンがレイと交差するかってどうやって判定するんですか?
そのあたりも数学の本でわかるんでしょうか
2017/04/07(金) 22:52:30.41ID:0p/526bS
数学的に解ける問題よ。
まぁ、DirectXではAPI呼ぶかたちだけど。
2017/04/07(金) 23:00:14.21ID:KKCe02fo
今はとりあえずfor文でループさせて頂点インデックスを探すように実装してるんですけど
もしよろしければ効率的なやり方を教えていただけないでしょうか
2017/04/07(金) 23:11:15.53ID:Zthlhbj+
>>517
DirectXCollision.hはXNAMathからDirectXMathに名称変更後の定義ヘッダ
SDK統合後はインクルードするだけで使える
DXSDKの頃はXNACollisionというサンプルの方に実装されてた(衝突判定周りはだいぶ様変わりしてるけど)

>>518
ソースコードにもちゃんと書いてあるけど三角系とレイ判定はこのアルゴリズムの採用が多いかな
Moller Trumbore intersection algorithm
https://en.wikipedia.org/wiki/M%C3%B6ller%E2%80%93Trumbore_intersection_algorithm
ゲームエンジンの実装でも目指してるのでなければ理解する必要はあんまり無い
2017/04/13(木) 19:18:17.54ID:znvo4/g4
DirectShowについての質問なのですが、生成されていくある動画ファイルを
追いかけ再生するものを作りたいと思っているのですが、

Stream Buffer Sinkフィルタを作成して、フィルタグラフに追加。
Stream Buffer Sinkに動画ファイルを繋ぐ。
Stream Buffer Source Filterをデコーダー、レンダーに繋いでいく感じでいいのでしょうか?
勉強しながらなのですぐに組めそうにはないのですが、処理の過程が知りたかったので質問した次第です。
2017/04/13(木) 20:18:15.80ID:OZ+8W9nx
>>522
完成されていないファイルを読み込ませることってできるのかな?
ソースフィルタをカスタムで組むなら可能かもしれないけど・・・。
2017/04/13(木) 23:42:17.71ID:PdG4bjuc
インデックスチャンクが存在しない物は無理じゃね。そしてスレ違。
2017/04/14(金) 08:29:20.97ID:Rcsvx17j
DirectShowと戦うスレ、なくなっちゃったからなぁ。
まぁ、ここで聞きたくなる気持ちは分かるよ。
2017/04/17(月) 16:50:47.16ID:37O+yXOM
亀レスすいません。
>>522です。

>>523
一応、普通の動画プレイヤー(Windows Media Player MPC-HC MPC-BE 他)でも再生できるので
開いた瞬間に制作されていたところまでなら読み込めるようです。
それは、DirectShowの動画を普通に再生した場合でも同じようです。
ただし、どの動画プレイヤーでも開いた後に追加されていく動画ファイルは読み込めないといった感じです。

>>524
ごめんなさい、スレチでしたね。
DirectShowと戦うスレがなくなっていたため、関連がありそうなスレで質問したのですが、申し訳ありませんでした。
別の掲示板等で質問してきたいと思います。

>>525
DirectShowを余り使う人が少ないんでしょうかね、残念です。
2017/04/17(月) 20:26:21.57ID:8ROwKxqx
MediaFoundationへの移行は中途半端に終わり、
メディアプログラミングは暗黒時代へと入った・・・。
2017/04/22(土) 20:29:38.72ID:UEy9WSpB
>>522
DirectX じゃなくてストリーミング再生の話じゃろ
529デフォルトの名無しさん
垢版 |
2017/04/24(月) 19:58:26.44ID:rbsfiBEC
ちょっと質問なんだけどNowLoading表示させながらリソース読み込みとかってどんなやり方でやってる?
マルチスレッドでやったんだけどNowLoading表示時のコマンドリストとリソース読み込み時にやるNewとかmalloc
が競合してるみたいでmutexで処理したんだけどこのやり方が一般的なのか気になって・・
2017/04/24(月) 21:13:09.25ID:tL/BxWI8
馬鹿は放置で
次の方どうぞー
2017/04/24(月) 21:26:00.98ID:Fbyj+dPJ
>>529
シーンのステータス自体にNowLordingを持たせてゆっくり処理すればいいよ
2017/04/24(月) 21:29:55.12ID:Fbyj+dPJ
何でもかんでもマルチスレッドにしちゃわないで何が並列で動くのか冷静に分析するのが良さげ
533デフォルトの名無しさん
垢版 |
2017/04/24(月) 21:39:23.06ID:rbsfiBEC
>>530
もっと勉強します
>>531
ありがとうございます。
参考にさせていただきます
534デフォルトの名無しさん
垢版 |
2017/04/24(月) 21:44:01.38ID:rbsfiBEC
>>532
おっしゃる通りです。
最初競合してるのをしらずに排他処理もせず動かしていたんですがグラフィックデバックと
いうのをやった時にこの不具合に気が付き、色々やったら排他処理だらけになってしまった
といった感じでした。
でもまたひとつ覚えました。ありがとうございます。

皆さんまた何かありましたら宜しくお願いいたします
535デフォルトの名無しさん
垢版 |
2017/04/25(火) 17:29:11.99ID:ApIFkZey
WindowsPhoneとやらではDirectX動く?
536デフォルトの名無しさん
垢版 |
2017/04/25(火) 22:27:02.13ID:VdqbD08K
動くけどWindowsPhone見たこと無い・・
2017/04/26(水) 01:32:51.74ID:+3FbUZ3d
D3D11以降のグラフィックス体系(D3D11、DXGI、D2D、DWrite)は
割とそのまんまなAPIがあると思ってええよ
デスクトップ複製や共有テクスチャみたいなのは流石に無いけど
538ich1
垢版 |
2017/04/26(水) 07:31:41.20ID:KcpaNie5
https://goo.gl/Y4tSAe
これは嘘でしょ?
本当なら落ち込むわ。。
2017/04/26(水) 13:37:45.42ID:TZ4q0hr9
>>536
それな
2017/04/26(水) 13:42:23.23ID:TZ4q0hr9
>>537
>D3D11以降

以前じゃなくて?
2017/04/26(水) 23:37:34.88ID:+3FbUZ3d
>>540
D3D9も無けりゃOpenGLも無いよ(Windows 10 Mobile以前は知らんけど)
まあ低スペックのSoCだとlevel9_3とかそんなんで戦う羽目になるが
2017/04/27(木) 11:51:31.45ID:nqOtHEIU
いつもの日本語不自由なひとか
543デフォルトの名無しさん
垢版 |
2017/04/27(木) 13:17:20.28ID:jfFmbm9g
ANGLEでOpenGLESが使えるやろ
544デフォルトの名無しさん
垢版 |
2017/04/28(金) 00:30:49.33ID:E/dY3suJ
やっぱみんなDirectXが生きがいなのかい?
2017/04/28(金) 07:40:37.38ID:aNBkMFZI
ああ、DirectXなしの人生など考えられない
2017/04/28(金) 07:52:26.59ID:HP+d21vg
unity使うわ
2017/04/28(金) 11:59:17.08ID:bxfxRGqX
名前がダサい
2017/04/28(金) 12:17:40.00ID:4D2iUcPo
DirectX is my life.
549デフォルトの名無しさん
垢版 |
2017/04/28(金) 19:37:09.80ID:E/dY3suJ
すげえ
2017/04/28(金) 20:11:36.20ID:P8ut+A3M
Unityは敗者の選択
551デフォルトの名無しさん
垢版 |
2017/04/29(土) 20:57:52.90ID:q8JLU/jS
directx12 ノートで開発してるひといる?
552デフォルトの名無しさん
垢版 |
2017/04/30(日) 06:07:38.87ID://wIllOi
俺はA4のコピー用紙使ってる
2017/04/30(日) 12:10:28.39ID:VPr4LyhY
yoga book 意外と素敵
554デフォルトの名無しさん
垢版 |
2017/04/30(日) 12:40:09.75ID:cgP+G81m
12対応のノートで手ごろなの何かない?
2017/05/01(月) 09:26:01.89ID:fGvLHwLU
Project Valerie
2017/05/01(月) 10:36:10.32ID:vKy/sJAm
ダライアスでも作る気か
557デフォルトの名無しさん
垢版 |
2017/05/01(月) 18:32:49.15ID:ck74kCt8
12対応だと10万超えのしかないか・・
2017/05/01(月) 20:12:36.95ID:XXzbk5jt
ダライアスって何?
2017/05/01(月) 20:12:35.52ID:8LtPkqxm
新しい機能ってなにあんの?
2017/05/01(月) 21:24:53.67ID:Ho3yGhHo
>>556
スペースハリアー作って!
スタークルーザーでも可!!
561デフォルトの名無しさん
垢版 |
2017/05/02(火) 09:41:28.03ID:lmunJWcI
560
12じゃなくても出来るだろ
562デフォルトの名無しさん
垢版 |
2017/05/03(水) 01:47:33.47ID:EqZpfvgO
GWもずっとDirectXなの?
2017/05/03(水) 02:18:51.27ID:uzk5Z1ua
ああ、今日もDirectXづくしだったよ
2017/05/03(水) 04:10:48.08ID:hYpCI1o/
いいやunityだよ
2017/05/03(水) 05:13:52.62ID:B4kcC+3m
こどものひ
566デフォルトの名無しさん
垢版 |
2017/05/03(水) 14:24:01.84ID:EqZpfvgO
12でやってるんだがどうも未だにGPUの動きがわからん。
グラフィックデバックでやった時にたま〜にエラーがでるんだよな〜
2017/05/03(水) 16:19:37.93ID:atVCcqqk
>>566
SDKのサンプルも似たような現象が起きるの?
568デフォルトの名無しさん
垢版 |
2017/05/03(水) 16:48:53.34ID:EqZpfvgO
>>567
いや、SDKは試してないけど
自作のゲームで起きてるんだわ。
イマイチ原因がつかめてなくて。
30秒くらいするとコマンドリストの処理のあたりでアクセス違反が出る。
通常のデバックだと出ない。
directxの初期化処理の後に
2スレッドでリソースの読み込み→シングルスレッドでゲームループ(ここで30秒くらいでエラー)
って処理やってるんだけども
実験的に画面クリアするだけのループを
directx初期化直後に置くとエラーが出なくて
リソース読み込み直後に置くと同じエラーが出るといった感じ・・
ちょっとサンプルもためしてみるお・・
569デフォルトの名無しさん
垢版 |
2017/05/03(水) 16:54:27.20ID:eMP4zE8M
ロック忘れ
2017/05/03(水) 18:57:06.71ID:RICjVVNj
よく12でマルチスレッドでエラーが出るってレスがされるけど11のときとは勝手が違う感じなの?
2017/05/04(木) 00:40:05.77ID:aoO/IU9y
コマンド実行中なのにバッファを再利用したりしてんだろ。
使用中というかリソースの状態を強く意識して扱わないと正常に動作しない。
572デフォルトの名無しさん
垢版 |
2017/05/04(木) 01:21:51.43ID:nzV0V/J5
シングルスレッドでもなるからそっちなのかな・・
もう少し検証してみるお
さんくす
2017/05/04(木) 23:26:15.81ID:yMj73fif
directx9にて、blenderでxファイルを出力して表示しようとするとモデルが真っ黒になります

xファイルをテキストエディタで開いてみるとMeshTextureCoordsブロックが出力されていません

どなたかお分かりになるでしょうか?
2017/05/05(金) 07:44:15.01ID:JzVZ7/aU
blenderのxファイルの出力がその程度なんじゃねーの?
2017/05/05(金) 07:48:21.18ID:JzVZ7/aU
blenderからゲームモデルを作るにはFBXとかいう形式を使うと上手く行くらしい
576デフォルトの名無しさん
垢版 |
2017/05/05(金) 09:38:04.41ID:Oxs8iPV6
よくわからんがそういうexporterプラグインを探せばいいんじゃね
577573
垢版 |
2017/05/05(金) 10:45:21.12ID:B0vh6n28
お騒がせしてすみません。
Blender歴3時間の私が作った立方体が悪かったみたいです。
フリーの3Dデータをダウンロードしてxファイルでエクスポートしたら表示されました。
モーションさせようとするとクラッシュしますが頑張って解析してみます。
2017/05/05(金) 11:39:35.65ID:EdbXgn/o
>>577
いやFBXにしろ
何言ってるのかわからないレベルならunity使え
579デフォルトの名無しさん
垢版 |
2017/05/05(金) 12:03:08.02ID:j4v/6Dj6
directx12とdirectshowって一緒に使っても大丈夫?
競合とかある?
2017/05/05(金) 12:55:11.99ID:l9qNSIEg
将来性皆無とはいえ、xファイルは良くできたフォーマットなので、勉強にはいいんでないかね
最低限のことはできるし、自分でパーサ作りやすいし

モデルの構造をある程度理解しちゃえば、FBXの読み込みなんてなんてことないわよ
581573
垢版 |
2017/05/05(金) 13:30:05.51ID:B0vh6n28
レスありがとうございます。
現状、Xファイルならマルペケさんのところのサンプルコードを使って
tiny.xというDirectXSDKに付属してるモデルのアニメーションはできてます。
Blenderから出力したXファイルだとアニメーションできないので調べてるところです。

FBXについても調べてみたのですがSDKのサンプルにDirectX9を使うサンプルがなく、
ぐぐってみましたがFBX&DirectX9でアニメーションさせてる記事みたいのがありませんでした。
DirectX9を使ってFBXファイルのアニメーションさせたい場合、
パーサを自力で書くしかないですよね?
であればFBX使うメリットがあんまりわかんないです。恐縮なんですけども。
2017/05/05(金) 13:37:24.35ID:EdbXgn/o
もうunityにしちゃえよ
2017/05/05(金) 13:45:22.88ID:EdbXgn/o
>>581
ゲームモデル用にblenderが十分な出力ができる形式ってFBXしか持ってないはず
blenderのxファイル出力を研究するのは徒労
んな状況なのでガンバレ

無理そうだったらunityな
584573
垢版 |
2017/05/05(金) 14:03:19.75ID:B0vh6n28
>>583
レスありがとうございます。
どうしてもDirectX9じゃないといけないのでどうにかして頑張ります。

Blender以外のソフトでXファイルのアニメーションが再生できるか試してみて、
駄目ならBlenderのExporter作成に挑戦してみて
それでも無理ならFBXのDirectX用パーサ作成に挑戦して、
それも駄目なら独自形式でやるかしようとおもいます(ヽ´ω`)
2017/05/05(金) 14:08:01.43ID:l9qNSIEg
>>581
FBX SDKを使えば、データの読み込みまでは簡単
そのデータを、DirectX側に合わせて割り当てるだけ

割り当て場所が分からないとすれば、まだ勉強不足
(Xファイルのフォーマットはここが非常に分かりやすい。
 逆に、ここを勉強する気がないなら、Xファイルの使用はやめた方がいい)
或いはD3DX系に頼っているためと類推

Xファイルは過去のものな上、当時ですらアニメーション情報までまともに吐けるソフトは数えるほど
最近のデータにも対応してないというデメリット(本当はテンプレートで何でも持てるんですが)

それでもスキンメッシュのアニメーションくらいまではできる、頑張って
2017/05/05(金) 14:38:35.77ID:EdbXgn/o
fbx2xfile
Softimage Mod Tool
とかイケるらしい

どこまでできるか知らんけど
587573
垢版 |
2017/05/05(金) 21:03:58.42ID:b8pnsDMm
度々すみません。
Blenderで出力したアニメーション付きXファイルですがDirectX9で再生できました(涙)

DirectXSDKのサンプルのSkinnedMeshというので確認しました。

SkinnedMeshはアニメーションが複数あった場合、最後のアニメーションを再生するらしく
フリーで拾ってきたモデルは複数のアニメーションが登録されてあって最後のアニメーションが
アニメーションしないアニメーションでした。
そのため最後のアニメーションを削除したら動くのを確認できました
2017/05/05(金) 21:38:52.59ID:EdbXgn/o
>>587
マジで
ちょっと必要なモデルをいくつか作ってみれ
俺はblenderのxfile出力は使えないと昔判断しちゃったけど
その理由が何だったのか思い出せない
今回必要な要件が満たされているなら気にしなくていいっす

すまんこ
2017/05/05(金) 23:24:02.12ID:vIvYu+sd
>>579
ひとつのプロセス内で一緒に使うだけなら特に問題無いけど
VMR9のレンダリングをGPU経由でD3D12のテクスチャに転送したいとかなら
いばらの道ってレベルじゃないと思う
590デフォルトの名無しさん
垢版 |
2017/05/06(土) 00:50:36.42ID:+R/3bcNJ
>>589
おおさんくす
じつは自作ゲーム内(dx12)の松明の火を
directshowで火の動画ファイルからサンプルグラバで毎フレーム取得して
透明ポリゴンに貼り付けって感じでずっとやってたんだけど
最近グラフィックデバック時にエラーが発覚して
directshowが直接の原因かははっきりしてないんだけどその処理をやらないでいると
エラーが起こらなくて何か関係あるのかなと・・
591デフォルトの名無しさん
垢版 |
2017/05/06(土) 00:55:37.14ID:+R/3bcNJ
連投で申し訳ないんだけども必死でググっても中々解決法が出なくて・・
グラフィックデバック使用時にCreateCommittedResourceで
ToolExseptionで例外出す時あるんだけどもこれってどういう意味なの?
2017/05/08(月) 08:39:33.28ID:l64qstYx
例外は別原因では?
12はようしらんが、GPUにメモリ確保しようとして失敗するなら
・割り当てを指示したデバイスがない
・デバイスが指定した条件のメモリを確保できない
・メモリ確保量が大きい
・アライメントに丸まってない
・非対応のカラーフォーマット
とか、そんなんな気がする。

パラメータを提示した方が答えが得やすそう
2017/05/08(月) 08:41:42.49ID:l64qstYx
12に特有な原因としては、マルチアダプタに起因するものかな。
複数のデバイス両方でアービトレーションしたら使える機能が制限されるとか
594デフォルトの名無しさん
垢版 |
2017/05/09(火) 00:54:37.17ID:4qu//mHB
>>592
>>593
コメントありがとうございます。
頂いたコメントを元にまた調査いたします。
595デフォルトの名無しさん
垢版 |
2017/05/10(水) 22:32:35.54ID:GKVWngMD
ちょっと質問宜しいでしょうか・・
12何ですが描画をし始めて7分くらい経過すると
C++ の例外: _com_error (メモリの場所 0x024..
というのが連続で出始めるんですが一般的な原因として
何が考えられるんでしょうか?
2017/05/10(水) 23:12:10.14ID:uBVCYrn/
>>595
お前のコードが糞
マジでそれ以外ありえない
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況