【C++】 DirectX初心者質問スレ Part41 【C】

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/03/23(金) 15:24:12.95ID:1IsbON+l
回答する人も、質問する人も必ず読んでください

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

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

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


【C++】 DirectX初心者質問スレ Part40 【C】(c)2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1474782237/

>>2リンク
269デフォルトの名無しさん
垢版 |
2019/02/16(土) 17:44:32.02ID:mSqP7pCT
GPUからメモリコピー
2019/02/17(日) 15:11:56.02ID:LXnac+6v
きちんと解説ある本を読んで勉強しないと難しいのに新しいバージョンは日本語の本がない
そして古い本に附属してるライブラリは今の環境だとすんなり使えなかったりするから結構詰んでる
素直にunity使うのが一番効率よく勉強できると思うわ
c++に拘るならdirectxやってもいいとおもうけど
271デフォルトの名無しさん
垢版 |
2019/02/18(月) 12:58:57.59ID:cZFby2gr
日本語で出ても余計判りにくくなることの方が多い
日本語だから判りやすいとは限らない
2019/02/18(月) 13:03:50.23ID:FBBcnjVG
どっかの会社のページでやってる機械翻訳とかひでえしな
273デフォルトの名無しさん
垢版 |
2019/02/18(月) 13:21:33.63ID:cZFby2gr
エラーを取得するには関数を使います
2019/02/18(月) 21:47:25.83ID:MbhScpEW
>>273
フイタw
2019/02/18(月) 23:14:05.57ID:50gUMIDo
確かにその通りで正しいんだが

んだが
2019/02/19(火) 06:25:19.87ID:DhLDQBZX
ヘリコプターがシアトル付近を飛行中に、ナビゲーション・システムと
通信系が故障してしまい、現在位置を把握することができなくなって
しまった。機長は、近くに見えた高いビルにヘリコプターを寄せ、周りを
旋回しながら、副操縦士に「私は今どこにいますか?」と大きな紙に書かせ、
それをビルの中の人間に見せるように命じた。
ビルの中の人間は、大きな紙に「あなたは今、ヘリコプターの中です」と
書いて答えてきた。機長はにっこりと笑って手を振り、副操縦士に言った。

「あれはマイクロソフトの本社ビルだ。ここから東へ向かえば空港が
あるはずだ」
「どうしてマイクロソフトの本社ビルだと分かったんです?」
「奴らはいつも、技術的には完璧だが、まったく役に立たない答えしか
寄こさないからさ」
2019/02/19(火) 06:55:40.00ID:9FBe/JT+
>>275
んだが?
278デフォルトの名無しさん
垢版 |
2019/02/19(火) 12:30:36.63ID:1Fqwt8so
>>276
どこで観たか忘れたけどどこかで観たコピペ
2019/02/19(火) 19:28:09.94ID:4FexZV5t
>>276
ワロタw
2019/02/19(火) 22:54:24.29ID:fjUuFMdi
面白い
2019/03/14(木) 02:03:51.93ID:k2rjMpcY
DirectX12のwindows7対応って今更何がしたいのかさっぱり理解出来ないな
2019/03/14(木) 02:37:09.83ID:KGoVXtPG
常に我々の想像の斜め下を行くのがMicrosoftという会社なのだよ。
283デフォルトの名無しさん
垢版 |
2019/03/14(木) 11:30:54.43ID:s2YvJJWc
GL4 > DX12
ですか?
2019/03/14(木) 11:40:31.87ID:nYszdZlz
Windows10への移行が進まないのでまたWindows7からやり直す気になったんだな。
殊勝なこった。
285デフォルトの名無しさん
垢版 |
2019/03/14(木) 11:46:27.76ID:gZUdQ9Pv
test
https://mevius.5ch.net/test/read.cgi/tech/1402805092/
2019/03/14(木) 16:28:05.55ID:4yIsYmxe
ほんまマジ7永続化しないかな
10使ってるけどクソすぎて腹立ってる
2019/03/16(土) 02:22:17.59ID:FF9DOeDg
>>284
>>281はwindows7なんてもう3割切ってるのになんで今更って意味だったんだけどな
2019/03/16(土) 02:34:49.06ID:EXqPfFKm
ごめん>>284だと思ってた
2019/03/19(火) 11:14:30.65ID:3vrqfuIl
自分は、もう最新のDirectXの開発から身を引いている者なのですが、
下記のニュースにて、Windows7でDirectX Raytracingが
動作するのではと思いました。
ttps://www.4gamer.net/games/033/G003329/20190314031/
290デフォルトの名無しさん
垢版 |
2019/03/20(水) 11:12:13.30ID:h/GW8QOA
pyopenglってあるけどpydxってある?
2019/03/22(金) 01:48:43.46ID:EWL/taeN
Havokってマイクロソフトから音沙汰内からそのまま消えるのかと思ってた

https://automaton-media.com/articles/newsjp/20190319-87672/
2019/03/22(金) 20:20:37.10ID:uuuO+xYB
質問です。
IDirect3DDevice9::Reset を呼び出すと、
D3DPOOL_SYSTEMMEM や D3DPOOL_SCRATCH で作成したテクスチャも消失しますか?
2019/03/23(土) 00:15:23.81ID:G5bW2EJf
>>292
しないよ
2019/03/23(土) 00:33:31.63ID:cVTLhDAF
>>292
するよ
2019/03/24(日) 18:48:01.60ID:WJlW+twg
>>292
お礼も言えないのか情けない
2019/03/24(日) 21:33:35.30ID:WKxcwvjT
いえ、すいません、
結局どっちかわからなかったもので・・・
2019/03/24(日) 21:38:24.49ID:WKxcwvjT
>>293
>>294
ご回答ありがとうございます。
自分でも調べたところ、D3DPOOL_SYSTEMMEM で作成したテクスチャは内容が消失しているように思えました、
ただ、自分のプログラムが間違っているだけかもしれないですが・・・
2019/03/24(日) 22:46:32.62ID:FpMCPtqa
どーしても9でやらんといかんのか
2019/03/24(日) 23:24:26.18ID:WKxcwvjT
はい、もう9で色々作ってしまっているのと、WindowsXPで動かしたいので
2019/03/24(日) 23:57:30.44ID:z21lQS4L
>>297
うんまあ、どんな検証コード使ったのかしらんが結論がそれなら間違っとるな
301デフォルトの名無しさん
垢版 |
2019/03/25(月) 02:31:06.53ID:MuEFgcsw
C/C++の使い方間違ってそう
2019/03/25(月) 06:03:00.51ID:9PsZkemJ
やはり間違ってますか。テクスチャ自体は消失してませんでしたが、
内容がおかしなグラフィックになっていました・・・
ご回答ありがとうございます。
>>294さんのご意見も聞きたいです。
2019/03/26(火) 00:15:35.28ID:vv/6sgs4
おまいらアフォか
IDirect3DDevice9::Reset を呼び出すと、すべてのテクスチャ メモリ サーフェイスが消失し、管理下のテクスチャがビデオ メモリからフラッシュされ、すべてのステート情報が失われます。
ってヘルプに書いてあるだろ
2019/03/26(火) 00:54:58.78ID:ocCrckc4
MSに限らずだけどフラグが明示されていないようなドキュメントの言い回しは鵜呑みにしない方が良いのよねえ

https://docs.microsoft.com/en-us/windows/desktop/direct3d9/lost-devices

> All video memory must be released before a device can be reset from a lost state to an operational state.
> This means that the application should release any swap chains created with IDirect3DDevice9::CreateAdditionalSwapChain
> and any resources placed in the D3DPOOL_DEFAULT memory class.
> The application need not release resources in the D3DPOOL_MANAGED or D3DPOOL_SYSTEMMEM memory classes.
2019/03/26(火) 01:11:40.91ID:qhv8bmdJ
情報ありがとうございます
ResetするのにD3DPOOL_SYSTEMMEMを解放する必要はないが、
テクスチャの内容は保障しないよって事なのかなぁ・・・
2019/03/26(火) 19:23:37.37ID:NbUyZWCM
誰でも頭が良くなる、プログラムが書けるようになる方法が発見される 79249
https://you-can-program.hatenablog.jp
2019/03/31(日) 01:58:01.43ID:ho8kk4O0
NOTE: As of 29 Mar 2019, SharpDX is no longer being under development or maintenance

終わってしまった
308デフォルトの名無しさん
垢版 |
2019/04/04(木) 10:48:34.03ID:4Pg7/9jZ
dllimport
http://edom18.hateblo.jp/entry/2018/02/21/120758
309デフォルトの名無しさん
垢版 |
2019/04/04(木) 11:46:51.89ID:4Pg7/9jZ
https://qiita.com/exliko/items/e458c26a2e2389580872
native
https://chirotec.hatenablog.com/entry/2018/06/17/212551
https://qiita.com/imura/items/39334a02bb77bdef9e91
310デフォルトの名無しさん
垢版 |
2019/04/04(木) 11:47:21.31ID:4Pg7/9jZ
http://tecotec-engineer.hateblo.jp/entry/2017/07/27/201832
https://blog.applibot.co.jp/2018/10/31/grpc-in-unity/
2019/04/07(日) 01:22:55.36ID:LKp1E5sS
DX11勉強中で定数バッファの扱いがよくわからないので教えて欲しいです
これは別々に複数個用意しておいて、シェーダと同様にその都度セットし直すものなのでしょうか?
ネットに落ちてるサンプルを色々と見ているのですが、カメラ行列だけを入れている物もあれば、併せて材質色やライティング用のパラメータを入れている物もあって混乱しています
2019/04/07(日) 03:34:29.88ID:27fxqR4U
必要なものをその都度送ればいいよ
セットしたシェーダが変わらない上に定数バッファの内容も変わらないなら送り直す必要は無いはず
変えたいときに送る
313デフォルトの名無しさん
垢版 |
2019/04/07(日) 06:02:21.50ID:q0gI4Bxg
>>312
回答ありがとうございます
土日の内に最低限の描画パイプラインを用意しておきたかったので助かります
2019/04/07(日) 12:17:02.24ID:xl9NNqpd
vs2019ほんとに軽くなってて驚いたんだけど
ここ数年中の人らは何やってんだってレベル
2019/04/07(日) 13:54:29.00ID:vK2HJm7v
開発者としてはやる気が削がれる感想だな
2019/04/07(日) 19:26:52.08ID:qKbFEigK
みんな、NTやVistaを思い出すんだ
2019/04/09(火) 12:17:36.92ID:39tv23SA
この板にはMSを持ち上げる記事が多いな。
まるでMS社員が書いているかのようだ。
2019/04/09(火) 19:19:20.98ID:2fmMiie1
>>317
初心者スレなどにふらりと現れてスレとは無関係の稚拙な演説を垂れ流し
「MSには潰れて欲しい」などと呪詛を吐いて去っていく怨霊みたいな輩はよく見かける
319デフォルトの名無しさん
垢版 |
2019/04/10(水) 12:54:35.85ID:87jhN1vD
【高感度が高い会社】
https://toyokeizai.net/articles/-/273471
1位セブンイレブン、2位トヨタ、3位無印良品、4位イオン、5位ニトリ、
27位ソニー、35位任天堂、
71位アップル ***
167位タカラトミー、169位セガ、
181位マイクロソフト ***
194位バンダイナムコゲームス、
197位コナミ、234位スクウェア・エニックス、251位カプコン、293位レベルファイブ
320デフォルトの名無しさん
垢版 |
2019/04/10(水) 12:57:23.01ID:87jhN1vD
39位、東急ハンズ
40位、アマゾンジャパン  ***
41位、楽天
42位、セイコー
43位、雪印メグミルク
44位、Google  ***
45位、伊藤園
321デフォルトの名無しさん
垢版 |
2019/04/10(水) 13:00:11.85ID:87jhN1vD
トヨタ>SONY>任天堂>amazon>楽天>セイコー>Google>アップル>
タカラトミー>セガ>マイクロソフト>バンダイナムコゲームス>
コナミ>スクウェア・エニックス>カプコン
2019/04/10(水) 14:50:59.28ID:9YALwuYf
感度が高いことを高感度という
高感度が高いとか危険が危ないとか
変な言葉遣いやめれ
2019/04/10(水) 17:43:05.02ID:kdQMwufV
>>322
あなたは中国人か何か?
2019/04/10(水) 17:53:17.49ID:9YALwuYf
>>323
なぜそゆこと聞くアルか?
2019/04/11(木) 00:40:22.08ID:2BS9kfoy
実は漢字が間違っていただけで、「高感度」ではなくて、正しくは、
「好感度が高い会社」
326デフォルトの名無しさん
垢版 |
2019/04/11(木) 09:35:27.51ID:bTGeujWN
ァィャー
2019/05/16(木) 11:35:16.07ID:14JA99+8
すみませんつかぬことをお聞きしますが、

テクスチャをピクセル毎に分解して自由に動かしたいんです。

要はピクセル数分の?ゾリューションをもった板ポリに一ピクセルづつ
テキスチャを割り当てればいいんじゃないかと思ってるんですが、

shader内で書く際にどういった書き方をすればいいかどなたかご指南ただけませんか。
あと考え方が間違ってたら指摘して頂けると助かります。
328デフォルトの名無しさん
垢版 |
2019/05/16(木) 12:03:47.64ID:Ox4fjiQE
テクスチャは一枚でよくね
2019/05/16(木) 19:02:18.71ID:1FTKDnmE
何がしたいかわからんけどポイントスプライト使ってみるとか
2019/05/17(金) 07:11:21.55ID:bam7LHTg
>>328

テクスチャは一枚です。

>>329

要はテクスチャを一ピクセル毎に分解して、それをパーティクル状に自由に動かしたいのです。
その前段階として、板ポリにテクスチャのピクセルを一つ一つ割り当てたいのです。
2019/05/17(金) 07:21:03.82ID:5vJNf7cS
別に1ピクセルだろうが板ポリにUV座標していする一般的なスプライトと同じ実装で良いと思うが
2019/05/17(金) 10:22:40.73ID:bam7LHTg
ポインスプライト実装でできました。
有難うございました!
2019/05/25(土) 16:17:49.68ID:P9kv6fd4
行列計算ってのがよくわからないんですが、簡単にどういうことをするのか教えてください
((0,0,0)(0,0,0)(0,0,0))
こういう行列があったとしたら
vector3(10,10,10) += gyouretsu[1]
などとすることで、2番目の列にvector3が代入されるかと思います
これってなんの意味があるんですか?

3dにおいてどういうシチュエーションで必要7日イメージがワキません
godot使用です
334デフォルトの名無しさん
垢版 |
2019/05/25(土) 16:48:26.68ID:997oQV33
逆行列無いから意味無いで
2019/05/25(土) 16:58:28.00ID:WTzpeFf8
>>333
> 代入されるかと思います
されない

> なんの意味があるんですか?
自分からなんの意味もないコードを見せておいて何言ってんだ?

ここはDirectXスレだ
他のスレをあたれ
どのスレが適切かは自分で考えろ
336デフォルトの名無しさん
垢版 |
2019/05/25(土) 17:24:26.26ID:MU6iVjMm
ブレンドステートオブジェクトのRenderTagetって
RenderTarget[0]以外使うにはどうすればいいですか。
337デフォルトの名無しさん
垢版 |
2019/05/25(土) 18:50:30.35ID:MU6iVjMm
すみません
よく考えたらいらなさそうなのでやっぱりいいです。
時間を取らせてしまったのなら申し訳ありません。
338デフォルトの名無しさん
垢版 |
2019/05/29(水) 21:18:56.08ID:CfbGvgRn
PIX for Windowsを使ってみたのですが、以下のようなエラーが出てしまいました。

・・・・
Frame 000001 ........POST: <S_OK><this=0x04f731e0> IDXGISwapChain::GetBuffer(0, IID_ID3D11Texture2D, 0x005EF60C)
Frame 000001 ........PRE: <this=0x04f2de08>ID3D10Texture2D::Map(6223320, Unknown D3D10_MAP, 6223436, 0xCCCCCCCC)
D3D11 CORRUPTION: ID3D10Texture2D::Map: Fourth parameter is corrupt or NULL. [ MISCELLANEOUS CORRUPTION #16: CORRUPTED_PARAMETER4]
An unhandled exception occurred.
Closing Run File

どうすれば改善できますか。
GetBufferのあたりはこんな感じです。

HRESULT hr;

// スワップ・チェインから最初のバック・バッファを取得する
ID3D11Texture2D* pBackBuffer; //バッファのアクセスに使うインターフェイス
hr = pSwapChain->GetBuffer(
0, // バック・バッファの番号
__uuidof(ID3D11Texture2D), // バッファにアクセスするインターフェイス
(LPVOID*)&pBackBuffer); // バッファを受け取る変数
339デフォルトの名無しさん
垢版 |
2019/05/29(水) 21:25:35.46ID:CfbGvgRn
ちなみに
ID3D10Texture2D::Mapを呼び出した覚えはないです
GetBufferなら使いました。
2019/05/30(木) 08:06:03.66ID:bb+aWtrz
4つ目の引数が、0xCCCCCCCC だから!
341デフォルトの名無しさん
垢版 |
2019/05/30(木) 17:04:06.51ID:FYbqwzZe
>>340
回答ありがとうございます。
ID3D10Texture2D::Mapの4つ目の引数がおかしいとエラーで出てきているのはわかるのですが、
引数が4つのMap関数が見当たらないのですが
引数が5つの奴ならあります。

HRESULT hr;
D3D11_MAPPED_SUBRESOURCE MappedResource;
hr = pImmediateContext->Map(
pCBuffer[ID], // マップするリソース
0, // サブリソースのインデックス番号
D3D11_MAP_WRITE_DISCARD, // 書き込みアクセス
0, //
&MappedResource); // データの書き込み先ポインタ
↑の内部でID3D10Texture2D::Mapが呼び出されていたりするのでしょうか。
342デフォルトの名無しさん
垢版 |
2019/06/06(木) 12:19:41.96ID:hSaNNShT
しょーもないゲームを自分で作って周りに見せて喜んでるだけなので
バージョン8を使い続けてるけどヤバイ?急に動かなくなることある?
343デフォルトの名無しさん
垢版 |
2019/06/06(木) 12:21:12.48ID:vdYhIH7X
さすがに9未満は知らんわ
2019/06/06(木) 12:23:51.62ID:hSaNNShT
>>343 今んとこはWin10でも元気に動いてる。マイクロソフトも非推奨?
345デフォルトの名無しさん
垢版 |
2019/06/11(火) 04:05:17.78ID:1utxNven
DirectX8だとSDKも8のSDKで作ってるの?あとVisual Studioのバージョンは?

まあVC6+DirectX SDKの7で作ったやつがソース変更ナシかほぼナシで
VS2008+DX11でビルドできた覚えがあるから大して意味のある質問ではないかもしれないけど
2019/06/12(水) 11:03:28.52ID:zoFa+KX6
パーティクルトレイルってやっぱ見てるだけでかっけーってなるんですけど、
実装するにはどういう考え方たしたらいいですか?
347デフォルトの名無しさん
垢版 |
2019/06/12(水) 11:30:40.77ID:tqvE0DW+
うまー
http://daiki-evilone.hatenablog.com/entry/2017/02/28/151136
https://www.sawalemontea.com/entry/2017/09/09/133000
https://docs.unity3d.com/ja/current/Manual//PartSysTrailsModule.html
2019/06/12(水) 11:38:18.03ID:zoFa+KX6
>>347

有難う
ただパーティクルシステムを基にUnityの機能じゃなくてジオメトリシェーダかなんかで
プログラマブルにやりたいんです。
環境はvvvv、windows10
349デフォルトの名無しさん
垢版 |
2019/06/12(水) 11:50:23.19ID:tqvE0DW+
>実装するにはどういう考え方

が描いてあるから貼った
2019/06/20(木) 10:08:17.58ID:MGTUiFfb
>>344
もう11以降使ってない奴はマイクロソフトとかじゃなくAMDとか普通にバグあっても
直さない宣言してるからな
2019/07/13(土) 11:48:07.77ID:mwaE/2px
12でそれなりの描画が実装できたけど、やはり複雑。
ルートシグネチャ、シェーダ、ディスクリプタで器を決めて、頂点、索引、定数、テクスチャをGPUにロード。
ディスクリプタにテクスチャ、定数を入力にbind、描画ターゲットと深度ステンシルを出力にbind。
頂点と索引、シェーダを専用スロットに繋いで、コマンドリストに描画命令をいれる。
リストはあロケータから取り出して、 コマンドキューに入れる。
コマンドキューにシグナルいれて、フェンスで完了を確認する。

コマンドキューはスレッドに一つづつのインスタンスを持たせて、コマンドリストはコマンドキューに複数突っ込んでもよいが、複数のコマンドキューに容れてはならない。

描画ターゲットと深度ステンシルは、たんなるメモリだが、テクスチャとして扱うので、参照保護のためにアクセス前にはバリアを遷移させて状態を明示的に制御する。

マルチレイヤの合成、オフラインサーフェスへの描画、スワップチェインから取り出したバックバッファへの描画、present。

一枚書くだけでもしんどいな
352デフォルトの名無しさん
垢版 |
2019/07/13(土) 11:58:32.38ID:mwaE/2px
字形は字形でFT使っているから、プロセッサメモリにレンダリングしてGPU上のテクスチャと宣言したメモリをマップしてアップロード。
それをパイプラインで扱うからテクスチャを参照する頂点バッファにテクスチャマップさせたポリゴンを容れる。

ウィンドウ処理(2d処理)を3dで扱うためひUV座標も手前で計算。
欲を出して、ウィジェットのパーツを1メッシュで扱えるようにして、1ウィジェットをジオメトリ扱いで管理し始めたら
吐きそうほどの複雑な実装になりました。

行数で30万ステップぐらいか?
セミコロンは、そろそろ100万いけそう
2019/07/13(土) 13:01:33.24ID:z78jYeW/
それだけの苦労をして得られるパフォーマンスは、
DX11に比べて如何ほどなのだろうか・・・?
354デフォルトの名無しさん
垢版 |
2019/07/22(月) 07:40:47.32ID:NFxt+0t6
一概には言えない。
よく言われる通り、コマンドキューとコマンドリストを複数持って並列に実行させられるから、GPUを無駄なく使うようにしやすい。

200の入力を3回するには、600の計算量となるが、それをシーケンシャルにやれば600時間単位係り、それを並列に計算できるなら3並列で200時間単位にまで落とせるかも知れない。
描画バス、遅延レンダリング(深度バッファシャドウ)なんかは前段の計算が完了する要件があるから並列できない。
ジオメトリやメッシュを描画する部分が適用しやすい。
つまりフレームレートに影響するのは、ポリゴン数と描画ターゲットの解像度。APIセットが計算性能に与える影響は大きくない。
APIセットは、ドライバとハードウェア設計を楽にした上で、オープン規格でプログラムをコーディングしやすくするもの。
12の良いところは、GPUを直接触るような気持ちよさだと思う
2019/08/14(水) 20:10:09.93ID:uomW9+HI
oggファイルをSlimDXのXAudio2で演奏しようとして、Ogg Vorbisを使って見たのですが、
ov_readで取得したchar *bufferをMultimedia::WaveStreamに入れこむ方法がわかりません
かなりスレ違いな質問だと思いましたが、適当なスレが見つからなかったので
2019/08/15(木) 15:20:56.41ID:JLpJCumi
>>355
なにも考えずに、そのまま複写する。
オッグぽルヴィスから取り出した時点でPCMチャンクになるはず。
気にするべきはチャネル数、量子化ビット数、サンプリングレート、フレーム(チャンクのデータ量、バイト数)を合わせること。

なお、詰まりやすいのは、サンプリングレート。
単純にデバイスが対応していれば良いが、非対応なら自力でリサンプリングする必要。
基本は、デバイスが対応しているサンプリングレートのデータをなんからのコンバータで変換した音源を用意する。

ちなオーディオプレーヤーなんかを書く場合は、入力音源のサンプリングレートを絞ると使えないツールになるから、リサンプリングが必須。
リサンプリング機能は、インストールされたCODECに依存するが、ウィンドウず標準のコーデックは使いにくい。

商用ゲームがセガ?のAMのファームを使うのは、このあたりに関係してんのかも。

ちらうら
357355
垢版 |
2019/08/16(金) 21:48:05.02ID:wxfU4TEg
WaveStreamを作成するときにヘッダー情報を入れてないだけでした。すんません

SlimDXのサンプルコードでは、AudioBufferにWaveStreamをそのまま入れているけど、ヘッダー情報を除いたStreamが正解ですよね?
ov_readで取得したデータでMemoryStreamを作成してAudioBufferに入れたら演奏できました
358デフォルトの名無しさん
垢版 |
2019/08/17(土) 10:03:25.52ID:BwITc4Uh
おま環

前半のような勘違いをしてる知能だと後半でも勘違いしてる可能性大
2019/08/17(土) 20:22:39.40ID:BIBNoJLn
>>357
音が出たならそれでいいかと。
チャンクのゴミはコーデックのハイパスフィルターで除去される。
ストリームにヘッダー情報が来るようなAPIはないと思う。
サンプルがファイル処理をやってんだと思う。
2019/08/17(土) 21:55:59.22ID:3MCL9drT
DirectX11でレンダーターゲット(画面全体)にシェーダを適用する方法を教えていただけませんでしょうか

板ポリゴンにシェーダを適用する方法は分かるのですが…
画面全体にピクセルシェーダを使って「GLSL Sandbox」のようなことがしたいです
ググったのですが、そういうサイトを見つけられませんでした
361デフォルトの名無しさん
垢版 |
2019/08/17(土) 23:37:46.48ID:BIBNoJLn
>>360
・シェーダで一切行列を使わない
・射影座標(-1〜+1)の範囲で頂点座標を指定して頂点配列を作る
要点はこの二つ

細かい点は
・ビューポートはウィンドウサイズに合わせる
・描画ターゲットはスワップチェインから取り出す
・深度ステンシルは取り敢えず忘れる
・固定機能ステートはすべてデフォルト値でつくり、コンテキストに設定する
・シェーダーは、とりあえずバーテックスとピクセルのみ(中身はパススルー。入力頂点要素複写だけにする)

あとD3D11デバイスだったかコンテキストとスワップチェインを同時につくるAPIがあるから、ネットサンプルを参考にせず、そっちを使う。
362デフォルトの名無しさん
垢版 |
2019/08/17(土) 23:52:33.15ID:BIBNoJLn
描画するまでに最低限やることリスト
・デバイス、コンテキスト、スワップチェインを作る
・スワップチェインから描画ターゲットを作る
・コンテキストに固定機能ステート(ラスタライズ、ブレンド)を設定
・コンテキストにシェーダー(バーテックスとピクセル)を設定


描画ループ(最適化なし))
・コンテキストに入力頂点配列レイアウトをつける
・コンテキストに入力プリミティブを指定する
・入力する頂点配列に適したdrawを呼ぶ
・スワップチェインにフロントとバックバッファを切り替えるようにつたえる(present)

必須なのは、このあたり。
やっちゃダメなこと
・神に祈るな
2019/08/18(日) 00:13:51.13ID:8LEpKI7v
>>361
ありがとうございます!
おっしゃるとおりVertexBufferで-1.0〜1.0の範囲の4頂点を作って、VertexShaderで行列を使わずにそのままinput→outputするだけでいけました

数時間悩んでたのですがスッキリしました
基礎が全然分かってないことに気づきました
ありがとうございました
2019/08/18(日) 01:20:27.90ID:0Ob94YMj
>>363
おめめ!
そこがわかれば、射影行列、ビュー行列、ワールド行列と芋づる式に理解できる。
射影行列は、行列で指定した範囲の8つの角をそのデバイス座標空間に納めるように座標変換する計算を指す。
その-1から+1の範囲の外におかれた頂点はラスタライズされなくなる。(ピクセルシェーダーに送られない)
2019/08/22(木) 00:48:20.80ID:Wwh8yM4I
(チラ裏)
VulkanとDirect3D12の両方でオフラインサーフェースへのレンダリングとレイヤ合成しての描画は実装できるようなったけど、
UnityやUnrealで使われているスクリプトやデータ構造を使ったレンダリングパスの可変実装ってのは、
必須なんだな、ってシミジミと感じる。

・平面に描画するパス(1:n)
・立体を描画するパス(1:n)
・立体に影を付けるシャドウマップ用の計算目的のパス(1:n)
・字形をプロセッサで描画したテクスチャをGPUに流し込むパス(1:n)
・ウィンドウ(をウィジェット単位に)描画するパス(n:n)
・上記を合成してスワップチェインに描画するパス(n:n)

今まで描画パスは全部個別にC++で書いていたが、
動的に「描画ターゲット」「シェーダ」「ブレンディングに代表される固定機能ステート」をスクリプトや外部データ参照で実装できるようにしないと
映像的な演出を工夫する際のコード実装でコード量が爆発しそう。
ウィンドウ処理は、描画ターゲットを複数枚要求し、立体の描画は描画ターゲットが一枚でもいいが、複数のジオメトリとポリゴン集合別のブレンディングパラメータを欲する。

やっぱりUnityは、よく出来ている。
366デフォルトの名無しさん
垢版 |
2019/08/22(木) 09:44:48.00ID:xQsiKIbM
○|○|
2019/08/23(金) 21:30:01.80ID:Fmpmi7jg
>>363
いえいえ
お礼なんて入りませんよ
368デフォルトの名無しさん
垢版 |
2019/08/24(土) 09:30:16.20ID:u2q8uNB0
お礼は要らない
お札は要る
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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