【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リンク
2020/01/28(火) 16:02:33.65ID:EXDr4RZo
>>441
視錐台カリング
出来合いのでやるならDirectXMathのBoundingFrustumなど
2020/01/30(木) 07:47:52.51ID:/6+/KJKE
>>441
視点から奥方向への距離は、深度範囲に設定した最奥値(よくあるサンプルだと1.0から1000のパラメーターでいう1000の方)だから、視点から1000離れたオブジェクトを描画しなければいい。
視点から球上に距離を計算してもいいし、単純に視点座標系でz成分1000以上を弾いてもいい。
2020/01/30(木) 12:35:53.56ID:ObCTWzqh
点の場合はな
2020/01/31(金) 07:52:09.24ID:FQqRlDai
質問です。ddsファイルに並んでいるテクスチャ一つ一つを、
画像形式で保存する方法があれば教えていただきたいです
446デフォルトの名無しさん
垢版 |
2020/01/31(金) 10:25:26.57ID:YmbKsQW3
この辺
http://techblog.sega.jp/entry/2016/12/26/100000
http://www.shader.jp/?page_id=2076
https://takao-2.hatenadiary.org/entry/20050722
http://maverickproj.web.fc2.com/d3d11_04.html
2020/01/31(金) 12:02:42.61ID:FQqRlDai
>>446
ありがとうございます!
2020/02/02(日) 15:12:01.08ID:fRYkELO/
使ってるOSがLinuxでOpenGLの民なんですが、
DirectXとOpenGLの違いを教えてください。
OpenGLを知ってたのでエンジン的な物でも作ろうと思い、
何となく半々くらいだろうと思ってゲームプログラミングについて調べたら
情報の殆どがDirectXだったのが凄く意外で
……DirectXの方がゲーム作りに優れているならその具体的な理由が知りたいのと、
内容によっては乗り換えも検討してるのが現状です。
2020/02/02(日) 16:01:15.82ID:aXk/zDs3
何が意外って何も知らないIT音痴がLinux使ってること。
世界のPCのほとんどがWindowsなんだから当たり前だろうに。PCゲーム市場=Windowsなんだよ。
2020/02/02(日) 16:25:14.55ID:0Gqmr542
>>448
違いなんて膨大にあるし、その辺を説明したwebページも大量にあるのだから、まずはそれを自分で調べて疑問点をもっと具体的に絞り込んだら?
451デフォルトの名無しさん
垢版 |
2020/02/02(日) 18:07:15.74ID:iCgKJVx9
そもそも技術的に優れたものが流行るとは限らないし
実はそっちの方がレアケース
452デフォルトの名無しさん
垢版 |
2020/02/02(日) 18:09:02.20ID:iCgKJVx9
ちなみに Windows で OpenGL 使ったって構わないんだぜ
>>449 は変なこと言ってるけど
Linux で OpenGL に慣れてるって思ってるなら
Windows でも OpenGL 使いなはれ
2020/02/02(日) 19:00:39.04ID:aXk/zDs3
なぜOSS陣営は常に技術的に遅れていたいう事実を隠すんだ?
454デフォルトの名無しさん
垢版 |
2020/02/02(日) 19:38:17.60ID:6Y3Bd2tq
過去形で言われても困る
2020/02/02(日) 23:57:53.19ID:+9EpeIpw
一番の違いはIDEじゃねw
Linuxで大き目の開発しろって言われたら発狂しそうになるわ

どうせならVulkan頑張ってみたらいいのに、今回だいぶDirectXに寄ったし
関係ないが、昔MIFESとか使ってたなぁと検索したらまだ頑張ってたのな・・・
2020/02/03(月) 02:24:45.19ID:qoxrkkCs
ああー
42歳超えると意欲が
欠片もでねええよおお
去年は数行程度、今年はゼロだ
歳はとりたくねえもんだ
2020/02/03(月) 04:12:32.54ID:9tgcRyN6
445で質問した者です
教えていただいたサイトを読んでみたのですが、内容が難しくよく分かりませんでした
具体的にはMOD用に↓のような画像をパーツごとに分解したいです
https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcTeC5R4VL4oDXM4_moWz5wTJw_OcplSDSQ1MnDuEtQHKVBPji9Y
繰り返しの質問になってしまい申し訳ないですがよろしくお願いします
2020/02/03(月) 06:19:24.35ID:NIb9VnQs
>>457
嫌です
2020/02/03(月) 07:00:01.66ID:P8gMBc/D
>>457
同じ質問を繰り返しても同じ答えにしかならないだろう。具体的に何が分からないか絞られるならそれについての答えが得られるかもしれないけど、全部分かりませんというなら前提となる知識が足りない。
今の君には無理なことだから諦めるか、理解できるようになるために頑張りな。
2020/02/03(月) 07:27:22.07ID:I21LlSsI
>>457
てかModdingが目当てなのに間違えてプログラム板で聞いたパターンじゃないの?
ddsからbmpとかに変換するツールならそこいらに転がってるから自作する必要ない
2020/02/03(月) 07:30:04.19ID:9tgcRyN6
>>459
アドバイスありがとうございます!
そうですよね。まずは前提知識の勉強から始めてみます。
2020/02/03(月) 07:50:33.08ID:9tgcRyN6
>>460
Gimpで変換はできたのですがパーツごとに分ける方法が分からず。
境界線が曖昧で色域選択ではうまく切り取れませんでした。
2020/02/03(月) 08:29:05.55ID:I21LlSsI
完璧に切り分けるにはモデルのUV座標調べないといけないから難易度一気に上がるぞ
ある程度余分なとこも残して保存すればええやん
ていうかここはプログラミングの板だからスレチ
gimpのスレとかそのゲームのスレ池
464デフォルトの名無しさん
垢版 |
2020/02/03(月) 12:26:26.62ID:62FLJlST
ここまで Unreal Engine なし
465デフォルトの名無しさん
垢版 |
2020/02/03(月) 12:27:16.66ID:62FLJlST
>>456
そのうちチンチン勃たなくなる
射精しても気持ちよくならない
466デフォルトの名無しさん
垢版 |
2020/02/03(月) 12:29:36.68ID:62FLJlST
>>457
blender 使って python で加工すると良いことがあるぞ
2020/02/03(月) 17:56:26.87ID:YBknaJ4I
doaっぽい
2020/02/05(水) 01:28:04.13ID:9pjNeGwV
>>465
もう3日もシコってない
もう終わりや、、
2020/02/06(木) 05:36:57.30ID:Pb0bgiwN
現在ゲーム用の画面分割に挑戦しているのですが、
ビューポートの座標をウィンドウの左上の端(0,0)から動かすと、ポリゴンが三角形に欠けてしまいます
常にそうなる訳ではなく特定の位置特定の角度からそのポリゴンを見るとそうなるといった状態です
原因解る方いらっしゃいましたら、教えていただけないでしょうか

1ループの中で二個のビューポートでそれぞれ一回ずつ描画しているので
一つ目のポート用の描画の際のレンダーステートの変更が二つ目の描画の際にリセットされておらず影響しているのかとも思ったのですが、
試しに一つのビューポートだけ描画してみた所やはり同じ問題が発生してしまいました

逆にどちらのビューポートの座標も左上の端に合わせた状態であれば
二回描画しても問題は発生しませんでした

少々解りにくくて申し訳ありませんが動画にしてみました
赤と青の平面を二枚前後に表示している状態で
https://dotup.org/uploda/dotup.org2056189.mp4.html
ビューポートを実行中に移動させてみる実験をしてみました
ビューポートの座標を(0,0)に近付ければ近づけるほど欠損する部分は減っていきます
https://dotup.org/uploda/dotup.org2056191.mp4.html
470デフォルトの名無しさん
垢版 |
2020/02/06(木) 12:38:08.93ID:sNihMBVC
ポリゴンに対して画角が狭すぎるんじゃね
471デフォルトの名無しさん
垢版 |
2020/02/06(木) 12:42:42.86ID:sNihMBVC
ああT字の頂点が画面から消えるのと同じタイミングで三角形が発生してるな
2020/02/06(木) 14:30:05.10ID:eGONke8S
ありがとうございます

>>470
画角を広くしてみた所欠けにくくはなったのですが
やはり同じような問題が起きます
https://dotup.org/uploda/dotup.org2056348.mp4.html

>>470
制作環境はDirectX9を使用したものなのですが、
友人にアドバイスを求めた所、
DirectX9の決まった範囲以外の頂点やポリゴンを描画しない仕組みの予期しない動きが原因の可能性があると教えてくれました

>>471様のおっしゃられているように特定の頂点(?)が画面範囲外に行く事により
描画されなくなっているのかもしれません

一番下に緑色の地面は小さな四角形ポリゴンの集合で出来ており、
その上に大きく頂点を4つ置いて作った赤と青の四角形ポリゴンを置いている状態なのですが、
緑色の地面には問題が起きていない所からしても頂点が特定の範囲から外れる事が原因な気がします

根本的な解決が図れない様であれば、
上の赤と青の平面も細かい四角形の組み合わせで作る事で解決しようと思います
473デフォルトの名無しさん
垢版 |
2020/02/06(木) 14:35:15.48ID:sNihMBVC
シェーダーにバグがあるか
なんかミスしてると思うよ
ソース無いとコメントしようがない
2020/02/06(木) 14:40:34.24ID:euRWcwLl
赤と青の境目を少し隙間空けて配置したらどうなる?
2020/02/10(月) 07:43:09.43ID:P1RMBO0j
ポリゴン数が少ないからでは?
デバイス正規化座標から頂点の一つでも外にあれば、ラスタライズ対象から取り除いているような気がする。
この部分の実装に規格がどう定義しているのかは知らないけど。
問題となるあたりに1個の三角形を置くと切り分けできそう。
2020/02/10(月) 07:45:41.23ID:P1RMBO0j
後は射影行列の深度minに0を入れているとか。
2020/02/20(木) 18:44:07.77ID:+Ka50e+j
魔導書読んだらUnityやUnrealに対抗できますかね
2020/02/20(木) 20:10:17.70ID:TOp7IeKo
日本の書籍に頼ってる時点で足の小指の爪の先のカス程にも及ばんよ
2020/03/14(土) 17:25:09.90ID:vZvO29iz
UEって優等生面してる割には重いわ
2020/03/30(月) 17:49:18.16ID:IAJSu2bH
Direct2DやDirectWriteに興味があるのですが、DirectX12とは異なるバージョン体系で、
1.3とかになるんでしょうか……
2020/03/30(月) 19:02:25.98ID:3n6oCTMO
なるんです
482デフォルトの名無しさん
垢版 |
2020/05/18(月) 09:53:46.54ID:CIK13cwb
direct x ってどのくらい難しいですか?
例えば四角ポリゴンを表示するまでに1年かかるというレベルの難しさなんでしょうか
普段はblenderを使っています
483デフォルトの名無しさん
垢版 |
2020/05/18(月) 10:03:50.36ID:XEI7YtdQ
blenderに比べれば大変
やる気次第
484デフォルトの名無しさん
垢版 |
2020/05/18(月) 10:08:05.46ID:XEI7YtdQ
ポリゴン一枚ならここ観ればすぐできる
http://marupeke296.sakura.ne.jp/DirectXMain.html
485デフォルトの名無しさん
垢版 |
2020/05/18(月) 10:10:48.38ID:CIK13cwb
>>483
>>484

ありがとうございます
blenderのアドオンの場合、blenderの更新によって使えなくなる事が多いので、vs c++などで作っておけば後が楽かなと思ったことが動機です。
少しずつやっていきます。
486デフォルトの名無しさん
垢版 |
2020/05/18(月) 10:13:29.64ID:XEI7YtdQ
あとblenderとDirectXはZ軸の方向が逆だったかも知れない
2020/05/18(月) 10:44:39.95ID:sRUEcai8
>>485
OpenGL の方が良いかもね
488デフォルトの名無しさん
垢版 |
2020/05/18(月) 12:37:41.09ID:CIK13cwb
↑ありがとうございます。
調べたところ、モデリングツールはopenglが多いみたいですね。
489デフォルトの名無しさん
垢版 |
2020/05/18(月) 13:02:42.15ID:WV9QLH/+
描画コストの計算ってどのようにして行うのでしょうか?

GPUの性能から計算できるとか言われたのですが、
調べても検索にヒットしなくてよくわかりません。
バス数・SP数・動作Hz等からできるらしいのですが……

どなたかご教授願えないでしょうか?
490デフォルトの名無しさん
垢版 |
2020/05/19(火) 15:05:30.33ID:8HY/3oGP
【数学をつくった天才たち@】数奇な運命を辿った愛すべき変人
https://www.youtube.com/watch?v=wy_L2CS4aXE
【暗号解読@】人類の歴史を変えた天才たちのドラマ
https://www.youtube.com/watch?v=7dSVR_zuJJs
【ブロックチェーン@】〜5G時代の最終兵器「ブロックチェーン」人類の未来を変える大発明!〜
https://www.youtube.com/watch?v=HfIqAQUPrjA
【サピエンス全史@】〜1200万部突破の世界的ベストセラーを世界一わかりやすく解説〜
https://www.youtube.com/watch?v=fud4-L2lnqQ
【金持ち父さん@】お金持ちになる手順
https://www.youtube.com/watch?v=57zybaVxc2o
2020/05/19(火) 15:29:15.06ID:VP2fOBMJ
>>490
スレチ グロ
2020/05/19(火) 18:52:58.54ID:Oj7siCaV
あっちゃんあんまり好きじゃなかったけど、プレゼン能力高いよね
2020/05/19(火) 20:22:48.18ID:F1sOO54s
>>489
ベンチマークとかかな?
2020/05/23(土) 16:31:27.95ID:HTVp/rZ5
directx11のシェーダリフレクションについて質問です。
シェーダーの定数バッファのスロット番号情報ってシェーダーリフレクションで
取得できますか?
2020/05/23(土) 22:24:36.26ID:HTVp/rZ5
すみません、自己解決しました!
普通に取得できました
2020/05/26(火) 12:27:13.25ID:B/JpQdAR
マイクロソフトのDirectX エンドユーザーランタイムWebインストーラのダウンロードダウンロードしたいのですが、どうしてもWEBページが開きません
当方windows10環境で広告ブロック機能をオフにしても、Chrome、Edgeで開くことが出来ませんでした
2020/05/26(火) 12:53:33.61ID:aMGgtnO2
>>496
丁度今MSのダウンロードセンター落ちてるっぽいぞ
あとここはプログラム板なので関係ない質問はWindows板でな
2020/05/26(火) 22:27:54.22ID:B/JpQdAR
>>497
ご丁寧にありがとうございました
スレチして申し訳ないですm(_ _)m
499デフォルトの名無しさん
垢版 |
2020/06/12(金) 03:04:15.75ID:/VX8zieH
https://gist.github.com/gyohk/abf13dbcb5be750b3b021752b280ccd3
glslのリファレンスというのはどこにあるんでしょうか?
ここにあるものさえ覚えておけばいいのですか?
500デフォルトの名無しさん
垢版 |
2020/06/12(金) 09:40:12.25ID:F8A7CVPb
Tokyo Alert
http://mew.cx/glsl_quickref.pdf
http://www.shaderific.com/glsl
https://www.khronos.org/opengles/sdk/docs/manglsl/docbook4/
https://www.opengl.org/sdk/docs/reference_card/opengl45-reference-card.pdf
501デフォルトの名無しさん
垢版 |
2020/06/12(金) 13:41:14.63ID:M4baBTFq
IT掲示板群 ttp://x0000.net/forum.aspx?id=15

学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など

simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0

PS malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip
2020/06/12(金) 13:52:45.89ID:hxFv/xna
JavaでdirectX使うには何から始めたら良いですか
503デフォルトの名無しさん
垢版 |
2020/06/12(金) 13:55:11.16ID:p6HEXq8F
しねでも良いんだけど
マジレスするとC覚えろ
2020/06/12(金) 15:29:09.15ID:6Yfh5mGy
>>503
なるほどCでライブラリーを書くのかな?
作ったCのライブラリーで
VisualBASICからDirectXを呼び出して
C#のネットワーク経由でJavaを使うのかな
いろいろと大変そうです
505デフォルトの名無しさん
垢版 |
2020/06/12(金) 15:46:34.82ID:1pXOSbLZ
続きはGoスレ
2020/06/12(金) 15:59:46.62ID:6Yfh5mGy
CじゃなくてGoなんかよ、ウソつき
507デフォルトの名無しさん
垢版 |
2020/06/12(金) 16:03:17.85ID:1pXOSbLZ
証拠は俺(きりっ)
2020/06/12(金) 16:26:09.02ID:QrZcUNbI
Java で DirectX は誰かが相当な労力かけてライブラリ作らないと無理
JNI、JNA とかあるけど、少なくともこの辺はあんまり良いライブラリじゃない
JNA はちゃんと管理されてないのか表記ブレすごい
やるなら JavaCPP だけど、どちらにせよ フル で DirectX の API 移植するなんて正気の沙汰じゃない
509デフォルトの名無しさん
垢版 |
2020/06/12(金) 16:43:06.65ID:/VX8zieH
glslでfractal treeは描けますか?
processingとの違いがいまいちわかりません
2020/06/12(金) 16:55:40.68ID:6Yfh5mGy
>>508
すみませんありがとうございました。
マルチプラットフォーム 3DはUnityでJavaScript言語という結論にいたりました。
2020/06/17(水) 23:44:50.73ID:F3cpnS9A
https://shikihuiku.wordpress.com/2020/06/16/フォートナイトの入力遅延を観測してみた/

よく読んでおくように(`・ω・´)
512デフォルトの名無しさん
垢版 |
2020/06/21(日) 09:32:45.93ID:ILRVqiQ3
すみません、3Dゲームの背景に2D画像を表示させたいのですが
SpriteBatchを使った2D描画、の上から
ピクセルシェーダーを使った3DのDrawを重ねる方法はありますか?
513デフォルトの名無しさん
垢版 |
2020/06/21(日) 10:08:48.76ID:ILRVqiQ3
>>512に追記で、そもそも
SpriteBatchの Begin をした段階で
3DでDrawしたものが消えてしまうのですが
2Dと3D描画の両立は出来ないのでしょうか
2020/06/21(日) 12:23:11.24ID:ZwLdQwUB
ん? 
2Dの上に3Dを描画したいのか3Dの上に2Dを描画したいのかどっちや

あとSpriteBatchってDirectXTKのSpriteBatch?
515デフォルトの名無しさん
垢版 |
2020/06/21(日) 16:19:40.21ID:rRP2z2l8
2Dで描いたものをtextureにloadして3Dに貼るのが楽
516デフォルトの名無しさん
垢版 |
2020/06/21(日) 17:30:51.66ID:ILRVqiQ3
>>514
そうですDirectXTKのSpriteBatchです
背景にSpriteの2Dの一枚絵、その手前に3Dモデルを表示したいと考えたのですが
SpriteのBeginをすると3Dモデルが表示されなくなる現象が発生して困っています
517デフォルトの名無しさん
垢版 |
2020/06/21(日) 18:19:14.17ID:ILRVqiQ3
自己解決しました
SpriteBatchのBeginをすると
そこまでにデバイスコンテキストにセットした情報がリセットされるようです
コンテキスト初期化⇒Sprite描画⇒コンテキスト初期化⇒3D描画で対処できました
ありがとうございました
2020/06/25(木) 02:23:19.80ID:0NciSbaN
すいません、このスレの本旨とは違う質問かもしれませんが、自分で調べても解決できなかったので教えてください。

自分のプレイしているゲームがdxいくつで動いているものなのか知るにはどうしたらいいのでしょうか?
今までは一々ゲーム毎にググっていたのですが、出来れば自力で解決できるようになりたいです。

自分なりに調べてはみたのですが、PCにインストールされているdxのバージョンを確認する方法ばかりで見付けられませんでした。
2020/06/25(木) 02:29:17.56ID:2IuBbNfV
DXをアンインストールすれば良いよ
動かなくなったら使ってるってわかるさ
2020/06/25(木) 03:19:03.10ID:5IWclQqc
新しいバージョンのランタイムで古いバージョンのAPIを動かしてたりとか
ひとつのゲームで混在してることもあるので
このゲームはこのバージョン!と決めつける情報ってのは割と難しいのよね
Process Explolerとかで読み込まれているモジュール見て
d3d**.dllの一番新しいのが該当とか雑に調べることはできるけど
2020/06/25(木) 06:20:59.04ID:0NciSbaN
>>520
なるほど!
ありがとうございます
そういうツールを探していたのですが、どういう調べ方をしたらいいのか分からなかったので助かりました
522デフォルトの名無しさん
垢版 |
2020/06/25(木) 11:10:28.29ID:2XRewe5U
dx9とdx11とdx12のモジュールが全部ロードされてても
dx9しか使ってなかったりする可能性もある
523デフォルトの名無しさん
垢版 |
2020/06/26(金) 23:58:06.13ID:DzJQLfsY
DirectX9.0cって32bitのみ?64bitバージョンって作れたっけ?
2020/06/27(土) 00:32:22.72ID:2aBVemHB
DXSDKにもWinSDKにも64bit版あるで
525デフォルトの名無しさん
垢版 |
2020/06/27(土) 00:36:50.57ID:hIQRa/iE
>>524
それいつ頃からあったの?
2020/06/27(土) 01:23:35.96ID:2aBVemHB
>>525
https://en.wikipedia.org/wiki/DirectX
527デフォルトの名無しさん
垢版 |
2020/06/27(土) 01:37:12.65ID:hIQRa/iE
>>526
どうも
>DirectX 9の定期的な32ビット/ 64ビットハイブリッドアップデートは、2004年10月に4.09.00.0904(DX 9.0cのRC0)から始まり、
>2007年8月まで隔月で、その後は四半期ごとにリリースされました。最後の定期的な更新は2010年6月にリリースされました
2020/07/01(水) 07:42:31.29ID:ZlpMMKEd
Directx12初心者です
テクスチャを貼った四角形を表示出来るところまで出来ました

ここから、他にもポイントリスト等、テクスチャを使わない物も同時に表示したいです

その場合、ポイントリスト用のシェーダーファイルを新規に作らなければいけないのでしょうか?
529デフォルトの名無しさん
垢版 |
2020/07/01(水) 14:36:32.38ID:fx/dVCbU
>>528
ごめん、わからん
2020/07/01(水) 14:51:58.80ID:NOOUcpDi
>>529
俺は分かった
2020/07/01(水) 14:58:55.81ID:6z00wAxU
D3D11は極めるまで行ったが
12はやる気が起きない
2020/07/01(水) 15:09:17.65ID:r+bahx3T
>>528
シェーダ別けたくなかったら白の1x1テクスチャでも作ってそれを割り当てればよろし
2020/07/01(水) 15:17:19.06ID:ZlpMMKEd
>>532
ありがとうございます
頂点情報が違う場合は、基本的にシェーダーファイルを分ける必要があるということですね
534デフォルトの名無しさん
垢版 |
2020/07/01(水) 18:07:10.52ID:DvB9sQqj
すみません質問なのですが
仮にDirectX11 を使ってローカル座標がそれぞれ異なる
100個のオブジェクトを描画する時

1.頂点バッファを100個生成、オブジェクト事に頂点バッファを切り替えて描画
2.頂点バッファを1個生成、オブジェクト事に頂点バッファの値を MAP,UNMAP で書き換えて描画

1、2でどちらが早いのでしょうか、
また複数のモデルを描画する時は1、2のどちらを使うのが定石とかはありますか?
535デフォルトの名無しさん
垢版 |
2020/07/01(水) 18:18:28.21ID:IfUrt5hg
DirectX11限定って話?
実測したら?
536デフォルトの名無しさん
垢版 |
2020/07/01(水) 18:21:21.64ID:DvB9sQqj
定石が知りたいです
だいたいこうするのが普通、とかそういう指標があれば
2020/07/01(水) 18:52:01.54ID:HcFrrLei
どっちか選べって言われたら 2
538デフォルトの名無しさん
垢版 |
2020/07/01(水) 19:06:09.84ID:DvB9sQqj
やはり頂点バッファを沢山生成すると
何かあるのでしょうか?
map,unmapも気にするほどじゃないって事ですかね
539デフォルトの名無しさん
垢版 |
2020/07/01(水) 19:40:02.69ID:DvB9sQqj
理解しました、2ですね
1だと同じオブジェを複数描画して、それぞれのローカル座標とUVが変わる時に
ダメになりますね

有難うございました
2020/07/01(水) 21:44:01.70ID:E7URM5+K
ダメになるってのはおかしい気がする
やりたい事がハッキリ分からないからなんともいえないけど

1はメモリを使う方法で、残メモリが許す限り普通は1じゃね
2はCPUパワー使う方法で、ロックのコストも馬鹿にならない
処理速度が許容範囲に収まるならいいけど、今の時代無駄な気が

オブジェクトより、マテリアルやシェーダ毎に処理をまとめてDrawの発行数抑えた方が良いよ
固定パイプラインの時代じゃないし、ローカル変換もまとめてGPUにやらせるんや
2020/07/02(木) 00:17:28.18ID:qzzrf8yb
そういう最適化で最も気にしなきゃならんことは
GPUコアを止めちゃならんということ。
コアの運転が滞りなく連続で動いていることを最適と考えろ。
お前の例の1はVBの構築は初回のみの為コアの運転を妨げることはない。
逆に例の2は、ロックしている最中にコアの運転と衝突しストールさせる可能性がある。
よって2は1よりも悪手と言える。
ただしロックのそういった問題は、すでに対策が考えられていて
実際は表面化しにくいだろう。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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