[過去ログ] 【C++】 DirectX初心者質問スレ Part41 【C】 (773レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
101(2): 2018/08/13(月)16:18 ID:urswoUFg(1) AAS
すみません、上げなおしました
画像リンク[png]:iup.2ch-library.com
画像リンク[png]:iup.2ch-library.com
102(1): 2018/08/13(月)17:12 ID:YdemEp8d(1) AAS
>>101
参照するメッシュがスクリーンじゃなくて、立方体になってるじゃん
103(1): 2018/08/13(月)18:07 ID:hJrJ9HSe(1) AAS
>>101
最後は立方体じゃなくて1枚の板ポリを描画する
104(1): 2018/08/13(月)21:02 ID:Tq2c1yHL(1) AAS
>>102
>>103
上手くいきました!!
ありがとうございます
105: 2018/08/14(火)17:50 ID:GfcO4nK4(1) AAS
>>104
いえいえ
106: 2018/08/17(金)00:16 ID:TP+ulg07(1/2) AAS
Direct3D12で描画ループを描けた記念のカキコ。
Direct3D12は、かなりVulkan(Mantle?)の影響を受けているけれど、
11以上に描画パイプラインが理解しやすく、GPUをイメージしやすくなっていていいね。
もう11には帰れない。 11に帰りたくない。
そこで12を普及に当たって、躓き易い箇所を整理、共有しておきたい。
107: 2018/08/17(金)00:29 ID:TP+ulg07(2/2) AAS
箇条書きで。
<Descriptor Heap、Descriptor Table、Root Signature、そしてCBV,RTV,DSV,SRVの関係>
1.Descriptor Heapとは?
CPUとGPUを結びつけるCPUポインタとGPUポインタの集合。
GPUポインタは、リソースを示し、CPUポインタはハンドルを指す
又、一つのエントリが11でいう「ビュー(RTV、DSV、SRV、CBV)」
2. Descriptor Tableとは?
シェーダリソース。
3.Root Signatureとは?
シェーダにリソースを入力するデータの構造定義。 レジスタとのバインディング情報
省9
108: 2018/08/17(金)08:23 ID:cK7DWfih(1) AAS
素晴らしい。
DirectXまだまだ終わらんよ。
109: 2018/08/17(金)09:46 ID:LJ797i4F(1) AAS
D3D12はD3D11がやってくれてたことを自前でやるだけだから凡その場合どうでもええが
DXRが目的の場合はいよいよ避けて通れなくなりそうだからなあ
110: 2018/08/18(土)01:31 ID:vcFx3lE6(1) AAS
どうせまた複雑過ぎるとか
世論が騒いで
易しくなった13が出るだろ
それまでワイは手を出さんで
つーかそれまでにガンとかで
死んでそう
111: 2018/08/18(土)01:36 ID:zXZq/jKJ(1) AAS
いや、簡単は11、複雑は12と住み分けることになってる。
112(1): 2018/08/21(火)11:56 ID:0hGhn6dd(1) AAS
どこで質問していいか判らなかったので質問させて下さい。
LOGFONT の lfPitchAndFamily の FIXED_PITCH と同等の判定を
FreeType2 で行いたいのですが、face_flags を
FT_FACE_FLAG_FIXED_SIZES と FT_FACE_FLAG_FIXED_WIDTH で判定しても、
どちらも FIXED_PITCH と違う判定が返されてるのです。
何か方法はありませんでしょうか?
113(1): 2018/08/21(火)18:25 ID:IlfNWypd(1) AAS
int* str;
int *str;
ポインタなんだけど、2つの書き方の違いって何?
114: 2018/08/21(火)19:09 ID:3qLPo3UW(1) AAS
思想、宗教の違い
115(1): 2018/08/22(水)08:29 ID:sSqkHd4p(1) AAS
>>112
固定ピッチにしたいなら、固定ピッチに対応したフォントに限られる。
MSpゴシック、游ゴシックなんかを与えても固定にはならない。(と、思う)
恐らく、NotoSansMonoというキーワードが妥協案におすすめ。
116: 2018/08/22(水)08:36 ID:swhwlLlG(1) AAS
字形の描画(レンダリング)で言えば、アンチエイリアス(輪郭のギザ付きを中間色で誤魔化す)もFTはやってくれるから、自前でピッチを固定したり、間隔を整えようとすると苦労する。
数学というよりも心理、グラフィックスデザインの領域に近いのかもしれない。
ついでに言うとDirectWriteは字形のパス(この場合、頂点配列に近い)を出力できる。
117(2): 2018/08/22(水)13:49 ID:Q4k/bgn4(1/4) AAS
>>113
前者は
int* str, hoge, fuga;
っていうミスをしがち
後者は
int *str, hoge, *fuga;
で書き分けの意図がはっきりする
よって後者をおすすめします
118(1): 2018/08/22(水)14:34 ID:BSjDybOq(1) AAS
>>115
説明下手で済みません。
そういう意味ではなく、Faceに読み込んだフォントが
固定ピッチなのか可変ピッチなのかを判定したいのです。
119(1): 2018/08/22(水)17:53 ID:su77kwqg(1) AAS
>>117
理解はできるが、後者は気持ち悪くてできないなぁ(汗)
しょうがないから1変数1行ずつ書いてる。
120: 2018/08/22(水)18:03 ID:Y/fFyhhT(1) AAS
>>118
詳しくは知らないが、恐らく「ない」んじゃなかろうか。
以下、すべて蛇足、憶測。
ウィンドウズほど優しくできていない。
字形のレンダリングに限れば、必要としない判定。
必ず字形毎(文字毎)に設計された間隔を読むから。
あとFTはAndroidで使われているから、そっちほが詳しくのがいるのではないかと。
121: 2018/08/22(水)18:46 ID:exTCpVs2(1) AAS
>>117
ありがとうございます
122: 2018/08/22(水)19:57 ID:Q4k/bgn4(2/4) AAS
>>119
気持ち悪いのは
int *str, hoge, *fuga;
が混ざってるからで
完全に一行ずつに分けなくても
int hoge, hage;
int *str, *fuga;
なら問題ないだろ
123: 2018/08/22(水)19:59 ID:Q4k/bgn4(3/4) AAS
int* str, hoge, fuga;
の意図が
int* str, * hoge, * fuga;
だとするとこっちの方が気持ち悪い
124: 2018/08/22(水)20:00 ID:Q4k/bgn4(4/4) AAS
宗教戦争になるのは認める
125(2): 2018/08/23(木)14:19 ID:0oLK3sfm(1) AAS
ミニゲームじゃなくて気合入って作られてるDirectX使った出来の良いゲームで
言い方悪いけどパクれるというかお手本になるソースコードって公開されてない?流石に都合良すぎるか
126(1): 2018/08/23(木)15:20 ID:fvt/af8o(1) AAS
GitHubを漁る
127: 2018/08/23(木)22:25 ID:cv8sNhFm(1) AAS
文法、記述ルールは、宗教戦争だけど、
最近流行りのヌルポ排斥運動は、熾烈な勢いがある。
コーティン?だったかは、変数の使い回しを言語レベルで排斥する思想。
ヌルポを排斥するため「仮決め(代入なしの変数宣言)」を許さない。変数の仮決めは穢れている。
初期値から消滅まで、必ず値を持たせるためには、有意な値を引き回せばよい。
結果、グローバル、アクセス自由度の高い変数に流れ、見通しの悪い、誰が更新参照してんだかを特定しにくく(匿名性を高める効果を促進しやすく)なるか、アホみたいに引数を引き回すかコンテキスト構造体を引き回すことになる。
コンテキスト構造体とは、すなわち匿名性の促進と道義。
128(1): 2018/08/23(木)22:36 ID:DjzyTv43(1) AAS
>>125
ソースコードだけならば、Elonaがソース公開されているんでないかな。
よくしらんけど。もしかしたら作者と直に連絡を取った人だけに渡してるのかもしれん。
最近は、コンシューマでもインディーズとカテゴライズされて地位が出来上がっているから、なかなか巡り会えないと思う。
最近のインディーズゲームは、少しおかしいぐらいに技術力が高いからね。
3Dシューティングで視点がステージや進捗で変わるのがあるが、あれはかなり異常な出来だった。
もはやプロの仕事。
129(3): 2018/08/25(土)16:33 ID:aPxb4sFP(1) AAS
もうDirectX使うの止めるわ
130: 125 2018/08/25(土)16:55 ID:ux2vpN2s(1) AAS
>>126
適当にGitHubとか言ってるんじゃなくてマジであんの?GitHubすごいな
どういった風に検索すればいいんですか?
>>128
Elonaはもうソース配布してないみたいですね
というかElonaってHSPだけどDirectX使ってたのか
131: 2018/08/25(土)17:04 ID:YH9nAcbl(1) AAS
>>129
まぁ、そう言わずに…
132: 2018/08/25(土)17:20 ID:uMKey/32(1) AAS
>>129
DirectX5からの付き合いだが、俺もVulkan移行中ですわ
133: 2018/08/25(土)22:41 ID:xNcAdL4l(1) AAS
directX12で勉強がてらゲーム作ってたけどAI流行ってたから
CS使ってAIの実験してるわ。
とりあえずC++とDirectxあれば何でもできるね
134: 2018/08/26(日)21:10 ID:9TzHFCTa(1/2) AAS
>>129
VulkanとD3D12、両方使っているけど、
比較的に12の方が優しいが、どっちも癖がある。
整理されていて、より些細なことまでできる分、一山越えると少しだけVulkanが好きになる。
Vulkanの入力アタッチメントなんかは、避けるべきと思う。
vulkanとd3d12の違いは
vulkan
・描画バスの仕組み(このパスは、マルチパスレンダリングのパス)
d3d12
・レイトレができる(らしい)
135: 2018/08/26(日)21:16 ID:9TzHFCTa(2/2) AAS
描画パスの仕組みがないのは、恐らくは後方互換性。
利用するプログラマをつき放さない意味での用語や理解についての互換性が趣旨に感じた。
(そんな言葉はないけど、エクスペリエンスのデノミを避ける、が近い?)
Vulkanの描画パスは、吐ける。
136: 2018/08/26(日)23:08 ID:GZFWl5MZ(1/2) AAS
何でOpenGLやめるん
137(1): 2018/08/26(日)23:09 ID:GZFWl5MZ(2/2) AAS
↑クロノスグループが、の意味ね
138(3): 2018/08/27(月)04:36 ID:xIxAfuYd(1) AAS
ゲーム制作をしてるのですが、
XInputGetState関数でXbox Oneのコントローラーは扱えますか?
MSDNでは
『XInput とは、Windows 向け Xbox 360 コントローラーからの入力値を、アプリケーションで受け取れるようにする API 』
と書いていたのですが…
外部リンク[aspx]:msdn.microsoft.com
139: 2018/08/27(月)08:12 ID:rKzetDHK(1) AAS
>>138
スチームでの対応状況が参考になるのではないかと。
非対応なら無理。対応しているならいける余地はありそう。
7でPS4コントローラがUSB接続で制御できたことは確認済み。
なお、これはDirectInput8を使った。
140: 2018/08/27(月)11:19 ID:9KYhKRgJ(1/2) AAS
ありがとうございます
141: 138 2018/08/27(月)11:32 ID:9KYhKRgJ(2/2) AAS
検索して探していると『WindowsにはXBoxのコントローラを使用するためにXInputというAPIが用意』とか『Xbox One、Xbox360等のX-input式のコントローラー
』とか等と書いてあるブログが複数発見したので同じ仕組みかな?とは思うのですがMSDNを見ているとXbox360専用と書いていたので
142: 2018/08/27(月)18:27 ID:kh1Bw1m+(1) AAS
>>138
使えるよ
143: 2018/08/30(木)00:13 ID:qBKCuhvw(1) AAS
>>137
Currentは、もうヤダ。
マルチスレッドレンダリングする上で面倒くさい。
って事だと理解している。
命令のキューと整理されれば、プロセッサと同様なメモリ保護も視野に入るし、
とあるシェーダが別プロセスのテクスチャを読める可能性を排除しやすい。
11までのGPUは、そういうのは皆無だろうし、12にもvulkanにもなさそうだしね。
GPUにスワップメモリ、仮想メモリ空間、スワップで逃がすストレージなんかないのだから。
144(2): 2018/09/03(月)12:41 ID:NxxlWETJ(1/2) AAS
DirectX9でSetRenderStateを使ってブレンディングする場合
除算ブレンディングはどうやったら良いでしょうか?
加算なら以下で出来ますが。除算がよく判りません。
lpD3DDev->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
lpD3DDev->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);
145(1): 2018/09/03(月)15:45 ID:O77C1Rb1(1) AAS
>>144
君には教えない
146: 2018/09/03(月)21:12 ID:NxxlWETJ(2/2) AAS
>>145
おしえて!w
147(1): 2018/09/04(火)05:42 ID:ygKGdo3P(1) AAS
>>144
公式のリファレンスにのってない?
148(1): 2018/09/04(火)13:02 ID:hJtprqgF(1) AAS
dstをぜろ。srcを色指定にすればいいだけに見える
oc=(tc*dest bc)+(pc*src bc)
tc ターゲット色、pc シェーダ出力色
149: 2018/09/04(火)15:48 ID:ep2b6+2r(1) AAS
>>147
たぶん載ってない。
>>148
わー!ありがとう!やってみる。
150: 2018/09/07(金)16:13 ID:M1sJGdfN(1) AAS
自己解決したわ、アホ共。
151: 2018/09/10(月)08:55 ID:c/4EXXgn(1) AAS
皆さんDirect3d上でのGUIは
何を使っていますか?
152: 2018/09/10(月)09:06 ID:fHwpB0MY(1) AAS
自作かImGuiやね
153: 2018/09/11(火)08:25 ID:vjUQtdrA(1) AAS
ウィジェットのことなら自作だな。
良さそうな小さいのが見当たらない。
ゴリゴリと頂点配列を作って動かしている。
字と背景を別々に作るから、かなり複雑で眠い
154(1): 2018/09/18(火)04:59 ID:v4BXp/hu(1/2) AAS
ただのゲーマーだけど聞いていい?
いまだDirectX6使ってるゲーム好きで時々やるんだけど
古いバージョンっていつか切り捨てられて動作しなくなったりする?
Windows10でも動いてるしこれからもずっと動いてて欲しいんだけど。
155(1): 2018/09/18(火)06:57 ID:PQNDTy/s(1) AAS
directXはCOMテクノロジーがベースだから
古いゲームでも最新ハードの機能が使えるんやで
例えばdx6ゲームでHWTLやテッセレーション
高度なAAや4k解像度適用などなど
ま、今は絶賛開発中なのでしばし待て
22世紀中にはリリースされるよ
156(1): 2018/09/18(火)07:41 ID:Qxe4285y(1) AAS
>>154
DirectX云々以外のところで動かなくなる。イースとかもうWidows10では互換モードでも起動すらしない
157: 2018/09/18(火)23:07 ID:v4BXp/hu(2/2) AAS
>>155-156
DirectX自体は互換性があって大丈夫ってことかな?
それ以外で動かなくなる可能性の心配した方がいいってことか。
158: 2018/09/19(水)11:42 ID:PupZqwJJ(1) AAS
誤解が拡散中
159(1): 2018/09/19(水)22:02 ID:DVXllMcK(1/2) AAS
DirectXに互換性などはないような。
ただ過去のスタックが残っているだけのこと。
それすらDirect3D9c未満が動くのか?は疑問がある。 ドライバが非対応なんじゃないだろうか。
あと、動画再生時のCODECが非対応で、動画再生できずに堕ちるってのもあるような。
ソフトウェアMIDIもドライバで実現しているのか、Microsoft標準ドライバが実装しているのかも疑問がある。
取り敢えず、過去に買ったWindows 95時代のゲームで動画再生できずに堕ちたゲームは観た事がある。
160: 2018/09/19(水)22:08 ID:DVXllMcK(2/2) AAS
Windowsは、Windowsのみで機能を実現など出来ていない。
ハードウェアを扱う部分は、メーカーが提供するドライバが核であり、
そこがWindowsの互換性を提供し、メーカーに向けたドライバ要件が担保となっている。
Officeが必要とするドライバ機能がドライバ要件を決定づけていて、
サポート期間中の製品が必要とする部分なら、ドライバも必須となる。
従って、Direct3D関係の機能は、既に9c未満が動く保証はないと思う。
161(1): 2018/09/20(木)00:02 ID:gdLwWWhU(1) AAS
>>159
ドライバの対応次第ってことかな?
現状ではDirectX6や7や8のゲームは普通に動いてるけど
メーカーがドライバ対応しなくなった時が終わりってこと?
162(1): 2018/09/20(木)07:52 ID:K+Ua86eW(1) AAS
>>161
ここでウダウダ聞いてもなんの担保にもならんぞ
対応しなくなったら終わりではなく更新されないだけ、それで動き続けるかどうかは神の味噌汁
たまたま動かなくなっただけかもしれない、たまたま動いているだけかもしれない
3DゲームはドライバでなくDirect3DのAPIに対してアクセスしているので
WindowsでDirect3D(の該当バージョン)が態々削除されない限りは互換性はあるとは言える
もちろん削除されなくてもWindowsの更新で内部の挙動が変化してゲームが動かなくなるなんてことはざらにある
163: 2018/09/20(木)10:45 ID:7WHuQIEO(1/2) AAS
WMが変わった時が一番大きい変化だった気がする
164: 2018/09/20(木)10:51 ID:7WHuQIEO(2/2) AAS
DWMが変わったタイミングで動かなくなったアプリが増えたっていう意味です
165: 2018/09/21(金)09:48 ID:qOWS4e0S(1) AAS
>>162
互換性自体は結構あるね。
VBのDirectX用のDLLはもうOSに含まれてないけど自前で用意すれば結構動く。
ただ昔のゲームで使われてたカラーキーがもうダメなハードがあるね。
166: 2018/09/21(金)18:28 ID:7CqPf/Kx(1) AAS
パレットテクスチャとかも危ないか?
167: 2018/09/22(土)21:47 ID:tZvIjPe8(1) AAS
危ないね
168: 2018/09/27(木)17:39 ID:egrolh38(1/2) AAS
質問です。
メインスレッドで描画しながら別スレッドでテクスチャを大量に読み込むと
画面がちらつきます。D3DXCreateTextureFromFileを実行した時にちらついてるようです。
ここにコードを書く事が出来ないのでエスパーでおねがいします。
思い当たる原因はありますか?D3DDeviceをスレッドをまたいで参照してたりするからでしょうか?
169: 2018/09/27(木)17:40 ID:egrolh38(2/2) AAS
age
170(1): 2018/09/27(木)18:12 ID:lrUHFZkm(1) AAS
ロックするかあらかじめ全部読んでおくか
171(1): 2018/09/27(木)20:45 ID:PZih89QY(1) AAS
D3DDeviceを
マルチスレッドで使う場合
スレッドセーフで作らんとダメだろう
そこはちゃんとやってるのか?
172(1): 2018/09/27(木)21:58 ID:ZotRguTd(1) AAS
マルチスレッドモードに設定してないと、Debugモード実行で警告メッセージ出まくらなかったっけ?
それが出てたら、出ないようにするとこから。
173: 2018/09/28(金)00:01 ID:frk51yg8(1/4) AAS
>>170-172
ありがとうございます。やぱ作り方を不味ってるっぽいっすかね?
言われた事を参考に自分なりに調べてみます。
また何かあったら宜しくお願いします。
174(1): 2018/09/28(金)08:46 ID:WfDD/blL(1) AAS
ちらつきで疑わしいのは、presentする辺りかな
ディスプレイに表示する描画ターゲットを作り込むときに参照しているテクスチャでもあるんでないかと。
というか複数のスレッドからデバイスコンテキストを触ると蹴られたと思う。
それでもちらつきが一時的な症状ならば、テクスチャ関数が中で排他しているからでなかろうか?
ところでチラツキって具体的な症状としては、どれなんだろう。
・一瞬黒か白が入る
・カクカクしたアニメーションになる
・デジタルノイズが入る
・サブリミナルな絵が入る
・何しにきたんだよ?お前のために決まってるだろ!と友貴に言われる
175(2): 2018/09/28(金)09:59 ID:frk51yg8(2/4) AAS
>>174
ありがとうございます。
テクスチャ読み込みした瞬間に「・デジタルノイズが入る」といった感じです。
具体的に言うと「ブロックノイズっぽいものが所々に出る」といった感じです。
症状自体はそこまで酷い訳ではないんですが、チラチラするので気になってます。
一回あたりのノイズのサイズは小さいですね。画面がフルHD時で、128x128くらいです。
176(1): 175 2018/09/28(金)12:12 ID:frk51yg8(3/4) AAS
テクスチャ読み込み中は特に自分ではD3DDeviceの書き換えは行っていなかった(と思う)のですが
一応念のために以下みたいなクラスを作って排他処理を徹底したら直りました!
しかも20秒くらいかかってたテクスチャ読み込みが何故か5秒くらいで終わるようになって
いいことずくめでw 最高っす。
class CLockObject {
protected:
CRITICAL_SECTION m_CriticalSection;
public:
CLockObject(){ InitializeCriticalSection(&m_CriticalSection); }
void Lock(void){ EnterCriticalSection(&m_CriticalSection); }
省15
177(1): 2018/09/28(金)14:01 ID:KnH7gKZy(1) AAS
>>175
その症状ならむしろ巧くマルチスレッドに動いてしまっている、疑いもあるような。
読み込みが未完なテクスチャを読み込めば、瞬間的に変な画素を参照するから、それがノイズに映る。
でも考えにくいので、変な描画、予期していない描画が挟まれて映っている。
あと突っ込まれなかったから自分で言うが
友貴はチラチラじゃなく、ちゃらいだろ。
178: 2018/09/28(金)15:26 ID:frk51yg8(4/4) AAS
>>177
ありがとうございます。
一応>>176でノイズ自体は解決して読み込み速度も上がったのですが
描画スレッドと別で読み込みスレッドでテクスチャを読み込んでいる時に
今度は排他処理の影響か描画速度がかなり落ちてしまう症状が出てます。
ただ別スレッドにして排他処理をしっかりやって読み込むと読み込み速度は
かなり速くなったので開始時に画面を黒で塗りつぶして一気に読み込む方法をこれでやろうと思ってます。
出来れば描画スレッドの速度が落ちずに読み込めればいいんですがこれでも問題ないかなと。
まとめると以下のような感じですね
1 シングルスレッドで開始時に読み込むと普通に20秒くらいかかる
省2
179: 2018/09/28(金)16:04 ID:O5kQkBkV(1) AAS
そもそもそのテクスチャは実行時に毎回読まないといけないものなのか?
180(1): 2018/09/28(金)17:38 ID:TYfa5akj(1) AAS
176の実装だとマルチに動いていない気がする。
クリティカルセクションは、一つのスレッドが入ったら、離れるまでは他のスレッドが待たされる。
つまり並列に実行していない。
真面目に並列度を高めるならば、テクスチャ毎に排他オブジェクトを持たせて、読み込みが完了していないテクスチャを描画ループのスレッドが触ろうとしたら、そいつをまるごとスキップして描画を続けるとかするべきかも。
ジオメトリなんかの単位でアセットを管理しているならば、読み込み完了前のジオメトリに紐付くテクスチャや頂点は描画をスキップする実装。
あとはオフラインサーフェースへの書き込みなんかの単位でまるごとスキップとかもできるかも。
チラツキを予防して、読み込み終わったアセットを段階的に画面に映したいなら、そういったリソース管理が必要。
でも大抵は、そんなことせず、読み込みが全部終わるまでは黒い画面を見せる実装を選ぶと思う。
GPUコアの限界までテクスチャなんかの読み込みスレッドを並列化することを選びそう。
181: 2018/09/29(土)11:09 ID:hzO5ElQi(1) AAS
>>180
ありがとうございます。
なるほど。効率の面ではまだまだ出来る事は色々あるんでしょうね。
ただ複雑になって下手な事して不具合が出ると困るので自分も単純な方法で行こうと思います。
マルチスレッドで読み込むと読み込み速度自体は上がったので排他処理だけしっかりやって
あとは画面を塗りつぶしてそこで一気に読み込む方法を今回は採用しようと思います。
182: 2018/09/29(土)16:02 ID:urX7Wqqu(1) AAS
d3dのヘルプを読むと
マルチスレッドでは
イミディエイトコンテキストは使わずに
別途デバイスコンテキストを作って
描画スレッドではそれを使うようにとあるよ
多分必要なのはそういうところと思う
183: 2018/09/29(土)16:32 ID:apMOeRQP(1) AAS
D3DXCreateTextureFromFileとか言ってるからDeferred Contextすらない世代のことじゃろ
184(1): 2018/10/03(水)17:59 ID:3HnGx7Th(1) AAS
1809記念
Direct3D12でコマンドキューにシグナルするタイミング
1.ExecuteCommandList()
2.Present()
一回のコールの度にフェンスの数値をインクリメント(=GPUに処理を実行する契機を与える)
これを怠ると終了契機にフロントバッファをコマンドキューが掴んでる、との例外が出る。
ギットハブのError on shutdownってタイトルのスレッドにも報告されている。英語
取り敢えず、APIマニュアルでこの旨の事柄を書いたページは見つけられなかった。
ただのシェア
185: 2018/10/03(水)18:58 ID:bNH0XzXA(1) AAS
>>184
これからもよろしく頼む
186: 2018/10/08(月)01:17 ID:OIFhWgmg(1/5) AAS
ある画像を別に用意したマスク画像の形でリアルタイムでくり抜きたいです(マスク画像のフチのぼかされてる所も再現したい)。
ただしシェーダーは使わずやりたい。ステンシルとかブレンディングでどうにかなりますか?
リアルタイムでやりたいのでロックして直接弄るとかは無しでお願いします。
フォトショの例ですがこんな事をリアルタイムでやりたい(くり抜かれた画像の余白の部分はアルファ値で透明になるように)
外部リンク[html]:helpx.adobe.com
187(2): 2018/10/08(月)01:37 ID:LP2GoVYR(1/2) AAS
(1)マスクをレンダーターゲットのαに書き込み
(2)くり抜き対象画像のブレンディング設定値を工夫して書き込み
でいけるかな?
188: 2018/10/08(月)02:02 ID:OIFhWgmg(2/5) AAS
>>187
(1)は、アルファチャンネルつきの画像を用意して描画するとして
ARGBのうちAだけが反映されるように(2)でうまく合成するという事になりますかね?
RenderStateはSRCがDESTALPHAにすると(1)の画像のアルファ値が上手く反映されますね。
ただDESTをどの値にしてもARGBのうちのRGBの部分も反映されてしまってフチが黒くなってしまいます(マスク画像が黒い為)。
ARGBのAだけ反映させるにはどうしたらいいでしょうか。
189(1): 2018/10/08(月)02:21 ID:LP2GoVYR(2/2) AAS
マスク画像のRGBはオール0(真っ黒)で、Aだけマスクの形となるα値にする。
んで、(1)のときはRGBは加算合成で、AだけSrcをDstにそのまま書き込みってできないかな?
190: 2018/10/08(月)03:05 ID:OIFhWgmg(3/5) AAS
>>189
加算合成で黒が見えなくなるのは黒のピクセルのAが0になるからじゃないですかね?
RGBはどうやってもなんらかの値を取らないといけないので…
ブレンディングでやるのは無理なんでしょうか…
191: 2018/10/08(月)03:58 ID:OIFhWgmg(4/5) AAS
>>187
色々やってみたんですが、まずくり抜きたい画像を描画しておき
そのあとにマスク画像として用意した全部黒で真ん中だけ丸くアルファ値ゼロの画像を
上から描画して、最後にその合成された画像を加算アルファで描画すると
余計な部分の黒が全部透明になって理想に近い形になりました。
ただ加算されるので真ん中の描画される部分がちょっとピカピカしてしまいますが。
もうちょっと試行錯誤してみます。
192(1): 2018/10/08(月)13:27 ID:+5qyKWRv(1) AAS
馬鹿っぽい
193(1): 2018/10/08(月)14:56 ID:OIFhWgmg(5/5) AAS
>>192
加算以外で綺麗に抜ける方法教えて頂けないでしょうか?
ブレンディングカラーキーはハードが対応してなかったです。
194(1): 2018/10/08(月)20:56 ID:/sZzmon7(1) AAS
ステンシルがいいんじゃねーの?
そもそもステンシルって
そういう型抜きをやるための機能だし
ステンシルバッファをゼロクリア
型抜き用画像を描画(描画されたピクセルのみステンシル値インクリメント)
対象の画像描画(ただしステンシル値!=ゼロのピクセルのみ)
こんな感じで
195: 2018/10/09(火)08:22 ID:6/4ynI0N(1) AAS
>>194
ステンシルですか。やってみます。ありがとうございます。
196: 2018/10/09(火)12:15 ID:FMe/8vRd(1) AAS
錆びたりしませんか
197: 2018/10/09(火)14:39 ID:iGqJuC8Y(1) AAS
ぼかしが不要ならステンシル一択だろうけど
198(1): 2018/10/09(火)16:30 ID:46xU4Pr2(1) AAS
ボカシが必要なら
マルチテクスチャブレンディングで
いいだろう
シェーダ使わないってんで
D3D9あたりだと思うが
RGBとAを別々に設定出来るし
要望は満たせるだろう
199: 2018/10/09(火)21:27 ID:dz3bRAZk(1) AAS
>>193
ピクセルシェーだでdiscard
200(1): 2018/10/10(水)01:30 ID:y7T0G2Lv(1) AAS
>>198
ぼかしが必要なので、それよろしければ詳しくおねがいします!
上下前次1-新書関写板覧索設栞歴
あと 573 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.041s