回答する人も、質問する人も必ず読んでください
これらに当てはまる人のための質問スレです。
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リンク
【C++】 DirectX初心者質問スレ Part41 【C】
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/03/23(金) 15:24:12.95ID:1IsbON+l116デフォルトの名無しさん
2018/08/22(水) 08:36:33.49ID:swhwlLlG 字形の描画(レンダリング)で言えば、アンチエイリアス(輪郭のギザ付きを中間色で誤魔化す)もFTはやってくれるから、自前でピッチを固定したり、間隔を整えようとすると苦労する。
数学というよりも心理、グラフィックスデザインの領域に近いのかもしれない。
ついでに言うとDirectWriteは字形のパス(この場合、頂点配列に近い)を出力できる。
数学というよりも心理、グラフィックスデザインの領域に近いのかもしれない。
ついでに言うとDirectWriteは字形のパス(この場合、頂点配列に近い)を出力できる。
117デフォルトの名無しさん
2018/08/22(水) 13:49:54.72ID:Q4k/bgn4118デフォルトの名無しさん
2018/08/22(水) 14:34:01.47ID:BSjDybOq119デフォルトの名無しさん
2018/08/22(水) 17:53:38.04ID:su77kwqg120デフォルトの名無しさん
2018/08/22(水) 18:03:19.36ID:Y/fFyhhT >>118
詳しくは知らないが、恐らく「ない」んじゃなかろうか。
以下、すべて蛇足、憶測。
ウィンドウズほど優しくできていない。
字形のレンダリングに限れば、必要としない判定。
必ず字形毎(文字毎)に設計された間隔を読むから。
あとFTはAndroidで使われているから、そっちほが詳しくのがいるのではないかと。
詳しくは知らないが、恐らく「ない」んじゃなかろうか。
以下、すべて蛇足、憶測。
ウィンドウズほど優しくできていない。
字形のレンダリングに限れば、必要としない判定。
必ず字形毎(文字毎)に設計された間隔を読むから。
あとFTはAndroidで使われているから、そっちほが詳しくのがいるのではないかと。
121デフォルトの名無しさん
2018/08/22(水) 18:46:30.87ID:exTCpVs2 >>117
ありがとうございます
ありがとうございます
122デフォルトの名無しさん
2018/08/22(水) 19:57:06.31ID:Q4k/bgn4 >>119
気持ち悪いのは
int *str, hoge, *fuga;
が混ざってるからで
完全に一行ずつに分けなくても
int hoge, hage;
int *str, *fuga;
なら問題ないだろ
気持ち悪いのは
int *str, hoge, *fuga;
が混ざってるからで
完全に一行ずつに分けなくても
int hoge, hage;
int *str, *fuga;
なら問題ないだろ
123デフォルトの名無しさん
2018/08/22(水) 19:59:38.50ID:Q4k/bgn4 int* str, hoge, fuga;
の意図が
int* str, * hoge, * fuga;
だとするとこっちの方が気持ち悪い
の意図が
int* str, * hoge, * fuga;
だとするとこっちの方が気持ち悪い
124デフォルトの名無しさん
2018/08/22(水) 20:00:22.96ID:Q4k/bgn4 宗教戦争になるのは認める
125デフォルトの名無しさん
2018/08/23(木) 14:19:36.46ID:0oLK3sfm ミニゲームじゃなくて気合入って作られてるDirectX使った出来の良いゲームで
言い方悪いけどパクれるというかお手本になるソースコードって公開されてない?流石に都合良すぎるか
言い方悪いけどパクれるというかお手本になるソースコードって公開されてない?流石に都合良すぎるか
126デフォルトの名無しさん
2018/08/23(木) 15:20:39.26ID:fvt/af8o GitHubを漁る
127デフォルトの名無しさん
2018/08/23(木) 22:25:35.05ID:cv8sNhFm 文法、記述ルールは、宗教戦争だけど、
最近流行りのヌルポ排斥運動は、熾烈な勢いがある。
コーティン?だったかは、変数の使い回しを言語レベルで排斥する思想。
ヌルポを排斥するため「仮決め(代入なしの変数宣言)」を許さない。変数の仮決めは穢れている。
初期値から消滅まで、必ず値を持たせるためには、有意な値を引き回せばよい。
結果、グローバル、アクセス自由度の高い変数に流れ、見通しの悪い、誰が更新参照してんだかを特定しにくく(匿名性を高める効果を促進しやすく)なるか、アホみたいに引数を引き回すかコンテキスト構造体を引き回すことになる。
コンテキスト構造体とは、すなわち匿名性の促進と道義。
最近流行りのヌルポ排斥運動は、熾烈な勢いがある。
コーティン?だったかは、変数の使い回しを言語レベルで排斥する思想。
ヌルポを排斥するため「仮決め(代入なしの変数宣言)」を許さない。変数の仮決めは穢れている。
初期値から消滅まで、必ず値を持たせるためには、有意な値を引き回せばよい。
結果、グローバル、アクセス自由度の高い変数に流れ、見通しの悪い、誰が更新参照してんだかを特定しにくく(匿名性を高める効果を促進しやすく)なるか、アホみたいに引数を引き回すかコンテキスト構造体を引き回すことになる。
コンテキスト構造体とは、すなわち匿名性の促進と道義。
128デフォルトの名無しさん
2018/08/23(木) 22:36:02.39ID:DjzyTv43 >>125
ソースコードだけならば、Elonaがソース公開されているんでないかな。
よくしらんけど。もしかしたら作者と直に連絡を取った人だけに渡してるのかもしれん。
最近は、コンシューマでもインディーズとカテゴライズされて地位が出来上がっているから、なかなか巡り会えないと思う。
最近のインディーズゲームは、少しおかしいぐらいに技術力が高いからね。
3Dシューティングで視点がステージや進捗で変わるのがあるが、あれはかなり異常な出来だった。
もはやプロの仕事。
ソースコードだけならば、Elonaがソース公開されているんでないかな。
よくしらんけど。もしかしたら作者と直に連絡を取った人だけに渡してるのかもしれん。
最近は、コンシューマでもインディーズとカテゴライズされて地位が出来上がっているから、なかなか巡り会えないと思う。
最近のインディーズゲームは、少しおかしいぐらいに技術力が高いからね。
3Dシューティングで視点がステージや進捗で変わるのがあるが、あれはかなり異常な出来だった。
もはやプロの仕事。
129デフォルトの名無しさん
2018/08/25(土) 16:33:14.61ID:aPxb4sFP もうDirectX使うの止めるわ
130125
2018/08/25(土) 16:55:07.75ID:ux2vpN2s131デフォルトの名無しさん
2018/08/25(土) 17:04:30.41ID:YH9nAcbl >>129
まぁ、そう言わずに…
まぁ、そう言わずに…
132デフォルトの名無しさん
2018/08/25(土) 17:20:12.58ID:uMKey/32 >>129
DirectX5からの付き合いだが、俺もVulkan移行中ですわ
DirectX5からの付き合いだが、俺もVulkan移行中ですわ
133デフォルトの名無しさん
2018/08/25(土) 22:41:08.90ID:xNcAdL4l directX12で勉強がてらゲーム作ってたけどAI流行ってたから
CS使ってAIの実験してるわ。
とりあえずC++とDirectxあれば何でもできるね
CS使ってAIの実験してるわ。
とりあえずC++とDirectxあれば何でもできるね
134デフォルトの名無しさん
2018/08/26(日) 21:10:42.11ID:9TzHFCTa >>129
VulkanとD3D12、両方使っているけど、
比較的に12の方が優しいが、どっちも癖がある。
整理されていて、より些細なことまでできる分、一山越えると少しだけVulkanが好きになる。
Vulkanの入力アタッチメントなんかは、避けるべきと思う。
vulkanとd3d12の違いは
vulkan
・描画バスの仕組み(このパスは、マルチパスレンダリングのパス)
d3d12
・レイトレができる(らしい)
VulkanとD3D12、両方使っているけど、
比較的に12の方が優しいが、どっちも癖がある。
整理されていて、より些細なことまでできる分、一山越えると少しだけVulkanが好きになる。
Vulkanの入力アタッチメントなんかは、避けるべきと思う。
vulkanとd3d12の違いは
vulkan
・描画バスの仕組み(このパスは、マルチパスレンダリングのパス)
d3d12
・レイトレができる(らしい)
135デフォルトの名無しさん
2018/08/26(日) 21:16:14.17ID:9TzHFCTa 描画パスの仕組みがないのは、恐らくは後方互換性。
利用するプログラマをつき放さない意味での用語や理解についての互換性が趣旨に感じた。
(そんな言葉はないけど、エクスペリエンスのデノミを避ける、が近い?)
Vulkanの描画パスは、吐ける。
利用するプログラマをつき放さない意味での用語や理解についての互換性が趣旨に感じた。
(そんな言葉はないけど、エクスペリエンスのデノミを避ける、が近い?)
Vulkanの描画パスは、吐ける。
136デフォルトの名無しさん
2018/08/26(日) 23:08:56.87ID:GZFWl5MZ 何でOpenGLやめるん
137デフォルトの名無しさん
2018/08/26(日) 23:09:40.94ID:GZFWl5MZ ↑クロノスグループが、の意味ね
138デフォルトの名無しさん
2018/08/27(月) 04:36:36.26ID:xIxAfuYd ゲーム制作をしてるのですが、
XInputGetState関数でXbox Oneのコントローラーは扱えますか?
MSDNでは
『XInput とは、Windows 向け Xbox 360 コントローラーからの入力値を、アプリケーションで受け取れるようにする API 』
と書いていたのですが…
https://msdn.microsoft.com/ja-jp/library/bb173045(v=vs.85).aspx
XInputGetState関数でXbox Oneのコントローラーは扱えますか?
MSDNでは
『XInput とは、Windows 向け Xbox 360 コントローラーからの入力値を、アプリケーションで受け取れるようにする API 』
と書いていたのですが…
https://msdn.microsoft.com/ja-jp/library/bb173045(v=vs.85).aspx
139デフォルトの名無しさん
2018/08/27(月) 08:12:00.72ID:rKzetDHK >>138
スチームでの対応状況が参考になるのではないかと。
非対応なら無理。対応しているならいける余地はありそう。
7でPS4コントローラがUSB接続で制御できたことは確認済み。
なお、これはDirectInput8を使った。
スチームでの対応状況が参考になるのではないかと。
非対応なら無理。対応しているならいける余地はありそう。
7でPS4コントローラがUSB接続で制御できたことは確認済み。
なお、これはDirectInput8を使った。
140デフォルトの名無しさん
2018/08/27(月) 11:19:22.36ID:9KYhKRgJ ありがとうございます
141138
2018/08/27(月) 11:32:24.96ID:9KYhKRgJ 検索して探していると『WindowsにはXBoxのコントローラを使用するためにXInputというAPIが用意』とか『Xbox One、Xbox360等のX-input式のコントローラー
』とか等と書いてあるブログが複数発見したので同じ仕組みかな?とは思うのですがMSDNを見ているとXbox360専用と書いていたので
』とか等と書いてあるブログが複数発見したので同じ仕組みかな?とは思うのですがMSDNを見ているとXbox360専用と書いていたので
142デフォルトの名無しさん
2018/08/27(月) 18:27:11.34ID:kh1Bw1m+ >>138
使えるよ
使えるよ
143デフォルトの名無しさん
2018/08/30(木) 00:13:35.30ID:qBKCuhvw >>137
Currentは、もうヤダ。
マルチスレッドレンダリングする上で面倒くさい。
って事だと理解している。
命令のキューと整理されれば、プロセッサと同様なメモリ保護も視野に入るし、
とあるシェーダが別プロセスのテクスチャを読める可能性を排除しやすい。
11までのGPUは、そういうのは皆無だろうし、12にもvulkanにもなさそうだしね。
GPUにスワップメモリ、仮想メモリ空間、スワップで逃がすストレージなんかないのだから。
Currentは、もうヤダ。
マルチスレッドレンダリングする上で面倒くさい。
って事だと理解している。
命令のキューと整理されれば、プロセッサと同様なメモリ保護も視野に入るし、
とあるシェーダが別プロセスのテクスチャを読める可能性を排除しやすい。
11までのGPUは、そういうのは皆無だろうし、12にもvulkanにもなさそうだしね。
GPUにスワップメモリ、仮想メモリ空間、スワップで逃がすストレージなんかないのだから。
144デフォルトの名無しさん
2018/09/03(月) 12:41:04.98ID:NxxlWETJ DirectX9でSetRenderStateを使ってブレンディングする場合
除算ブレンディングはどうやったら良いでしょうか?
加算なら以下で出来ますが。除算がよく判りません。
lpD3DDev->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
lpD3DDev->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);
除算ブレンディングはどうやったら良いでしょうか?
加算なら以下で出来ますが。除算がよく判りません。
lpD3DDev->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
lpD3DDev->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);
145デフォルトの名無しさん
2018/09/03(月) 15:45:46.51ID:O77C1Rb1 >>144
君には教えない
君には教えない
146デフォルトの名無しさん
2018/09/03(月) 21:12:07.01ID:NxxlWETJ >>145
おしえて!w
おしえて!w
147デフォルトの名無しさん
2018/09/04(火) 05:42:00.75ID:ygKGdo3P >>144
公式のリファレンスにのってない?
公式のリファレンスにのってない?
148デフォルトの名無しさん
2018/09/04(火) 13:02:02.42ID:hJtprqgF dstをぜろ。srcを色指定にすればいいだけに見える
oc=(tc*dest bc)+(pc*src bc)
tc ターゲット色、pc シェーダ出力色
oc=(tc*dest bc)+(pc*src bc)
tc ターゲット色、pc シェーダ出力色
149デフォルトの名無しさん
2018/09/04(火) 15:48:34.16ID:ep2b6+2r150デフォルトの名無しさん
2018/09/07(金) 16:13:46.89ID:M1sJGdfN 自己解決したわ、アホ共。
151デフォルトの名無しさん
2018/09/10(月) 08:55:08.63ID:c/4EXXgn 皆さんDirect3d上でのGUIは
何を使っていますか?
何を使っていますか?
152デフォルトの名無しさん
2018/09/10(月) 09:06:48.54ID:fHwpB0MY 自作かImGuiやね
153デフォルトの名無しさん
2018/09/11(火) 08:25:36.60ID:vjUQtdrA ウィジェットのことなら自作だな。
良さそうな小さいのが見当たらない。
ゴリゴリと頂点配列を作って動かしている。
字と背景を別々に作るから、かなり複雑で眠い
良さそうな小さいのが見当たらない。
ゴリゴリと頂点配列を作って動かしている。
字と背景を別々に作るから、かなり複雑で眠い
154デフォルトの名無しさん
2018/09/18(火) 04:59:22.14ID:v4BXp/hu ただのゲーマーだけど聞いていい?
いまだDirectX6使ってるゲーム好きで時々やるんだけど
古いバージョンっていつか切り捨てられて動作しなくなったりする?
Windows10でも動いてるしこれからもずっと動いてて欲しいんだけど。
いまだDirectX6使ってるゲーム好きで時々やるんだけど
古いバージョンっていつか切り捨てられて動作しなくなったりする?
Windows10でも動いてるしこれからもずっと動いてて欲しいんだけど。
155デフォルトの名無しさん
2018/09/18(火) 06:57:41.67ID:PQNDTy/s directXはCOMテクノロジーがベースだから
古いゲームでも最新ハードの機能が使えるんやで
例えばdx6ゲームでHWTLやテッセレーション
高度なAAや4k解像度適用などなど
ま、今は絶賛開発中なのでしばし待て
22世紀中にはリリースされるよ
古いゲームでも最新ハードの機能が使えるんやで
例えばdx6ゲームでHWTLやテッセレーション
高度なAAや4k解像度適用などなど
ま、今は絶賛開発中なのでしばし待て
22世紀中にはリリースされるよ
156デフォルトの名無しさん
2018/09/18(火) 07:41:24.70ID:Qxe4285y >>154
DirectX云々以外のところで動かなくなる。イースとかもうWidows10では互換モードでも起動すらしない
DirectX云々以外のところで動かなくなる。イースとかもうWidows10では互換モードでも起動すらしない
157デフォルトの名無しさん
2018/09/18(火) 23:07:41.49ID:v4BXp/hu158デフォルトの名無しさん
2018/09/19(水) 11:42:50.85ID:PupZqwJJ 誤解が拡散中
159デフォルトの名無しさん
2018/09/19(水) 22:02:25.18ID:DVXllMcK DirectXに互換性などはないような。
ただ過去のスタックが残っているだけのこと。
それすらDirect3D9c未満が動くのか?は疑問がある。 ドライバが非対応なんじゃないだろうか。
あと、動画再生時のCODECが非対応で、動画再生できずに堕ちるってのもあるような。
ソフトウェアMIDIもドライバで実現しているのか、Microsoft標準ドライバが実装しているのかも疑問がある。
取り敢えず、過去に買ったWindows 95時代のゲームで動画再生できずに堕ちたゲームは観た事がある。
ただ過去のスタックが残っているだけのこと。
それすらDirect3D9c未満が動くのか?は疑問がある。 ドライバが非対応なんじゃないだろうか。
あと、動画再生時のCODECが非対応で、動画再生できずに堕ちるってのもあるような。
ソフトウェアMIDIもドライバで実現しているのか、Microsoft標準ドライバが実装しているのかも疑問がある。
取り敢えず、過去に買ったWindows 95時代のゲームで動画再生できずに堕ちたゲームは観た事がある。
160デフォルトの名無しさん
2018/09/19(水) 22:08:06.99ID:DVXllMcK Windowsは、Windowsのみで機能を実現など出来ていない。
ハードウェアを扱う部分は、メーカーが提供するドライバが核であり、
そこがWindowsの互換性を提供し、メーカーに向けたドライバ要件が担保となっている。
Officeが必要とするドライバ機能がドライバ要件を決定づけていて、
サポート期間中の製品が必要とする部分なら、ドライバも必須となる。
従って、Direct3D関係の機能は、既に9c未満が動く保証はないと思う。
ハードウェアを扱う部分は、メーカーが提供するドライバが核であり、
そこがWindowsの互換性を提供し、メーカーに向けたドライバ要件が担保となっている。
Officeが必要とするドライバ機能がドライバ要件を決定づけていて、
サポート期間中の製品が必要とする部分なら、ドライバも必須となる。
従って、Direct3D関係の機能は、既に9c未満が動く保証はないと思う。
161デフォルトの名無しさん
2018/09/20(木) 00:02:40.53ID:gdLwWWhU162デフォルトの名無しさん
2018/09/20(木) 07:52:43.20ID:K+Ua86eW >>161
ここでウダウダ聞いてもなんの担保にもならんぞ
対応しなくなったら終わりではなく更新されないだけ、それで動き続けるかどうかは神の味噌汁
たまたま動かなくなっただけかもしれない、たまたま動いているだけかもしれない
3DゲームはドライバでなくDirect3DのAPIに対してアクセスしているので
WindowsでDirect3D(の該当バージョン)が態々削除されない限りは互換性はあるとは言える
もちろん削除されなくてもWindowsの更新で内部の挙動が変化してゲームが動かなくなるなんてことはざらにある
ここでウダウダ聞いてもなんの担保にもならんぞ
対応しなくなったら終わりではなく更新されないだけ、それで動き続けるかどうかは神の味噌汁
たまたま動かなくなっただけかもしれない、たまたま動いているだけかもしれない
3DゲームはドライバでなくDirect3DのAPIに対してアクセスしているので
WindowsでDirect3D(の該当バージョン)が態々削除されない限りは互換性はあるとは言える
もちろん削除されなくてもWindowsの更新で内部の挙動が変化してゲームが動かなくなるなんてことはざらにある
163デフォルトの名無しさん
2018/09/20(木) 10:45:06.47ID:7WHuQIEO WMが変わった時が一番大きい変化だった気がする
164デフォルトの名無しさん
2018/09/20(木) 10:51:48.29ID:7WHuQIEO DWMが変わったタイミングで動かなくなったアプリが増えたっていう意味です
165デフォルトの名無しさん
2018/09/21(金) 09:48:58.26ID:qOWS4e0S166デフォルトの名無しさん
2018/09/21(金) 18:28:30.46ID:7CqPf/Kx パレットテクスチャとかも危ないか?
167デフォルトの名無しさん
2018/09/22(土) 21:47:58.86ID:tZvIjPe8 危ないね
168デフォルトの名無しさん
2018/09/27(木) 17:39:33.56ID:egrolh38 質問です。
メインスレッドで描画しながら別スレッドでテクスチャを大量に読み込むと
画面がちらつきます。D3DXCreateTextureFromFileを実行した時にちらついてるようです。
ここにコードを書く事が出来ないのでエスパーでおねがいします。
思い当たる原因はありますか?D3DDeviceをスレッドをまたいで参照してたりするからでしょうか?
メインスレッドで描画しながら別スレッドでテクスチャを大量に読み込むと
画面がちらつきます。D3DXCreateTextureFromFileを実行した時にちらついてるようです。
ここにコードを書く事が出来ないのでエスパーでおねがいします。
思い当たる原因はありますか?D3DDeviceをスレッドをまたいで参照してたりするからでしょうか?
169デフォルトの名無しさん
2018/09/27(木) 17:40:00.04ID:egrolh38 age
170デフォルトの名無しさん
2018/09/27(木) 18:12:40.71ID:lrUHFZkm ロックするかあらかじめ全部読んでおくか
171デフォルトの名無しさん
2018/09/27(木) 20:45:06.26ID:PZih89QY D3DDeviceを
マルチスレッドで使う場合
スレッドセーフで作らんとダメだろう
そこはちゃんとやってるのか?
マルチスレッドで使う場合
スレッドセーフで作らんとダメだろう
そこはちゃんとやってるのか?
172デフォルトの名無しさん
2018/09/27(木) 21:58:29.85ID:ZotRguTd マルチスレッドモードに設定してないと、Debugモード実行で警告メッセージ出まくらなかったっけ?
それが出てたら、出ないようにするとこから。
それが出てたら、出ないようにするとこから。
173デフォルトの名無しさん
2018/09/28(金) 00:01:13.37ID:frk51yg8174デフォルトの名無しさん
2018/09/28(金) 08:46:21.34ID:WfDD/blL ちらつきで疑わしいのは、presentする辺りかな
ディスプレイに表示する描画ターゲットを作り込むときに参照しているテクスチャでもあるんでないかと。
というか複数のスレッドからデバイスコンテキストを触ると蹴られたと思う。
それでもちらつきが一時的な症状ならば、テクスチャ関数が中で排他しているからでなかろうか?
ところでチラツキって具体的な症状としては、どれなんだろう。
・一瞬黒か白が入る
・カクカクしたアニメーションになる
・デジタルノイズが入る
・サブリミナルな絵が入る
・何しにきたんだよ?お前のために決まってるだろ!と友貴に言われる
ディスプレイに表示する描画ターゲットを作り込むときに参照しているテクスチャでもあるんでないかと。
というか複数のスレッドからデバイスコンテキストを触ると蹴られたと思う。
それでもちらつきが一時的な症状ならば、テクスチャ関数が中で排他しているからでなかろうか?
ところでチラツキって具体的な症状としては、どれなんだろう。
・一瞬黒か白が入る
・カクカクしたアニメーションになる
・デジタルノイズが入る
・サブリミナルな絵が入る
・何しにきたんだよ?お前のために決まってるだろ!と友貴に言われる
175デフォルトの名無しさん
2018/09/28(金) 09:59:25.03ID:frk51yg8 >>174
ありがとうございます。
テクスチャ読み込みした瞬間に「・デジタルノイズが入る」といった感じです。
具体的に言うと「ブロックノイズっぽいものが所々に出る」といった感じです。
症状自体はそこまで酷い訳ではないんですが、チラチラするので気になってます。
一回あたりのノイズのサイズは小さいですね。画面がフルHD時で、128x128くらいです。
ありがとうございます。
テクスチャ読み込みした瞬間に「・デジタルノイズが入る」といった感じです。
具体的に言うと「ブロックノイズっぽいものが所々に出る」といった感じです。
症状自体はそこまで酷い訳ではないんですが、チラチラするので気になってます。
一回あたりのノイズのサイズは小さいですね。画面がフルHD時で、128x128くらいです。
176175
2018/09/28(金) 12:12:50.63ID:frk51yg8 テクスチャ読み込み中は特に自分ではD3DDeviceの書き換えは行っていなかった(と思う)のですが
一応念のために以下みたいなクラスを作って排他処理を徹底したら直りました!
しかも20秒くらいかかってたテクスチャ読み込みが何故か5秒くらいで終わるようになって
いいことずくめでw 最高っす。
class CLockObject {
protected:
CRITICAL_SECTION m_CriticalSection;
public:
CLockObject(){ InitializeCriticalSection(&m_CriticalSection); }
void Lock(void){ EnterCriticalSection(&m_CriticalSection); }
void UnLock(void){ LeaveCriticalSection(&m_CriticalSection); }
~CLockObject(){ DeleteCriticalSection(&m_CriticalSection); }
};
スレッド1
LockObject.Lock();
〜
Direct3D描画処理
〜
LockObject.UnLock();
スレッド2
LockObject.Lock();
〜
テクスチャ読み込み
〜
LockObject.UnLock();
一応念のために以下みたいなクラスを作って排他処理を徹底したら直りました!
しかも20秒くらいかかってたテクスチャ読み込みが何故か5秒くらいで終わるようになって
いいことずくめでw 最高っす。
class CLockObject {
protected:
CRITICAL_SECTION m_CriticalSection;
public:
CLockObject(){ InitializeCriticalSection(&m_CriticalSection); }
void Lock(void){ EnterCriticalSection(&m_CriticalSection); }
void UnLock(void){ LeaveCriticalSection(&m_CriticalSection); }
~CLockObject(){ DeleteCriticalSection(&m_CriticalSection); }
};
スレッド1
LockObject.Lock();
〜
Direct3D描画処理
〜
LockObject.UnLock();
スレッド2
LockObject.Lock();
〜
テクスチャ読み込み
〜
LockObject.UnLock();
177デフォルトの名無しさん
2018/09/28(金) 14:01:09.20ID:KnH7gKZy >>175
その症状ならむしろ巧くマルチスレッドに動いてしまっている、疑いもあるような。
読み込みが未完なテクスチャを読み込めば、瞬間的に変な画素を参照するから、それがノイズに映る。
でも考えにくいので、変な描画、予期していない描画が挟まれて映っている。
あと突っ込まれなかったから自分で言うが
友貴はチラチラじゃなく、ちゃらいだろ。
その症状ならむしろ巧くマルチスレッドに動いてしまっている、疑いもあるような。
読み込みが未完なテクスチャを読み込めば、瞬間的に変な画素を参照するから、それがノイズに映る。
でも考えにくいので、変な描画、予期していない描画が挟まれて映っている。
あと突っ込まれなかったから自分で言うが
友貴はチラチラじゃなく、ちゃらいだろ。
178デフォルトの名無しさん
2018/09/28(金) 15:26:49.89ID:frk51yg8 >>177
ありがとうございます。
一応>>176でノイズ自体は解決して読み込み速度も上がったのですが
描画スレッドと別で読み込みスレッドでテクスチャを読み込んでいる時に
今度は排他処理の影響か描画速度がかなり落ちてしまう症状が出てます。
ただ別スレッドにして排他処理をしっかりやって読み込むと読み込み速度は
かなり速くなったので開始時に画面を黒で塗りつぶして一気に読み込む方法をこれでやろうと思ってます。
出来れば描画スレッドの速度が落ちずに読み込めればいいんですがこれでも問題ないかなと。
まとめると以下のような感じですね
1 シングルスレッドで開始時に読み込むと普通に20秒くらいかかる
2 マルチスレッドで排他処理無しで読み込むと描画しながら読み込めるが20秒くらいかかりノイズも発生
3 マルチスレッドで排他処理有りで読み込むと描画速度がかなり遅くなるが5秒ほどで読み込める
ありがとうございます。
一応>>176でノイズ自体は解決して読み込み速度も上がったのですが
描画スレッドと別で読み込みスレッドでテクスチャを読み込んでいる時に
今度は排他処理の影響か描画速度がかなり落ちてしまう症状が出てます。
ただ別スレッドにして排他処理をしっかりやって読み込むと読み込み速度は
かなり速くなったので開始時に画面を黒で塗りつぶして一気に読み込む方法をこれでやろうと思ってます。
出来れば描画スレッドの速度が落ちずに読み込めればいいんですがこれでも問題ないかなと。
まとめると以下のような感じですね
1 シングルスレッドで開始時に読み込むと普通に20秒くらいかかる
2 マルチスレッドで排他処理無しで読み込むと描画しながら読み込めるが20秒くらいかかりノイズも発生
3 マルチスレッドで排他処理有りで読み込むと描画速度がかなり遅くなるが5秒ほどで読み込める
179デフォルトの名無しさん
2018/09/28(金) 16:04:50.25ID:O5kQkBkV そもそもそのテクスチャは実行時に毎回読まないといけないものなのか?
180デフォルトの名無しさん
2018/09/28(金) 17:38:36.81ID:TYfa5akj 176の実装だとマルチに動いていない気がする。
クリティカルセクションは、一つのスレッドが入ったら、離れるまでは他のスレッドが待たされる。
つまり並列に実行していない。
真面目に並列度を高めるならば、テクスチャ毎に排他オブジェクトを持たせて、読み込みが完了していないテクスチャを描画ループのスレッドが触ろうとしたら、そいつをまるごとスキップして描画を続けるとかするべきかも。
ジオメトリなんかの単位でアセットを管理しているならば、読み込み完了前のジオメトリに紐付くテクスチャや頂点は描画をスキップする実装。
あとはオフラインサーフェースへの書き込みなんかの単位でまるごとスキップとかもできるかも。
チラツキを予防して、読み込み終わったアセットを段階的に画面に映したいなら、そういったリソース管理が必要。
でも大抵は、そんなことせず、読み込みが全部終わるまでは黒い画面を見せる実装を選ぶと思う。
GPUコアの限界までテクスチャなんかの読み込みスレッドを並列化することを選びそう。
クリティカルセクションは、一つのスレッドが入ったら、離れるまでは他のスレッドが待たされる。
つまり並列に実行していない。
真面目に並列度を高めるならば、テクスチャ毎に排他オブジェクトを持たせて、読み込みが完了していないテクスチャを描画ループのスレッドが触ろうとしたら、そいつをまるごとスキップして描画を続けるとかするべきかも。
ジオメトリなんかの単位でアセットを管理しているならば、読み込み完了前のジオメトリに紐付くテクスチャや頂点は描画をスキップする実装。
あとはオフラインサーフェースへの書き込みなんかの単位でまるごとスキップとかもできるかも。
チラツキを予防して、読み込み終わったアセットを段階的に画面に映したいなら、そういったリソース管理が必要。
でも大抵は、そんなことせず、読み込みが全部終わるまでは黒い画面を見せる実装を選ぶと思う。
GPUコアの限界までテクスチャなんかの読み込みスレッドを並列化することを選びそう。
181デフォルトの名無しさん
2018/09/29(土) 11:09:20.58ID:hzO5ElQi >>180
ありがとうございます。
なるほど。効率の面ではまだまだ出来る事は色々あるんでしょうね。
ただ複雑になって下手な事して不具合が出ると困るので自分も単純な方法で行こうと思います。
マルチスレッドで読み込むと読み込み速度自体は上がったので排他処理だけしっかりやって
あとは画面を塗りつぶしてそこで一気に読み込む方法を今回は採用しようと思います。
ありがとうございます。
なるほど。効率の面ではまだまだ出来る事は色々あるんでしょうね。
ただ複雑になって下手な事して不具合が出ると困るので自分も単純な方法で行こうと思います。
マルチスレッドで読み込むと読み込み速度自体は上がったので排他処理だけしっかりやって
あとは画面を塗りつぶしてそこで一気に読み込む方法を今回は採用しようと思います。
182デフォルトの名無しさん
2018/09/29(土) 16:02:49.13ID:urX7Wqqu d3dのヘルプを読むと
マルチスレッドでは
イミディエイトコンテキストは使わずに
別途デバイスコンテキストを作って
描画スレッドではそれを使うようにとあるよ
多分必要なのはそういうところと思う
マルチスレッドでは
イミディエイトコンテキストは使わずに
別途デバイスコンテキストを作って
描画スレッドではそれを使うようにとあるよ
多分必要なのはそういうところと思う
183デフォルトの名無しさん
2018/09/29(土) 16:32:57.82ID:apMOeRQP D3DXCreateTextureFromFileとか言ってるからDeferred Contextすらない世代のことじゃろ
184デフォルトの名無しさん
2018/10/03(水) 17:59:08.87ID:3HnGx7Th 1809記念
Direct3D12でコマンドキューにシグナルするタイミング
1.ExecuteCommandList()
2.Present()
一回のコールの度にフェンスの数値をインクリメント(=GPUに処理を実行する契機を与える)
これを怠ると終了契機にフロントバッファをコマンドキューが掴んでる、との例外が出る。
ギットハブのError on shutdownってタイトルのスレッドにも報告されている。英語
取り敢えず、APIマニュアルでこの旨の事柄を書いたページは見つけられなかった。
ただのシェア
Direct3D12でコマンドキューにシグナルするタイミング
1.ExecuteCommandList()
2.Present()
一回のコールの度にフェンスの数値をインクリメント(=GPUに処理を実行する契機を与える)
これを怠ると終了契機にフロントバッファをコマンドキューが掴んでる、との例外が出る。
ギットハブのError on shutdownってタイトルのスレッドにも報告されている。英語
取り敢えず、APIマニュアルでこの旨の事柄を書いたページは見つけられなかった。
ただのシェア
185デフォルトの名無しさん
2018/10/03(水) 18:58:30.47ID:bNH0XzXA >>184
これからもよろしく頼む
これからもよろしく頼む
186デフォルトの名無しさん
2018/10/08(月) 01:17:59.94ID:OIFhWgmg ある画像を別に用意したマスク画像の形でリアルタイムでくり抜きたいです(マスク画像のフチのぼかされてる所も再現したい)。
ただしシェーダーは使わずやりたい。ステンシルとかブレンディングでどうにかなりますか?
リアルタイムでやりたいのでロックして直接弄るとかは無しでお願いします。
フォトショの例ですがこんな事をリアルタイムでやりたい(くり抜かれた画像の余白の部分はアルファ値で透明になるように)
https://helpx.adobe.com/jp/photoshop-elements/kb/cq07050438.html
ただしシェーダーは使わずやりたい。ステンシルとかブレンディングでどうにかなりますか?
リアルタイムでやりたいのでロックして直接弄るとかは無しでお願いします。
フォトショの例ですがこんな事をリアルタイムでやりたい(くり抜かれた画像の余白の部分はアルファ値で透明になるように)
https://helpx.adobe.com/jp/photoshop-elements/kb/cq07050438.html
187デフォルトの名無しさん
2018/10/08(月) 01:37:54.77ID:LP2GoVYR (1)マスクをレンダーターゲットのαに書き込み
(2)くり抜き対象画像のブレンディング設定値を工夫して書き込み
でいけるかな?
(2)くり抜き対象画像のブレンディング設定値を工夫して書き込み
でいけるかな?
188デフォルトの名無しさん
2018/10/08(月) 02:02:38.28ID:OIFhWgmg >>187
(1)は、アルファチャンネルつきの画像を用意して描画するとして
ARGBのうちAだけが反映されるように(2)でうまく合成するという事になりますかね?
RenderStateはSRCがDESTALPHAにすると(1)の画像のアルファ値が上手く反映されますね。
ただDESTをどの値にしてもARGBのうちのRGBの部分も反映されてしまってフチが黒くなってしまいます(マスク画像が黒い為)。
ARGBのAだけ反映させるにはどうしたらいいでしょうか。
(1)は、アルファチャンネルつきの画像を用意して描画するとして
ARGBのうちAだけが反映されるように(2)でうまく合成するという事になりますかね?
RenderStateはSRCがDESTALPHAにすると(1)の画像のアルファ値が上手く反映されますね。
ただDESTをどの値にしてもARGBのうちのRGBの部分も反映されてしまってフチが黒くなってしまいます(マスク画像が黒い為)。
ARGBのAだけ反映させるにはどうしたらいいでしょうか。
189デフォルトの名無しさん
2018/10/08(月) 02:21:51.96ID:LP2GoVYR マスク画像のRGBはオール0(真っ黒)で、Aだけマスクの形となるα値にする。
んで、(1)のときはRGBは加算合成で、AだけSrcをDstにそのまま書き込みってできないかな?
んで、(1)のときはRGBは加算合成で、AだけSrcをDstにそのまま書き込みってできないかな?
190デフォルトの名無しさん
2018/10/08(月) 03:05:32.73ID:OIFhWgmg191デフォルトの名無しさん
2018/10/08(月) 03:58:31.81ID:OIFhWgmg >>187
色々やってみたんですが、まずくり抜きたい画像を描画しておき
そのあとにマスク画像として用意した全部黒で真ん中だけ丸くアルファ値ゼロの画像を
上から描画して、最後にその合成された画像を加算アルファで描画すると
余計な部分の黒が全部透明になって理想に近い形になりました。
ただ加算されるので真ん中の描画される部分がちょっとピカピカしてしまいますが。
もうちょっと試行錯誤してみます。
色々やってみたんですが、まずくり抜きたい画像を描画しておき
そのあとにマスク画像として用意した全部黒で真ん中だけ丸くアルファ値ゼロの画像を
上から描画して、最後にその合成された画像を加算アルファで描画すると
余計な部分の黒が全部透明になって理想に近い形になりました。
ただ加算されるので真ん中の描画される部分がちょっとピカピカしてしまいますが。
もうちょっと試行錯誤してみます。
192デフォルトの名無しさん
2018/10/08(月) 13:27:01.63ID:+5qyKWRv 馬鹿っぽい
193デフォルトの名無しさん
2018/10/08(月) 14:56:19.98ID:OIFhWgmg194デフォルトの名無しさん
2018/10/08(月) 20:56:30.32ID:/sZzmon7 ステンシルがいいんじゃねーの?
そもそもステンシルって
そういう型抜きをやるための機能だし
ステンシルバッファをゼロクリア
型抜き用画像を描画(描画されたピクセルのみステンシル値インクリメント)
対象の画像描画(ただしステンシル値!=ゼロのピクセルのみ)
こんな感じで
そもそもステンシルって
そういう型抜きをやるための機能だし
ステンシルバッファをゼロクリア
型抜き用画像を描画(描画されたピクセルのみステンシル値インクリメント)
対象の画像描画(ただしステンシル値!=ゼロのピクセルのみ)
こんな感じで
195デフォルトの名無しさん
2018/10/09(火) 08:22:35.91ID:6/4ynI0N >>194
ステンシルですか。やってみます。ありがとうございます。
ステンシルですか。やってみます。ありがとうございます。
196デフォルトの名無しさん
2018/10/09(火) 12:15:05.77ID:FMe/8vRd 錆びたりしませんか
197デフォルトの名無しさん
2018/10/09(火) 14:39:00.46ID:iGqJuC8Y ぼかしが不要ならステンシル一択だろうけど
198デフォルトの名無しさん
2018/10/09(火) 16:30:24.65ID:46xU4Pr2 ボカシが必要なら
マルチテクスチャブレンディングで
いいだろう
シェーダ使わないってんで
D3D9あたりだと思うが
RGBとAを別々に設定出来るし
要望は満たせるだろう
マルチテクスチャブレンディングで
いいだろう
シェーダ使わないってんで
D3D9あたりだと思うが
RGBとAを別々に設定出来るし
要望は満たせるだろう
199デフォルトの名無しさん
2018/10/09(火) 21:27:06.70ID:dz3bRAZk >>193
ピクセルシェーだでdiscard
ピクセルシェーだでdiscard
200デフォルトの名無しさん
2018/10/10(水) 01:30:12.35ID:y7T0G2Lv >>198
ぼかしが必要なので、それよろしければ詳しくおねがいします!
ぼかしが必要なので、それよろしければ詳しくおねがいします!
201デフォルトの名無しさん
2018/10/10(水) 17:16:24.70ID:l/LT+zZU >>200
自分で調べろ、ボケ
自分で調べろ、ボケ
202デフォルトの名無しさん
2018/10/11(木) 08:36:28.94ID:A/mBZEYO ここまで書いてあれば調べて実装するのは余裕だと思う。
ぼかす部分をアルファ値0.5、落とす部分を0にするだけではないかと。
でもdx9は使いにくいから、せめて11とシェーダーを使うべき。 9だと理解に変な癖が付くから悪い面が多い。
ぼかす部分をアルファ値0.5、落とす部分を0にするだけではないかと。
でもdx9は使いにくいから、せめて11とシェーダーを使うべき。 9だと理解に変な癖が付くから悪い面が多い。
203デフォルトの名無しさん
2018/10/12(金) 19:21:20.72ID:M/Pzk+yk 頂点配列。というかGPU上のメモリ確保(コミットリソース)は時間掛かるんだな。
d3d12、amdのプロセッサ内蔵GPU、デバッグモードなんだけど、4秒掛かった。
300個、それぞれ600バイトぐらいの頂点配列を確保するのに掛かった時間
と、書いて気づいた。そうかデバッグレイヤーか
d3d12、amdのプロセッサ内蔵GPU、デバッグモードなんだけど、4秒掛かった。
300個、それぞれ600バイトぐらいの頂点配列を確保するのに掛かった時間
と、書いて気づいた。そうかデバッグレイヤーか
204デフォルトの名無しさん
2018/10/12(金) 20:22:12.35ID:7WoSY3Qh >>203
おっそw
おっそw
205デフォルトの名無しさん
2018/10/13(土) 13:43:59.70ID:yMYV8KuT で、デバッグレイヤーを不活性にしたら、めでたくサクサク動きました。
206デフォルトの名無しさん
2018/10/14(日) 12:50:45.12ID:G4e8iFcg おめ
207デフォルトの名無しさん
2018/10/15(月) 21:50:45.22ID:QZ6Q+R/H いえいえ
208デフォルトの名無しさん
2018/10/16(火) 17:41:49.33ID:tYMDCx/a DirectXは終わった?のかなあ...
209デフォルトの名無しさん
2018/10/16(火) 22:26:26.55ID:PgSsQcUe 直に触る人が減ったってだけじゃないの??
210デフォルトの名無しさん
2018/10/17(水) 16:49:45.63ID:6p6LFcpX DirectShowの質問なんですが動画再生している時に動画の上に図形を表示したいです。
表示中のウィンドウからHDCを取得して描画すれば一応表示できますがちらつきます。
検索してもあまり情報が出てこないので教えてもらえると助かります。
表示中のウィンドウからHDCを取得して描画すれば一応表示できますがちらつきます。
検索してもあまり情報が出てこないので教えてもらえると助かります。
211210
2018/10/17(水) 17:23:02.52ID:6p6LFcpX 調べてたらテクスチャにして表示すれば簡単に実現できそうだったのでこれでやることにしました。
212デフォルトの名無しさん
2018/10/19(金) 14:51:44.60ID:uYziTuig2018/10/22(月) 08:15:36.30ID:JtURtT5N
ユニティとアンリアルエンジンの認知度上昇
ハボックのクローズド化
APIの単純化によるアプリケーション実装の複雑化
ポリゴンデータ(アセット)の生産性の低さ
実現に必要となるデバイスの多さ
APIだけでは解決しない課題が多い
なら出来合いレディメードのアセットを簡単に使えるミドルウェアに流れる。
今、d3d12でウィンドウ処理を書いてるけど、 兎に角つまらないのに無駄に複雑になる。
ハボックのクローズド化
APIの単純化によるアプリケーション実装の複雑化
ポリゴンデータ(アセット)の生産性の低さ
実現に必要となるデバイスの多さ
APIだけでは解決しない課題が多い
なら出来合いレディメードのアセットを簡単に使えるミドルウェアに流れる。
今、d3d12でウィンドウ処理を書いてるけど、 兎に角つまらないのに無駄に複雑になる。
214デフォルトの名無しさん
2018/10/23(火) 21:25:00.36ID:Q7G3DiI6 ユニティやアンリアルエンジンの開発者にDirectXやOpenGLがいらないかどうか聞いてみてはどうか。
215デフォルトの名無しさん
2018/10/24(水) 13:02:33.86ID:XOgiiIOy■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国側が首相答弁の撤回要求、日本側拒否★4 [夜のけいちゃん★]
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す ★4 [蚤の市★]
- 解体ごみ約2.3トンを山に不法投棄か トルコ国籍解体工を逮捕 埼玉 [どどん★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★6 [ぐれ★]
- 「厚かましい挑発的発言だ」中国国連大使が高市首相発言に強く反発 日本の常任理事国入りに明確に反対 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★7 [BFU★]
- みっちゃん「南鳥島にレイアース資源が眠っているのは皆さんご存知のはずです。そのレイアースを中国が狙ってます」高市 [931948549]
- 【悲報】高市「稼がなきゃだめよ!稼ぐのよ!あとはよろしく」農水大臣「...(これが総理の農林水産業への思い気持ち)」 [517459952]
- ネトウヨ「中国のものは何もいらない!」 中国人「だったら漢字を使わないでください」 [314039747]
- 精神する時の🏡
- 【速報】春節の飛行機も欠航ラッシュ 高市早苗終了か [695089791]
- ネトウヨたち「「「戦争に反対する奴はスパイ!」」」 こんな状況でスパイ防止法が成立させられようとしてるとかマジでヤバすぎるだろ… [314039747]
