[過去ログ] 【C++】 DirectX初心者質問スレ Part41 【C】 (773レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(3): 2018/03/23(金)15:24 ID:1IsbON+l(1/2) AAS
回答する人も、質問する人も必ず読んでください

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

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

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


【C++】 DirectX初心者質問スレ Part40 【C】(c)2ch.net
2chスレ:tech

>>2リンク
744: 2021/10/15(金)22:23 ID:h6XcTt5d(1) AAS
>>743
お礼はいらないよ
745
(1): 2021/10/15(金)22:51 ID:s5eU50Mv(2/3) AAS
以下を実行すると画面が白くなります。出来ればlpSurface0の内容にはシェーダーが影響せず
lpSurface1だけにfloat4(1.0f,1.0f,1.0f,1.0f)の内容が描画される様にしたいです。

//細かい部分は端折ってます。
lpD3DDev->SetRenderTarget(0, lpSurface0);
lpD3DDev->SetRenderTarget(1, lpSurface1);
lpEffect->Begin( &nPasses, 0 );
lpEffect->BeginPass( 0 );
lpD3DDev->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP, 2, vtex, sizeof(D3DVERTEX));
lpEffect->EndPass();
lpEffect->End();

その後lpSurface0の内容を画面に描画

//シェーダー
struct PS_OUTPUT {
float4 target1 : SV_TARGET1;
};
PS_OUTPUT PS(float2 input : TEXCOORD0) : COLOR0
{
PS_OUTPUT output;
output.target1 = float4(1.0f, 1.0f, 1.0f, 1.0f);
return output;
}
746
(1): 745 2021/10/15(金)23:15 ID:s5eU50Mv(3/3) AAS
今気づいたけどSV_TARGETはDirect3D9では使えないみたいですね…
エラーが出なかったので気付きませんでした。
それではlpSurface1に出力するにはどうすればいいんでしょうか?
747
(2): 2021/10/17(日)11:26 ID:oNTBMRTn(1) AAS
>>746
ピクセルシェーダーの出力セマンティックス「COLOR1」を使う
以下を参照
外部リンク[php]:neareal.net

ただし、
>複数の色を書き込む場合は、すべての出力色を連続して使用する必要があります。
>つまり 、COLOR0 が既 に記述されていない限り 、COLOR1 を出力にすることはできません。
こういう制約があるようなのでもう一工夫しないとダメだろうな
748
(1): 2021/10/18(月)13:00 ID:1GH669SN(1) AAS
>>747
横からだが、こんないいページあったんだな
教えてくれてありがとう
749: 2021/10/18(月)19:03 ID:j2NOB+RR(1) AAS
>>748
気にしないで
750: 2021/10/19(火)20:57 ID:PuFf5apM(1) AAS
>>747
お礼遅くなりました!ありがとうございます。
もう少し調べながら頑張ってみます。
751: 2021/10/24(日)09:16 ID:IF6Ria+p(1/2) AAS
ここはrustでdirectxをいじる場合の話を聞いてもいいのか?
マイクロソフトがサポートするようだけど
752: 2021/10/24(日)10:19 ID:kgNtN3Fd(1) AAS
Rustありきの質問ならRustスレでやればいいだけだが
753: 2021/10/24(日)12:53 ID:IF6Ria+p(2/2) AAS
windows-rsはまだ出来たばかりで言語感の差が初心者に結構きついんですよ
directx12の魔道書を移植しようにもc++にあったものが対応しているかどうかも分からない
754: 2021/10/30(土)19:46 ID:hf7ly00R(1) AAS
windows-rsってまだ続いてたんだな
755: 2022/05/04(水)22:39 ID:Yin5yPj8(1) AAS
転職して前の会社で作っていたライブラリを再開発したいと思っています。
前職のライブラリはDirectX9で作成していたのですが、
DirectX9は古くてサポートが切れる可能性があるので、DirectX12かOpenGLのどちらかにしようかと悩んでいます。
ちなみに、使いたい機能は2D表示のみです。
将来性を考えると2D表示のみならマルチプラットフォームで使えるOpenGLの方がやはり良いのでしょうか。
756
(1): 2022/05/05(木)02:00 ID:8yVljjyt(1) AAS
将来性とか言い出したら既にOpenGLは終わってVulkanだが
無理せずDirect2Dでもやっとけ
757: 2022/05/05(木)09:39 ID:h8Hug1ue(1) AAS
>>756
Vulkanって3Dに特化したAPIだから
OpenGLは2D用に将来継続するんじゃないんですか?
758: 2022/05/05(木)13:56 ID:zknXQMI1(1) AAS
OpenGLは3D用だし将来継続するって根拠も不明
Macじゃ数年前から名指しで非推奨にされていつ廃止になってもおかしくない
ふわっとマルチプラットフォーム見据えてるならメジャーなゲームエンジンに学習割いた方がマシ
そもそも2Dで扱うバックエンドのAPIなんて大したことやらねえんだからどれ使っても誤差
好きなの使いたまへ
759: 2022/05/06(金)15:46 ID:cW5+23bf(1) AAS
将来のために3Dの板に2Dデータをテクスチャして
その3Dの板を画面に表示すればいいw
760: 2022/05/08(日)00:54 ID:re+7Vz2R(1) AAS
前職で書いたコードって権利的にヤバそうだな
761: 2022/07/23(土)01:16 ID:aNAH5reX(1) AAS
DirectStorageです
外部リンク:github.com
762: 2022/07/23(土)14:09 ID:LtVYlCK3(1) AAS
なんすかこれ
763: 2022/07/30(土)16:27 ID:paa5jUiA(1) AAS
DX22まであります
764: 2022/08/15(月)16:50 ID:c0/Fknp3(1) AAS
Intelのネイティブサポート止める話聞くまで存在すら知らなかった

外部リンク:github.com
765
(2): 2023/01/20(金)23:22 ID:qiUCEM6N(1) AAS
DirectShowの質問です。
実行ファイルと同じディレクトリに置いたコーデックDLLが使われ
pGraph->RenderFile(FileName);
が実行されています。しかし他のPCでやると失敗します。
恐らくレジストリに値が無く動かないと思うのですが(コーデック登録がなく)
自力でプログラムからレジストリ登録をやるか、レジストリ登録なしで動かしたいです。
どなたか力を貸してください。
766
(1): 2023/01/21(土)02:33 ID:aLDqxzMz(1/4) AAS
regsvr32.exe 呼ぶだけじゃないん?
767: 765 2023/01/21(土)11:13 ID:IpxCL/07(1/2) AAS
>>766
ちょっと話が変わりますが、今だとmp4ファイルは再生できないのですが
これに対応すにはどうすればいいんでしょうか?
外部からインストールファイルを使ってコーデックをインストールするとかではなく
プログラムの中だけで完結したい場合です。
DirectShowのフィルターを自作するとかそういう方法になるんでしょうか?
768
(1): 2023/01/21(土)12:55 ID:aLDqxzMz(2/4) AAS
そのコーデックdllがCOM形式なら↓こんな感じ

typedef HRESULT(WINAPI* DllRegFncType)(void);
int WINAPI WinMain(…
{
  // レジストリに登録されるので1回のみでOK。登録済みかどうかを設定ファイルにでも保存しておく。
  HMODULE hModule = LoadLibrary("mp4codec.dll");
  DllRegFncType DllRegisterServer = (FncType)GetProcAddress(hModule, "DllRegisterServer");
  FreeLibrary(hModule);
  DllRegisterServer(); // レジストリに登録
  // 上の4行はsystem("regsvr32.exe /s mp4codec.dll")でも代用できる
  // アプリをアンインストールするときはregsvr32.exe /u mp4codec.dllする

  // 以下アプリのメインが続く

COM形式でないならdllの作者に聞かないとわからない
(COM形式かどうかはregsvr32.exe mp4codec.dllで表示されます)
769: 2023/01/21(土)12:59 ID:aLDqxzMz(3/4) AAS
(FncType)GetProcAddress → (DllRegFncType)GetProcAddress
770: 765 2023/01/21(土)13:29 ID:IpxCL/07(2/2) AAS
>>768
ありがとうございます!やってみますね!
771: 2023/01/21(土)15:51 ID:aLDqxzMz(4/4) AAS
逆だった

DllRegisterServer(); // レジストリに登録
FreeLibrary(hModule);
772: 2023/04/21(金)00:08 ID:Ey1irbU3(1) AAS
レガシーなHDDでも効果出るかもしれない
外部リンク:devblogs.microsoft.com
773: 2023/05/08(月)23:01 ID:fjpXov5M(1) AAS
はじめましてVC++におけるDirectXの設定についてお尋ねします
DirectX SDK Jun 10 というSDKを公式からダウンロードできたのですが
ここにあるSDKをインストールし、VC++のincludeとlibフォルダにコピペし
コンパイルしたのちにsal.hがありませんと怒られれました
sal.hってなんですか???
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.191s*