【C++】 DirectX初心者質問スレ Part41 【C】
■ このスレッドは過去ログ倉庫に格納されています
回答する人も、質問する人も必ず読んでください
これらに当てはまる人のための質問スレです。
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リンク ご回答ありがとうございます。
テッセレーションを実現したとしても、
期待している効果は得られない可能性があるということですね。
もっと勉強します。 >>237
ヘキサの人のソースコードがあるのかとちょっとわくわくして開いたらバイナリのみでワロタ DirectXかあ、懐かしいなあ
今はどうなってるんだろう レイトレというても、遅延シェーディングのことだけど。
バルカンでも11でも実装できる。
専用回路があるわけじゃない。
リアルタイムに反射成分を決める因子(陰面遮蔽、拡散反射、鏡面反射なんか)を計算して、2パス目でそれを参照して輝度を決める。
ビューの一面から見たポリゴンの成分を計算するから、これでそれっぼい陰影がだせる。
でもプリレンダしたライトマップのテクスチャの方が早くてリアル。 SpriteFontって描画の時にサイズ指定できないの? DirectX11なんですが、単なるトランスフォーム済みのテクスチャ貼り付けた板ポリを移動させるとして
1 頂点バッファをMapして毎回座標情報を書き換える
2 頂点バッファはいじらず、定数バッファに差分の移動量x,yを入れて更新し、毎回GPUに最終座標を足し引きさせる
感覚的には後者の方が良さそうなんですが、どっちが速いですかねぇ
自分でも実験したのですが、やり方悪いのか毎回100〜300msecくらい余裕で誤差が出て参ってます
誤差込みで、ほとんど変わらない印象なのでどっちでも良さそうではあるのですが、
ここまで来ると気になっちまって…… これからdirectxを始めようと思うんだけど
どのバージョンでやればいいか教えて下さい。
サイト見てるとdirect9が一番参考書が多くておすすめって書いてあるけど
このスレ読んでると11か12の方がいいですか? 12でええんでない?
もうwin7のサポートなくなるし 11が良いし、たぶんそれで十分。
12に行く前にUnityに行っちゃうかもねw >>257です。
画像の描画
画像でアニメーション
フォントの設置
カーソルがフォントの上に来たら光る
wavの再生
上記の事をやりたいです。
ほぼ無知なので
これからどのバージョンで勉強しても挫折すると思うので
direct 3d12使おうと思います。
申し訳ないですが
皆さんは、どうやってでdirect12の勉強をしていますか?
書籍の参考書がなかったのでお願いします。 画像データの各ピクセルの色情報ってどうすれば取得できますか? きちんと解説ある本を読んで勉強しないと難しいのに新しいバージョンは日本語の本がない
そして古い本に附属してるライブラリは今の環境だとすんなり使えなかったりするから結構詰んでる
素直にunity使うのが一番効率よく勉強できると思うわ
c++に拘るならdirectxやってもいいとおもうけど 日本語で出ても余計判りにくくなることの方が多い
日本語だから判りやすいとは限らない どっかの会社のページでやってる機械翻訳とかひでえしな ヘリコプターがシアトル付近を飛行中に、ナビゲーション・システムと
通信系が故障してしまい、現在位置を把握することができなくなって
しまった。機長は、近くに見えた高いビルにヘリコプターを寄せ、周りを
旋回しながら、副操縦士に「私は今どこにいますか?」と大きな紙に書かせ、
それをビルの中の人間に見せるように命じた。
ビルの中の人間は、大きな紙に「あなたは今、ヘリコプターの中です」と
書いて答えてきた。機長はにっこりと笑って手を振り、副操縦士に言った。
「あれはマイクロソフトの本社ビルだ。ここから東へ向かえば空港が
あるはずだ」
「どうしてマイクロソフトの本社ビルだと分かったんです?」
「奴らはいつも、技術的には完璧だが、まったく役に立たない答えしか
寄こさないからさ」 >>276
どこで観たか忘れたけどどこかで観たコピペ DirectX12のwindows7対応って今更何がしたいのかさっぱり理解出来ないな 常に我々の想像の斜め下を行くのがMicrosoftという会社なのだよ。 Windows10への移行が進まないのでまたWindows7からやり直す気になったんだな。
殊勝なこった。 ほんまマジ7永続化しないかな
10使ってるけどクソすぎて腹立ってる >>284
>>281はwindows7なんてもう3割切ってるのになんで今更って意味だったんだけどな 自分は、もう最新のDirectXの開発から身を引いている者なのですが、
下記のニュースにて、Windows7でDirectX Raytracingが
動作するのではと思いました。
ttps://www.4gamer.net/games/033/G003329/20190314031/ 質問です。
IDirect3DDevice9::Reset を呼び出すと、
D3DPOOL_SYSTEMMEM や D3DPOOL_SCRATCH で作成したテクスチャも消失しますか? いえ、すいません、
結局どっちかわからなかったもので・・・ >>293
>>294
ご回答ありがとうございます。
自分でも調べたところ、D3DPOOL_SYSTEMMEM で作成したテクスチャは内容が消失しているように思えました、
ただ、自分のプログラムが間違っているだけかもしれないですが・・・ はい、もう9で色々作ってしまっているのと、WindowsXPで動かしたいので >>297
うんまあ、どんな検証コード使ったのかしらんが結論がそれなら間違っとるな やはり間違ってますか。テクスチャ自体は消失してませんでしたが、
内容がおかしなグラフィックになっていました・・・
ご回答ありがとうございます。
>>294さんのご意見も聞きたいです。 おまいらアフォか
IDirect3DDevice9::Reset を呼び出すと、すべてのテクスチャ メモリ サーフェイスが消失し、管理下のテクスチャがビデオ メモリからフラッシュされ、すべてのステート情報が失われます。
ってヘルプに書いてあるだろ 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. 情報ありがとうございます
ResetするのにD3DPOOL_SYSTEMMEMを解放する必要はないが、
テクスチャの内容は保障しないよって事なのかなぁ・・・ 誰でも頭が良くなる、プログラムが書けるようになる方法が発見される 79249
https://you-can-program.hatenablog.jp NOTE: As of 29 Mar 2019, SharpDX is no longer being under development or maintenance
終わってしまった DX11勉強中で定数バッファの扱いがよくわからないので教えて欲しいです
これは別々に複数個用意しておいて、シェーダと同様にその都度セットし直すものなのでしょうか?
ネットに落ちてるサンプルを色々と見ているのですが、カメラ行列だけを入れている物もあれば、併せて材質色やライティング用のパラメータを入れている物もあって混乱しています 必要なものをその都度送ればいいよ
セットしたシェーダが変わらない上に定数バッファの内容も変わらないなら送り直す必要は無いはず
変えたいときに送る >>312
回答ありがとうございます
土日の内に最低限の描画パイプラインを用意しておきたかったので助かります vs2019ほんとに軽くなってて驚いたんだけど
ここ数年中の人らは何やってんだってレベル この板にはMSを持ち上げる記事が多いな。
まるでMS社員が書いているかのようだ。 >>317
初心者スレなどにふらりと現れてスレとは無関係の稚拙な演説を垂れ流し
「MSには潰れて欲しい」などと呪詛を吐いて去っていく怨霊みたいな輩はよく見かける 【高感度が高い会社】
https://toyokeizai.net/articles/-/273471
1位セブンイレブン、2位トヨタ、3位無印良品、4位イオン、5位ニトリ、
27位ソニー、35位任天堂、
71位アップル ***
167位タカラトミー、169位セガ、
181位マイクロソフト ***
194位バンダイナムコゲームス、
197位コナミ、234位スクウェア・エニックス、251位カプコン、293位レベルファイブ 39位、東急ハンズ
40位、アマゾンジャパン ***
41位、楽天
42位、セイコー
43位、雪印メグミルク
44位、Google ***
45位、伊藤園 トヨタ>SONY>任天堂>amazon>楽天>セイコー>Google>アップル>
タカラトミー>セガ>マイクロソフト>バンダイナムコゲームス>
コナミ>スクウェア・エニックス>カプコン 感度が高いことを高感度という
高感度が高いとか危険が危ないとか
変な言葉遣いやめれ 実は漢字が間違っていただけで、「高感度」ではなくて、正しくは、
「好感度が高い会社」 すみませんつかぬことをお聞きしますが、
テクスチャをピクセル毎に分解して自由に動かしたいんです。
要はピクセル数分の?ゾリューションをもった板ポリに一ピクセルづつ
テキスチャを割り当てればいいんじゃないかと思ってるんですが、
shader内で書く際にどういった書き方をすればいいかどなたかご指南ただけませんか。
あと考え方が間違ってたら指摘して頂けると助かります。 何がしたいかわからんけどポイントスプライト使ってみるとか >>328
テクスチャは一枚です。
>>329
要はテクスチャを一ピクセル毎に分解して、それをパーティクル状に自由に動かしたいのです。
その前段階として、板ポリにテクスチャのピクセルを一つ一つ割り当てたいのです。 別に1ピクセルだろうが板ポリにUV座標していする一般的なスプライトと同じ実装で良いと思うが ポインスプライト実装でできました。
有難うございました! 行列計算ってのがよくわからないんですが、簡単にどういうことをするのか教えてください
((0,0,0)(0,0,0)(0,0,0))
こういう行列があったとしたら
vector3(10,10,10) += gyouretsu[1]
などとすることで、2番目の列にvector3が代入されるかと思います
これってなんの意味があるんですか?
3dにおいてどういうシチュエーションで必要7日イメージがワキません
godot使用です >>333
> 代入されるかと思います
されない
> なんの意味があるんですか?
自分からなんの意味もないコードを見せておいて何言ってんだ?
ここはDirectXスレだ
他のスレをあたれ
どのスレが適切かは自分で考えろ ブレンドステートオブジェクトのRenderTagetって
RenderTarget[0]以外使うにはどうすればいいですか。 すみません
よく考えたらいらなさそうなのでやっぱりいいです。
時間を取らせてしまったのなら申し訳ありません。 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); // バッファを受け取る変数 ちなみに
ID3D10Texture2D::Mapを呼び出した覚えはないです
GetBufferなら使いました。 >>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が呼び出されていたりするのでしょうか。 ■ このスレッドは過去ログ倉庫に格納されています