X



【C++】 DirectX初心者質問スレ Part41 【C】
0001デフォルトの名無しさん
垢版 |
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リンク
0002デフォルトの名無しさん
垢版 |
2018/03/23(金) 15:24:51.44ID:1IsbON+l
現在の最新バージョンはDirectX 12.0 / 11.3 です。
https://www.microsoft.com/ja-jp/directx/
https://support.microsoft.com/ja-jp/kb/179113
http://blogs.msdn.com/b/directx/
https://msdn.microsoft.com/en-us/library/windows/desktop/mt748631
http://www.directxtech.com/

DirectXTK12
https://github.com/Microsoft/DirectXTK12

Games for Windows and the DirectX SDK
http://blogs.msdn.com/b/chuckw/

DirectX Tool Kit
https://directxtk.codeplex.com/

DirectXTex texture processing library
https://directxtex.codeplex.com/

C#でDirectX又はXNA系の情報を探してる人は
MonoGame
http://www.monogame.net/

SharpDX
http://sharpdx.org/
0005デフォルトの名無しさん
垢版 |
2018/04/01(日) 02:12:17.66ID:nd/JKgHR
DirectX9でアニメーションメッシュを描画するのに
HLSLを利用しようと考えています。

そこで気になったのですがID3DXAllocateHierarchyの仮想関数CreateMeshContainerの
3番目の引数に D3DXEFFECTINSTANCE *pEffectInstances というのがあります。

また、D3DXMESHCONTAINERにもLPD3DXEFFECTINSTANCEというメンバーがいて
シェーダー用に何か用意されているみたいなのですが
これは無視して問題ないですか?
0006デフォルトの名無しさん
垢版 |
2018/04/03(火) 21:15:32.20ID:IV0h2igV
>>5
使ったことないから知らないけど、
おそらくは、固定機能の挙動を操作するパラメータ値を「エフェクト」と読んでいた筈だから、
固定機能のパラメータを別に設定すれば、そこは省略しても大丈夫だと思う。

ただ、それ以前にDirect3D9を使うことを避けた方が合理だと思う。
アニメーションメッシュ(ボーンアニメーションとかスケルタルアニメーションとか言われるやつ)は、
それを実現するには、入力するモデル(=ジオメトリ、メッシュの集合)に頂点索引と頂点重みを適切に付与してやることを暗黙の大前提とする。
これが整ったモデルがない限り、アニメーションメッシュを描画して、任意にモデルを動かすことはできない。
そして、これが整ったモデルがあるならば、Direct3D9を使う必要もない。
00075
垢版 |
2018/04/05(木) 02:15:46.51ID:SYV80fTX
>>6
回答有り難うございます。

いろんなサンプルを見てみたのですが
まるぺけ様の解説以外は皆無視していたので
自分も無視して実装してみていました。

HLSLのエフェクトのことではないんですね…

いろいろあってDirectX9使うしかない状況になっています。すみません。
0010デフォルトの名無しさん
垢版 |
2018/04/06(金) 06:02:14.71ID:dZswQVR+
これが期待通りの結果を得られるならば、ライトマップテクスチャを作りやすくなりそうだな
0011デフォルトの名無しさん
垢版 |
2018/04/06(金) 10:51:40.37ID:GebZAWEZ
dx12には興味はないけど
これはちょっと面白そうだよな
今は忙しいんで始めないけど
落ち着いたらやってみたい
0012デフォルトの名無しさん
垢版 |
2018/04/07(土) 11:30:10.01ID:0hfuNHUN
DirectX9でD3DXMESHCONTAINER構造体にpNextMeshContainerというメンバがいて
次のメッシュへのポインターということはわかるのですが、
先頭のメッシュはどうやったらわかるのでしょうか?

よく再帰関数でMeshContainerを探すプログラムがありますが
兄弟→子供の順で探すものと子供→兄弟の順で探すものがあり
この場合、XファイルにMesh情報が複数あったときに最初に見つかるMeshが異なるはずです。

兄弟から探す、というような決まりがあったりするのでしょうか?
0013デフォルトの名無しさん
垢版 |
2018/04/08(日) 11:27:25.18ID:Af9reKad
DaaSって
DirectX as a Service の略?
0014デフォルトの名無しさん
垢版 |
2018/04/11(水) 00:17:49.30ID:5V3NvSPI
NHKでコングラとかいう番組始まった
0015デフォルトの名無しさん
垢版 |
2018/04/13(金) 07:38:15.76ID:Vex26u2I
数学の初歩的な質問ですみません。

D3DXVECTOR3型の単位ベクトルをD3DXVECTOR4型にする場合、
xyzをコピーして、w要素に1.0fを渡せば良いのでしょうか?
もしくはD3DXVec4Normalizeを再度呼ぶべきでしょうか?
0016デフォルトの名無しさん
垢版 |
2018/04/13(金) 09:54:04.19ID:Rs41Vn4m
目的が分からないから答えにくいが
とりあえずw=1にしておいて問題が起きたらw=0にすればいい
正規化は不要
0019デフォルトの名無しさん
垢版 |
2018/04/17(火) 15:09:03.69ID:lgGemf/B
>>15
元が単位ベクトルなら正規化は不要
ラスタライザが正規化に問題を起こすこともあるから、ピクセルシェーだで正規化を必要とすることもある
0020デフォルトの名無しさん
垢版 |
2018/04/17(火) 15:37:44.55ID:CCYPJkgd
シェー
0023デフォルトの名無しさん
垢版 |
2018/04/18(水) 19:32:36.52ID:PCykkfDW
向きと座標の違いが分からないのかも
アフィン空間で生活しているのかもしれない
0024名無し@キムチ
垢版 |
2018/04/21(土) 18:11:16.60ID:I+u33JKG
DirectXを最近始めた者です。
http://k3tec.net/neko_wiki/index.php?DirectX%B9%D6%BA%C26%B2%F3
に出ていたコードをコピペしたけど、エラーが出て起動できません。
エラーの赤線が引かれている部分は、

pD3D9 = Direct3DCreate9(D3D_SDK_VERSION); のpD3D9の部分
// メッセージループ
MSG msg = {};
while(msg.message != WM_QUIT) {
のwhileの部分、

コードの最後のpDevice3D->Release();
pD3D9->Release();
////////////////////////////////////////////////////////////////////
return 0;
のpD3D9の部分、return 0;の部分などです。
どうすればいいのでしょうか?
よろしくお願いします!!
0025デフォルトの名無しさん
垢版 |
2018/04/21(土) 18:18:00.59ID:WC+haZq3
>>24
SDK関連のインクルードができてないのでは?
とにかくエラーメッセージ出してくんないと分からない。
0026名無し@キムチ
垢版 |
2018/04/21(土) 22:40:22.66ID:I+u33JKG
>>25
いろいろいじったりインクルードをやりなおしたりしたのですが、エラーの赤線はなくなりましたが、やはり実行できません。
これがエラーメッセージです ↓ よろしくお願いします

https://youtu.be/olZEyKLDRlw
0028デフォルトの名無しさん
垢版 |
2018/04/22(日) 13:41:00.42ID:Y4hVJtjZ
あほというか、これが普通なんだよ。
ここの住人が普通じゃないだけで
0029デフォルトの名無しさん
垢版 |
2018/04/22(日) 16:51:32.65ID:/RR+q6wr
馬鹿には無理
0030デフォルトの名無しさん
垢版 |
2018/04/23(月) 12:05:48.96ID:vlA+ovs8
directwrite始めたいんやが
サンプル落とせないんやがあ!!
ワイどうすればいいんや
馬鹿は死ね以外でよろしおま
0031デフォルトの名無しさん
垢版 |
2018/04/23(月) 14:40:38.05ID:nbJPMv9D
>>30
暑苦しいな馬鹿は死ね

昔のサンプルならここにいくつか残ってる
https://github.com/Microsoft/Windows-classic-samples/tree/master/Samples/Win7Samples/multimedia/DirectWrite

上のと少し被るがここをDirectWriteで検索すると他のも追加で出てくる
Windowsストアアプリ世代だがDirectWriteの自体の機能サンプルとしては問題無い
https://code.msdn.microsoft.com/windowsapps/site/search

UWP世代のサンプルだがここにもいくつかある、当然新しめの機能が題材だ
https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples
0032デフォルトの名無しさん
垢版 |
2018/04/23(月) 18:05:37.91ID:i6qG1yBq
最近、とある字形レンダリングライブラリを使った描画処理を整理したが、
DirectWriteからDirect3Dへの転送が遅い理由がよくわかった。
0033デフォルトの名無しさん
垢版 |
2018/04/23(月) 18:14:45.02ID:vlA+ovs8
>>31
な、なんや・・
優Cやないけ
おかげでゲット出来たわ
ワイがJKならお礼に
ぎゅるんぎゅるんやってやつところやけど
汚いオッサンなんや
堪忍な☆
0035デフォルトの名無しさん
垢版 |
2018/04/23(月) 19:01:28.98ID:i6qG1yBq
>>34
単純にパス数(工程数)が多い。
1.字形のラスタライズ
ベクトルフォントからビットマップにラスタライズ。CPU。輝度のみ
2.字形に色を塗る
輝度から色相。CPU
3.GPUのステージんぐに転送
4.ステージングからレイアウトされたテクスチャに変換
5.アルファ合成
完成

普通のモデル、ジオメトリなら一度読み込ませたらテクスチャ転送なんかしない。
0036デフォルトの名無しさん
垢版 |
2018/04/23(月) 19:08:27.69ID:oPojfQh4
>>35
サンクス!
うわぁ、けっこうCPUに仕事させてんなぁ〜。
もっとGPUにオフロードしてほしいもんだね。
0038デフォルトの名無しさん
垢版 |
2018/04/26(木) 08:11:40.49ID:+OH03S7h
字形描画を実装した。
雑な実装だが、アホみたいに遅くなった。
初期実装:描画ループで35の全部やったらフレームレートが1fpsを割った。

兎に角、プロセッサからGPUメモリにアクセスするとガッツリと下がる。
0039デフォルトの名無しさん
垢版 |
2018/04/27(金) 03:51:05.04ID:Xxmylx8F
実装方法替えろ
0040デフォルトの名無しさん
垢版 |
2018/05/01(火) 20:07:08.28ID:roik25Nm
昔の古いゲーム、メモリの動きを監視してたら
起動するとかなりシステムメモリが消費されるけど
ビデオメモリ使用されてないんですかね?
古いバージョンだとなんか制限あるとかですか?
004136
垢版 |
2018/05/01(火) 21:25:35.83ID:L4vu9h1Q
>>37
遅くなったが読ませてもらった。
全然理解できなんだw
フォントレンダリングの基礎を知らないとアカンっぽいね。

今のところ、GPUよりもCPU(SMID)でやるほうが良い領域なんだな。
0042デフォルトの名無しさん
垢版 |
2018/05/02(水) 18:25:48.57ID:4c1W/mNQ
>>41
・GPUだと早いでw
・FreeTypeは遅い
としか書いてないからな。
GPUオフロードがメモリ面での現実問題になりにくいアルファベット文化の発想と感じる。
訳なんだが、たかだか100MBのベクターフォントなら全部上げて計算シェーダで実装とかも嫁ではないが、
字形をフレーム毎に再計算したいニーズがあるのだろうか?
0044デフォルトの名無しさん
垢版 |
2018/05/04(金) 18:49:25.20ID:dNIZRuBx
DirectX9 SDK(June 2010)をインストールするとついてくるDirectX Control panelの64bit版が
設定を変えて保存して閉じても、有効にならず、再度DirectX Control Panelを起動すると
変更が戻っています。32bit版であれば正常に動作します。

ググっても同じ症状の人がおらずお手上げ状態です…
0045デフォルトの名無しさん
垢版 |
2018/05/04(金) 20:07:39.74ID:3WMufHHm
wow64のじゃなくてsys32のを起動
0048デフォルトの名無しさん
垢版 |
2018/05/21(月) 18:29:35.16ID:4RzDK2kC
ようやくFreeTypeで縁取りを取り出せるようになった。
気づいたことは、最初から太字でデザインされたフォントじゃなければ、見るに耐えない字になる。
NotoSansレギュラーを縁取りしたら、見栄えが悪くなりました。

とりあえず、あれ。縁取りのサンプルでSVGでやるやつは、取り出しかたの考え方を間違えていると思った。
それとベシエprimitiveがほしい。
0049デフォルトの名無しさん
垢版 |
2018/05/22(火) 12:07:48.26ID:xGwd/XeK
いかにもやり方間違ってそう
0050デフォルトの名無しさん
垢版 |
2018/05/22(火) 12:37:41.23ID:cqSLjUCo
やってるのは、16ピクセルだしね
64ピクセルぐらいにすれば、今でも綺麗に縁取りが描ける。

製本、組版はビットマップを好む。
3DCGは速度を求める。パスが欲しい。
0052デフォルトの名無しさん
垢版 |
2018/05/27(日) 17:57:57.31ID:2gIWG0vU
age
0055デフォルトの名無しさん
垢版 |
2018/06/09(土) 01:43:47.25ID:cb2OTG8G
俺もちょい信頼性の落ちる簡易ラッパーぐらいの印象しかなかったわ
昔からあるよねぇ……祝福しておこう
0056デフォルトの名無しさん
垢版 |
2018/06/09(土) 09:29:23.52ID:p8Ryx7NG
dxライブラリーと聞いて、d3dxのライブラリー関数のことだと思ったら別物なのね。
0057デフォルトの名無しさん
垢版 |
2018/06/14(木) 23:35:46.28ID:k5kVKI2u
2つの方向ベクトルがあるとき、
一方をもう一方の向きに一致させるようなピッチ(X軸回転)とヨー(Y軸回転)を導き出すには
どのようなアプローチがあるでしょうか?(ロール(Z軸回転)はなし)

一つは、

(1)2つのベクトルに直交する軸(外積)で2つのベクトル間の角度分回転させるクォータニオンを生成
(2)Z軸方向の単位ベクトルを(1)のクォータニオンで回転させる
(3)(2)で回転させたベクトルの先を原点から注視するようなビュー行列をXMMatrixLookAtLH()で生成(上向きベクトルはY軸方向の単位ベクトル)
(4)(3)で生成したビュー行列(回転行列)からピッチとヨー成分を抽出

という手順が考えられますが、もっとエレガントな方法ってあるでしょうか?
0059デフォルトの名無しさん
垢版 |
2018/06/15(金) 09:10:29.84ID:xbpv1wwF
だな
0060デフォルトの名無しさん
垢版 |
2018/06/15(金) 10:36:35.26ID:uIGrLsPa
共同ツール 1
https://seleck.cc/685

https://trello.com/
ボードのメニュー → Power-Upsから拡張可能 Slack DropBoxなど
Trello Chrome拡張機能 elegant
ttp://www.kikakulabo.com/service-eft/
trelloのオープンソースあり

共同ツール 2
https://www.google.com/intl/ja_jp/sheets/about/

共同ツール 3
https://slack.com/intl/ja-jp
https://www.dropbox.com/ja/
https://bitbucket.org/
https://ja.atlassian.com/software/sourcetree
https://www.sketchapp.com/
ttp://photoshopvip.net/103903
ttps://goodpatch.com/blog/sketch-plugins/

Trello Chrome拡張機能プラグイン集
https://chrome.google.com/webstore/search/trello?_category=extensions

Slackプラグイン集
https://slack.com/apps

Sketchプラグイン集
https://sketchapp.com/extensions/plugins/
https://supernova.studio/
0061デフォルトの名無しさん
垢版 |
2018/06/24(日) 23:39:06.72ID:MHZUaDN2
DirectXがあれば何でもできる!
0063デフォルトの名無しさん
垢版 |
2018/06/25(月) 14:55:11.71ID:tpBtUwyy
UnityとかBlenderとか最強なんですが
0066デフォルトの名無しさん
垢版 |
2018/06/27(水) 02:13:11.00ID:qCFrYxC9
DirectX11.0で2Dの不思議のダンジョン系ローグライクゲームを作ろうと思うのですが
ヌルヌル快適に動く物を作りたいので、Direct2DとDirect3Dのどちらを使った方が実行速度が速いのか教えてください
0068デフォルトの名無しさん
垢版 |
2018/06/27(水) 08:47:57.23ID:pcMibjex
>>66
両方使う必要がでる。
0071デフォルトの名無しさん
垢版 |
2018/06/27(水) 15:43:35.46ID:2dfKv2YD
3Dに+1
0072デフォルトの名無しさん
垢版 |
2018/06/27(水) 18:20:19.62ID:v2t9p75e
>>66
>"DirectX11.0で2Dの"
って書いてあるじゃん?オーバーレイだけでやるって事?
スーパーファミコンの疑似3Dがやりたいのでしょうか?
オーバーレイの機能って3D?
0073デフォルトの名無しさん
垢版 |
2018/06/27(水) 18:37:56.34ID:4Q/RDtKQ
2Dの処理するにしても3D使う方が速くね
0074デフォルトの名無しさん
垢版 |
2018/06/27(水) 18:59:02.46ID:pcMibjex
速いね。だが、そのハードルは高い。
11.0てことは、7。
つまり2Dでシェーダが使えない。
すると、ビットマップなんかをロードしてやるにしろ、ちょっとしたセピアフィルターなんかも自前、CPU処理とかになる。
つまり2Dでは遅い。
007666
垢版 |
2018/06/28(木) 01:17:28.76ID:0Mk0oUDE
Direct3Dでやってみようと思います
ありがとうございます

>>72
すみませんよく分かりません
普通のドット絵を特別な演出なしでただ表示するだけです
0077デフォルトの名無しさん
垢版 |
2018/06/28(木) 08:16:05.06ID:LsQc8TCW
>>75
8.1以降だよ。D2Dのシェーダ機能は。
0078デフォルトの名無しさん
垢版 |
2018/06/28(木) 19:24:43.13ID:8R+Whkqb
>>77
正確にはPlatform Updateを当てたWin7からだねえ
shader linkingとかWin10じゃないと使えない部分もあるけど
0079デフォルトの名無しさん
垢版 |
2018/07/04(水) 22:04:38.23ID:gFgZc5FG
LLK
0080デフォルトの名無しさん
垢版 |
2018/07/05(木) 11:48:24.25ID:IcGtf/nv
収賄
0084よろしこ
垢版 |
2018/07/19(木) 20:17:45.32ID:yrhu1YJX
スプライトでも座標変換済み頂点の2D板ポリゴンでも、
1MB程のデータサイズの画像(3000×6000ドット等)を2、3枚重ねて描画していると、
終には重ねたい画像が、白いボックスのものが表示、あるいは画像がまったく何も表示されないという
怪奇現象に出会った人いますか?
0085デフォルトの名無しさん
垢版 |
2018/07/20(金) 03:22:50.62ID:/pvYBo5v
仕様です

解決策としてZを少しずらす事で対処するのが普通
そういった機能はDirectXにもOpenGLにも既に付いてるよ
0086よろしこ
垢版 |
2018/07/20(金) 10:08:53.06ID:VlOc7Xbe
答えてくれてありがとうございます。
言い方間違えました(´つω・`)
Zをいじったり、座標をずらしてみたのですが、結果は同じでした。
16GBもメモリを積んでいる、にもかかわらず、
テクスチャーがトータル5MB分ぐらいしか表示されません。
どう足掻いても、メモリ不足になる、これはどうしてもおかしいなと思うんですよ。
いろいろやり方試したけどできないのです、おそらくVRAMが1GBしかないからなのかな〜?

もうOpenGLで行こうかと思いもします。(´つω;`)
利用しているのはVC++2015とDirectX9.0です、初学者には丁度良いものです。
11、10飛ばして12に覚えようかと期待もします。11はやること多すぎでつ。

みんなみたくUnityみたいなのに乗り換えたほうが利口なのだとおもうますがね、
どうしてかDirectXが捨てられない

沢山pngファイルが読み込めるサンプル作ってくれる人いませんか?
簡単なものでよいので壱万円ぐらいなら払いますじょなもし。(´・ω・`)
0087デフォルトの名無しさん
垢版 |
2018/07/20(金) 11:02:58.03ID:z4opRCGK
>>86
まずそっちから上手くいかないコード晒すのが順序ってもんやろ
現状じゃテクスチャ解放忘れてVRAM使い果たしてんじゃね
くらいの予想しかできねえよ
0088デフォルトの名無しさん
垢版 |
2018/07/20(金) 11:26:12.47ID:c77xM4ns
なんで自分が判ってないのを環境のせいにするんだろうな
0089よろぴこ
垢版 |
2018/07/20(金) 12:14:04.68ID:VlOc7Xbe
CPU i7 6700K 、メモリ16GB、VRAM1GB、Windows764Bit


テクスチャーを作成しています。中でも大きいものは1920*1080ぐらい)
CreateTexture(n〜10枚ぐらい);

lpSprite->Begin(D3DXSPRITE_ALPHABLEND);

UDXDrawSprite(0);z=0.1
UDXDrawSprite(1);z=0.2
UDXDrawSprite(2);z=0.3
(※この中身はDraw()の3連続描画です。完全に重なっています。3つのレイヤーを持ったスプライトをアニメーションさせているところです)
UDXDrawSprite(3);z=0.4
UDXDrawSprite(4);z=0.5
UDXDrawSprite(5);z=0.6

UDXDrawSprite(6);z=0.7 //この3枚目が描出来ません
UDXDrawSprite(7);z=0.8 //この3枚目が描出来ません
UDXDrawSprite(8);z=0.9 //この3枚目が描出来ません

3枚ごとに表示、ここは重なっていません。3キャラクター分、計700KBで9枚のスプライトを表示しています)。

lpSprite->End();

RELEASE()
解放して終了。一般的なコードです。複雑なことはしていません。3×3枚並べてます。つまり3キャラクターが揃ってアニメーションしてくれれば良いのです。

ごめんなさい描き忘れました。
ようするにこのパソコンのスペックで最大限のスプライトをどのくらい使えるのかが知りたいのです。
みんなのDirectX9.0ってどのくらい詰め込めるものですか?(´・ω・`)
0090デフォルトの名無しさん
垢版 |
2018/07/20(金) 13:29:13.16ID:9AbXiOEg
えっと
CreateTexture(n〜10枚ぐらい);
RELEASE();
これを書いてる場所が可笑しい
0091よろしこ
垢版 |
2018/07/20(金) 14:09:53.21ID:VlOc7Xbe
void CreateTexture(UTEXTURE *inf) {
lpTexture = new LPDIRECT3DTEXTURE9[10];//ここで10枚つくる
(中略)

D3DXCreateTextureFromFileEx(lpDevice, inf->fn, inf->size.cx, inf->size.cy, inf->mip, inf->usage, inf->format, inf->pool,
D3DX_FILTER_NONE, D3DX_DEFAULT,inf->colorkey,NULL, NULL, &lpTexture[n]);
}


メモリの解放は
for(unsigned long j=0;j<10;j++){
RELEASE(lpTexture[j]);
}
他    delete

不明だったところです。
0092デフォルトの名無しさん
垢版 |
2018/07/20(金) 14:39:58.10ID:VlOc7Xbe
レス頂きまして、ありがとうございます。

>これを書いてる場所が可笑しい
場所ですか・・・、これは
便宜上隣り合ってるだけで、実際の記述とは異なります。(´・ω・`)
0093デフォルトの名無しさん
垢版 |
2018/07/20(金) 15:31:13.30ID:9AbXiOEg
RELEASE(&lpTexture[j]);
じゃね?
知らんけど
0094よろしこ
垢版 |
2018/07/20(金) 17:05:06.82ID:VlOc7Xbe
自己解決しました。
レスポンスをくださった方々ありがとうございました。
機会がありましたらまたよろぴくぴくぴくです(´・ω・`)
0095よろぴこ
垢版 |
2018/07/20(金) 17:08:20.35ID:VlOc7Xbe
解決法は画像データ(pngデータ)のサイズを半分にしました。
0096デフォルトの名無しさん
垢版 |
2018/07/20(金) 19:46:09.51ID:c77xM4ns
2のN乗とかか
0099デフォルトの名無しさん
垢版 |
2018/08/13(月) 15:32:52.42ID:3dxz5Rk6
ディファードレンダリングについて質問です。
directx11でディファードレンダリングを勉強中なのですが、
最終描画でカラー情報と法線情報をうまく取得できません。
以下の画像のようにテクスチャ一枚一枚に描画されるような感じになってしまいます

左上がカラーと法線、下が結果です
http://iup.2ch-library.com/i/i1926984-1533963662.png
http://iup.2ch-library.com/i/i1926983-1533963662.png

そのまま取得するだけではだめなのでしょうか?
0100デフォルトの名無しさん
垢版 |
2018/08/13(月) 16:05:10.01ID:obMX332h
Not Found
0106デフォルトの名無しさん
垢版 |
2018/08/17(金) 00:16:57.92ID:TP+ulg07
Direct3D12で描画ループを描けた記念のカキコ。
Direct3D12は、かなりVulkan(Mantle?)の影響を受けているけれど、
11以上に描画パイプラインが理解しやすく、GPUをイメージしやすくなっていていいね。

もう11には帰れない。 11に帰りたくない。

そこで12を普及に当たって、躓き易い箇所を整理、共有しておきたい。
0107デフォルトの名無しさん
垢版 |
2018/08/17(金) 00:29:42.32ID:TP+ulg07
箇条書きで。
<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とは?
 シェーダにリソースを入力するデータの構造定義。 レジスタとのバインディング情報
 機械翻訳だと「ルート署名」とか翻訳されるが、罠なのでスルー推奨。
 決して、ルート証明書で署名したASN.1符号データなんかじゃない。
 ヘッダを指して「シグネチャ」と呼ぶ、そういう慣習から来るワード

QA. シェーダリソースの構造、レジスタとのバインディングって、どう決まるの?
 Root Signatureのパラメータテーブルに登録する「Descriptor Table」で規定する構造で決定される。

ここだけ理解すれば、D3D12の入門で吐きそうになることは軽減できると思う。

次の難関は、nodeTypeとTextureロードだけど、ここは頑張れ。
テクスチャロードは、明示的に命令リストを介してGPUに配列を正規化するように命令を飛ばすことをプログラムするだけの話。
nodeTypeは、マルチGPUでの処理を制御するための情報。
0109デフォルトの名無しさん
垢版 |
2018/08/17(金) 09:46:38.02ID:LJ797i4F
D3D12はD3D11がやってくれてたことを自前でやるだけだから凡その場合どうでもええが
DXRが目的の場合はいよいよ避けて通れなくなりそうだからなあ
0110デフォルトの名無しさん
垢版 |
2018/08/18(土) 01:31:45.98ID:vcFx3lE6
どうせまた複雑過ぎるとか
世論が騒いで
易しくなった13が出るだろ
それまでワイは手を出さんで
つーかそれまでにガンとかで
死んでそう
0112デフォルトの名無しさん
垢版 |
2018/08/21(火) 11:56:44.32ID:0hGhn6dd
どこで質問していいか判らなかったので質問させて下さい。

LOGFONT の lfPitchAndFamily の FIXED_PITCH と同等の判定を
FreeType2 で行いたいのですが、face_flags を
FT_FACE_FLAG_FIXED_SIZES と FT_FACE_FLAG_FIXED_WIDTH で判定しても、
どちらも FIXED_PITCH と違う判定が返されてるのです。

何か方法はありませんでしょうか?
0115デフォルトの名無しさん
垢版 |
2018/08/22(水) 08:29:11.39ID:sSqkHd4p
>>112
固定ピッチにしたいなら、固定ピッチに対応したフォントに限られる。
MSpゴシック、游ゴシックなんかを与えても固定にはならない。(と、思う)
恐らく、NotoSansMonoというキーワードが妥協案におすすめ。
0116デフォルトの名無しさん
垢版 |
2018/08/22(水) 08:36:33.49ID:swhwlLlG
字形の描画(レンダリング)で言えば、アンチエイリアス(輪郭のギザ付きを中間色で誤魔化す)もFTはやってくれるから、自前でピッチを固定したり、間隔を整えようとすると苦労する。
数学というよりも心理、グラフィックスデザインの領域に近いのかもしれない。

ついでに言うとDirectWriteは字形のパス(この場合、頂点配列に近い)を出力できる。
0117デフォルトの名無しさん
垢版 |
2018/08/22(水) 13:49:54.72ID:Q4k/bgn4
>>113
前者は
int* str, hoge, fuga;
っていうミスをしがち

後者は
int *str, hoge, *fuga;
で書き分けの意図がはっきりする

よって後者をおすすめします
0118デフォルトの名無しさん
垢版 |
2018/08/22(水) 14:34:01.47ID:BSjDybOq
>>115
説明下手で済みません。
そういう意味ではなく、Faceに読み込んだフォントが
固定ピッチなのか可変ピッチなのかを判定したいのです。
0119デフォルトの名無しさん
垢版 |
2018/08/22(水) 17:53:38.04ID:su77kwqg
>>117
理解はできるが、後者は気持ち悪くてできないなぁ(汗)
しょうがないから1変数1行ずつ書いてる。
0120デフォルトの名無しさん
垢版 |
2018/08/22(水) 18:03:19.36ID:Y/fFyhhT
>>118
詳しくは知らないが、恐らく「ない」んじゃなかろうか。


以下、すべて蛇足、憶測。
ウィンドウズほど優しくできていない。
字形のレンダリングに限れば、必要としない判定。
必ず字形毎(文字毎)に設計された間隔を読むから。

あとFTはAndroidで使われているから、そっちほが詳しくのがいるのではないかと。
0122デフォルトの名無しさん
垢版 |
2018/08/22(水) 19:57:06.31ID:Q4k/bgn4
>>119
気持ち悪いのは
int *str, hoge, *fuga;
が混ざってるからで

完全に一行ずつに分けなくても
int hoge, hage;
int *str, *fuga;
なら問題ないだろ
0123デフォルトの名無しさん
垢版 |
2018/08/22(水) 19:59:38.50ID:Q4k/bgn4
int* str, hoge, fuga;
の意図が
int* str, * hoge, * fuga;
だとするとこっちの方が気持ち悪い
0124デフォルトの名無しさん
垢版 |
2018/08/22(水) 20:00:22.96ID:Q4k/bgn4
宗教戦争になるのは認める
0125デフォルトの名無しさん
垢版 |
2018/08/23(木) 14:19:36.46ID:0oLK3sfm
ミニゲームじゃなくて気合入って作られてるDirectX使った出来の良いゲームで
言い方悪いけどパクれるというかお手本になるソースコードって公開されてない?流石に都合良すぎるか
0127デフォルトの名無しさん
垢版 |
2018/08/23(木) 22:25:35.05ID:cv8sNhFm
文法、記述ルールは、宗教戦争だけど、
最近流行りのヌルポ排斥運動は、熾烈な勢いがある。
コーティン?だったかは、変数の使い回しを言語レベルで排斥する思想。
ヌルポを排斥するため「仮決め(代入なしの変数宣言)」を許さない。変数の仮決めは穢れている。

初期値から消滅まで、必ず値を持たせるためには、有意な値を引き回せばよい。
結果、グローバル、アクセス自由度の高い変数に流れ、見通しの悪い、誰が更新参照してんだかを特定しにくく(匿名性を高める効果を促進しやすく)なるか、アホみたいに引数を引き回すかコンテキスト構造体を引き回すことになる。
コンテキスト構造体とは、すなわち匿名性の促進と道義。
0128デフォルトの名無しさん
垢版 |
2018/08/23(木) 22:36:02.39ID:DjzyTv43
>>125
ソースコードだけならば、Elonaがソース公開されているんでないかな。
よくしらんけど。もしかしたら作者と直に連絡を取った人だけに渡してるのかもしれん。

最近は、コンシューマでもインディーズとカテゴライズされて地位が出来上がっているから、なかなか巡り会えないと思う。

最近のインディーズゲームは、少しおかしいぐらいに技術力が高いからね。
3Dシューティングで視点がステージや進捗で変わるのがあるが、あれはかなり異常な出来だった。
もはやプロの仕事。
0130125
垢版 |
2018/08/25(土) 16:55:07.75ID:ux2vpN2s
>>126
適当にGitHubとか言ってるんじゃなくてマジであんの?GitHubすごいな
どういった風に検索すればいいんですか?

>>128
Elonaはもうソース配布してないみたいですね
というかElonaってHSPだけどDirectX使ってたのか
0133デフォルトの名無しさん
垢版 |
2018/08/25(土) 22:41:08.90ID:xNcAdL4l
directX12で勉強がてらゲーム作ってたけどAI流行ってたから
CS使ってAIの実験してるわ。
とりあえずC++とDirectxあれば何でもできるね
0134デフォルトの名無しさん
垢版 |
2018/08/26(日) 21:10:42.11ID:9TzHFCTa
>>129
VulkanとD3D12、両方使っているけど、
比較的に12の方が優しいが、どっちも癖がある。

整理されていて、より些細なことまでできる分、一山越えると少しだけVulkanが好きになる。
Vulkanの入力アタッチメントなんかは、避けるべきと思う。

vulkanとd3d12の違いは
vulkan
・描画バスの仕組み(このパスは、マルチパスレンダリングのパス)
d3d12
・レイトレができる(らしい)
0135デフォルトの名無しさん
垢版 |
2018/08/26(日) 21:16:14.17ID:9TzHFCTa
描画パスの仕組みがないのは、恐らくは後方互換性。
利用するプログラマをつき放さない意味での用語や理解についての互換性が趣旨に感じた。
(そんな言葉はないけど、エクスペリエンスのデノミを避ける、が近い?)

Vulkanの描画パスは、吐ける。
0138デフォルトの名無しさん
垢版 |
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
0139デフォルトの名無しさん
垢版 |
2018/08/27(月) 08:12:00.72ID:rKzetDHK
>>138
スチームでの対応状況が参考になるのではないかと。
非対応なら無理。対応しているならいける余地はありそう。
7でPS4コントローラがUSB接続で制御できたことは確認済み。
なお、これはDirectInput8を使った。
0141138
垢版 |
2018/08/27(月) 11:32:24.96ID:9KYhKRgJ
検索して探していると『WindowsにはXBoxのコントローラを使用するためにXInputというAPIが用意』とか『Xbox One、Xbox360等のX-input式のコントローラー
』とか等と書いてあるブログが複数発見したので同じ仕組みかな?とは思うのですがMSDNを見ているとXbox360専用と書いていたので
0143デフォルトの名無しさん
垢版 |
2018/08/30(木) 00:13:35.30ID:qBKCuhvw
>>137
Currentは、もうヤダ。
マルチスレッドレンダリングする上で面倒くさい。
って事だと理解している。

命令のキューと整理されれば、プロセッサと同様なメモリ保護も視野に入るし、
とあるシェーダが別プロセスのテクスチャを読める可能性を排除しやすい。
11までのGPUは、そういうのは皆無だろうし、12にもvulkanにもなさそうだしね。

GPUにスワップメモリ、仮想メモリ空間、スワップで逃がすストレージなんかないのだから。
0144デフォルトの名無しさん
垢版 |
2018/09/03(月) 12:41:04.98ID:NxxlWETJ
DirectX9でSetRenderStateを使ってブレンディングする場合
除算ブレンディングはどうやったら良いでしょうか?
加算なら以下で出来ますが。除算がよく判りません。
lpD3DDev->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
lpD3DDev->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);
0146デフォルトの名無しさん
垢版 |
2018/09/03(月) 21:12:07.01ID:NxxlWETJ
>>145
おしえて!w
0147デフォルトの名無しさん
垢版 |
2018/09/04(火) 05:42:00.75ID:ygKGdo3P
>>144
公式のリファレンスにのってない?
0148デフォルトの名無しさん
垢版 |
2018/09/04(火) 13:02:02.42ID:hJtprqgF
dstをぜろ。srcを色指定にすればいいだけに見える

oc=(tc*dest bc)+(pc*src bc)
tc ターゲット色、pc シェーダ出力色
0153デフォルトの名無しさん
垢版 |
2018/09/11(火) 08:25:36.60ID:vjUQtdrA
ウィジェットのことなら自作だな。
良さそうな小さいのが見当たらない。
ゴリゴリと頂点配列を作って動かしている。
字と背景を別々に作るから、かなり複雑で眠い
0154デフォルトの名無しさん
垢版 |
2018/09/18(火) 04:59:22.14ID:v4BXp/hu
ただのゲーマーだけど聞いていい?
いまだDirectX6使ってるゲーム好きで時々やるんだけど
古いバージョンっていつか切り捨てられて動作しなくなったりする?
Windows10でも動いてるしこれからもずっと動いてて欲しいんだけど。
0155デフォルトの名無しさん
垢版 |
2018/09/18(火) 06:57:41.67ID:PQNDTy/s
directXはCOMテクノロジーがベースだから
古いゲームでも最新ハードの機能が使えるんやで
例えばdx6ゲームでHWTLやテッセレーション
高度なAAや4k解像度適用などなど

ま、今は絶賛開発中なのでしばし待て
22世紀中にはリリースされるよ
0156デフォルトの名無しさん
垢版 |
2018/09/18(火) 07:41:24.70ID:Qxe4285y
>>154
DirectX云々以外のところで動かなくなる。イースとかもうWidows10では互換モードでも起動すらしない
0157デフォルトの名無しさん
垢版 |
2018/09/18(火) 23:07:41.49ID:v4BXp/hu
>>155-156
DirectX自体は互換性があって大丈夫ってことかな?
それ以外で動かなくなる可能性の心配した方がいいってことか。
0158デフォルトの名無しさん
垢版 |
2018/09/19(水) 11:42:50.85ID:PupZqwJJ
誤解が拡散中
0159デフォルトの名無しさん
垢版 |
2018/09/19(水) 22:02:25.18ID:DVXllMcK
DirectXに互換性などはないような。
ただ過去のスタックが残っているだけのこと。
それすらDirect3D9c未満が動くのか?は疑問がある。 ドライバが非対応なんじゃないだろうか。

あと、動画再生時のCODECが非対応で、動画再生できずに堕ちるってのもあるような。
ソフトウェアMIDIもドライバで実現しているのか、Microsoft標準ドライバが実装しているのかも疑問がある。

取り敢えず、過去に買ったWindows 95時代のゲームで動画再生できずに堕ちたゲームは観た事がある。
0160デフォルトの名無しさん
垢版 |
2018/09/19(水) 22:08:06.99ID:DVXllMcK
Windowsは、Windowsのみで機能を実現など出来ていない。
ハードウェアを扱う部分は、メーカーが提供するドライバが核であり、
そこがWindowsの互換性を提供し、メーカーに向けたドライバ要件が担保となっている。

Officeが必要とするドライバ機能がドライバ要件を決定づけていて、
サポート期間中の製品が必要とする部分なら、ドライバも必須となる。
従って、Direct3D関係の機能は、既に9c未満が動く保証はないと思う。
0161デフォルトの名無しさん
垢版 |
2018/09/20(木) 00:02:40.53ID:gdLwWWhU
>>159
ドライバの対応次第ってことかな?
現状ではDirectX6や7や8のゲームは普通に動いてるけど
メーカーがドライバ対応しなくなった時が終わりってこと?
0162デフォルトの名無しさん
垢版 |
2018/09/20(木) 07:52:43.20ID:K+Ua86eW
>>161
ここでウダウダ聞いてもなんの担保にもならんぞ
対応しなくなったら終わりではなく更新されないだけ、それで動き続けるかどうかは神の味噌汁
たまたま動かなくなっただけかもしれない、たまたま動いているだけかもしれない

3DゲームはドライバでなくDirect3DのAPIに対してアクセスしているので
WindowsでDirect3D(の該当バージョン)が態々削除されない限りは互換性はあるとは言える
もちろん削除されなくてもWindowsの更新で内部の挙動が変化してゲームが動かなくなるなんてことはざらにある
0163デフォルトの名無しさん
垢版 |
2018/09/20(木) 10:45:06.47ID:7WHuQIEO
WMが変わった時が一番大きい変化だった気がする
0164デフォルトの名無しさん
垢版 |
2018/09/20(木) 10:51:48.29ID:7WHuQIEO
DWMが変わったタイミングで動かなくなったアプリが増えたっていう意味です
0165デフォルトの名無しさん
垢版 |
2018/09/21(金) 09:48:58.26ID:qOWS4e0S
>>162
互換性自体は結構あるね。
VBのDirectX用のDLLはもうOSに含まれてないけど自前で用意すれば結構動く。
ただ昔のゲームで使われてたカラーキーがもうダメなハードがあるね。
0168デフォルトの名無しさん
垢版 |
2018/09/27(木) 17:39:33.56ID:egrolh38
質問です。
メインスレッドで描画しながら別スレッドでテクスチャを大量に読み込むと
画面がちらつきます。D3DXCreateTextureFromFileを実行した時にちらついてるようです。
ここにコードを書く事が出来ないのでエスパーでおねがいします。
思い当たる原因はありますか?D3DDeviceをスレッドをまたいで参照してたりするからでしょうか?
0169デフォルトの名無しさん
垢版 |
2018/09/27(木) 17:40:00.04ID:egrolh38
age
0170デフォルトの名無しさん
垢版 |
2018/09/27(木) 18:12:40.71ID:lrUHFZkm
ロックするかあらかじめ全部読んでおくか
0171デフォルトの名無しさん
垢版 |
2018/09/27(木) 20:45:06.26ID:PZih89QY
D3DDeviceを
マルチスレッドで使う場合
スレッドセーフで作らんとダメだろう
そこはちゃんとやってるのか?
0172デフォルトの名無しさん
垢版 |
2018/09/27(木) 21:58:29.85ID:ZotRguTd
マルチスレッドモードに設定してないと、Debugモード実行で警告メッセージ出まくらなかったっけ?
それが出てたら、出ないようにするとこから。
0173デフォルトの名無しさん
垢版 |
2018/09/28(金) 00:01:13.37ID:frk51yg8
>>170-172
ありがとうございます。やぱ作り方を不味ってるっぽいっすかね?
言われた事を参考に自分なりに調べてみます。
また何かあったら宜しくお願いします。
0174デフォルトの名無しさん
垢版 |
2018/09/28(金) 08:46:21.34ID:WfDD/blL
ちらつきで疑わしいのは、presentする辺りかな
ディスプレイに表示する描画ターゲットを作り込むときに参照しているテクスチャでもあるんでないかと。
というか複数のスレッドからデバイスコンテキストを触ると蹴られたと思う。

それでもちらつきが一時的な症状ならば、テクスチャ関数が中で排他しているからでなかろうか?

ところでチラツキって具体的な症状としては、どれなんだろう。
・一瞬黒か白が入る
・カクカクしたアニメーションになる
・デジタルノイズが入る
・サブリミナルな絵が入る
・何しにきたんだよ?お前のために決まってるだろ!と友貴に言われる
0175デフォルトの名無しさん
垢版 |
2018/09/28(金) 09:59:25.03ID:frk51yg8
>>174
ありがとうございます。
テクスチャ読み込みした瞬間に「・デジタルノイズが入る」といった感じです。
具体的に言うと「ブロックノイズっぽいものが所々に出る」といった感じです。
症状自体はそこまで酷い訳ではないんですが、チラチラするので気になってます。
一回あたりのノイズのサイズは小さいですね。画面がフルHD時で、128x128くらいです。
0176175
垢版 |
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();
0177デフォルトの名無しさん
垢版 |
2018/09/28(金) 14:01:09.20ID:KnH7gKZy
>>175
その症状ならむしろ巧くマルチスレッドに動いてしまっている、疑いもあるような。
読み込みが未完なテクスチャを読み込めば、瞬間的に変な画素を参照するから、それがノイズに映る。
でも考えにくいので、変な描画、予期していない描画が挟まれて映っている。

あと突っ込まれなかったから自分で言うが
友貴はチラチラじゃなく、ちゃらいだろ。
0178デフォルトの名無しさん
垢版 |
2018/09/28(金) 15:26:49.89ID:frk51yg8
>>177
ありがとうございます。
一応>>176でノイズ自体は解決して読み込み速度も上がったのですが
描画スレッドと別で読み込みスレッドでテクスチャを読み込んでいる時に
今度は排他処理の影響か描画速度がかなり落ちてしまう症状が出てます。
ただ別スレッドにして排他処理をしっかりやって読み込むと読み込み速度は
かなり速くなったので開始時に画面を黒で塗りつぶして一気に読み込む方法をこれでやろうと思ってます。
出来れば描画スレッドの速度が落ちずに読み込めればいいんですがこれでも問題ないかなと。

まとめると以下のような感じですね
1 シングルスレッドで開始時に読み込むと普通に20秒くらいかかる
2 マルチスレッドで排他処理無しで読み込むと描画しながら読み込めるが20秒くらいかかりノイズも発生
3 マルチスレッドで排他処理有りで読み込むと描画速度がかなり遅くなるが5秒ほどで読み込める
0179デフォルトの名無しさん
垢版 |
2018/09/28(金) 16:04:50.25ID:O5kQkBkV
そもそもそのテクスチャは実行時に毎回読まないといけないものなのか?
0180デフォルトの名無しさん
垢版 |
2018/09/28(金) 17:38:36.81ID:TYfa5akj
176の実装だとマルチに動いていない気がする。
クリティカルセクションは、一つのスレッドが入ったら、離れるまでは他のスレッドが待たされる。
つまり並列に実行していない。
真面目に並列度を高めるならば、テクスチャ毎に排他オブジェクトを持たせて、読み込みが完了していないテクスチャを描画ループのスレッドが触ろうとしたら、そいつをまるごとスキップして描画を続けるとかするべきかも。

ジオメトリなんかの単位でアセットを管理しているならば、読み込み完了前のジオメトリに紐付くテクスチャや頂点は描画をスキップする実装。
あとはオフラインサーフェースへの書き込みなんかの単位でまるごとスキップとかもできるかも。
チラツキを予防して、読み込み終わったアセットを段階的に画面に映したいなら、そういったリソース管理が必要。

でも大抵は、そんなことせず、読み込みが全部終わるまでは黒い画面を見せる実装を選ぶと思う。
GPUコアの限界までテクスチャなんかの読み込みスレッドを並列化することを選びそう。
0181デフォルトの名無しさん
垢版 |
2018/09/29(土) 11:09:20.58ID:hzO5ElQi
>>180
ありがとうございます。
なるほど。効率の面ではまだまだ出来る事は色々あるんでしょうね。
ただ複雑になって下手な事して不具合が出ると困るので自分も単純な方法で行こうと思います。
マルチスレッドで読み込むと読み込み速度自体は上がったので排他処理だけしっかりやって
あとは画面を塗りつぶしてそこで一気に読み込む方法を今回は採用しようと思います。
0182デフォルトの名無しさん
垢版 |
2018/09/29(土) 16:02:49.13ID:urX7Wqqu
d3dのヘルプを読むと
マルチスレッドでは
イミディエイトコンテキストは使わずに
別途デバイスコンテキストを作って
描画スレッドではそれを使うようにとあるよ

多分必要なのはそういうところと思う
0184デフォルトの名無しさん
垢版 |
2018/10/03(水) 17:59:08.87ID:3HnGx7Th
1809記念
Direct3D12でコマンドキューにシグナルするタイミング
1.ExecuteCommandList()
2.Present()
一回のコールの度にフェンスの数値をインクリメント(=GPUに処理を実行する契機を与える)
これを怠ると終了契機にフロントバッファをコマンドキューが掴んでる、との例外が出る。

ギットハブのError on shutdownってタイトルのスレッドにも報告されている。英語

取り敢えず、APIマニュアルでこの旨の事柄を書いたページは見つけられなかった。

ただのシェア
0186デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:17:59.94ID:OIFhWgmg
ある画像を別に用意したマスク画像の形でリアルタイムでくり抜きたいです(マスク画像のフチのぼかされてる所も再現したい)。
ただしシェーダーは使わずやりたい。ステンシルとかブレンディングでどうにかなりますか?
リアルタイムでやりたいのでロックして直接弄るとかは無しでお願いします。

フォトショの例ですがこんな事をリアルタイムでやりたい(くり抜かれた画像の余白の部分はアルファ値で透明になるように)
https://helpx.adobe.com/jp/photoshop-elements/kb/cq07050438.html
0187デフォルトの名無しさん
垢版 |
2018/10/08(月) 01:37:54.77ID:LP2GoVYR
(1)マスクをレンダーターゲットのαに書き込み
(2)くり抜き対象画像のブレンディング設定値を工夫して書き込み

でいけるかな?
0188デフォルトの名無しさん
垢版 |
2018/10/08(月) 02:02:38.28ID:OIFhWgmg
>>187
(1)は、アルファチャンネルつきの画像を用意して描画するとして
ARGBのうちAだけが反映されるように(2)でうまく合成するという事になりますかね?
RenderStateはSRCがDESTALPHAにすると(1)の画像のアルファ値が上手く反映されますね。
ただDESTをどの値にしてもARGBのうちのRGBの部分も反映されてしまってフチが黒くなってしまいます(マスク画像が黒い為)。
ARGBのAだけ反映させるにはどうしたらいいでしょうか。
0189デフォルトの名無しさん
垢版 |
2018/10/08(月) 02:21:51.96ID:LP2GoVYR
マスク画像のRGBはオール0(真っ黒)で、Aだけマスクの形となるα値にする。
んで、(1)のときはRGBは加算合成で、AだけSrcをDstにそのまま書き込みってできないかな?
0190デフォルトの名無しさん
垢版 |
2018/10/08(月) 03:05:32.73ID:OIFhWgmg
>>189
加算合成で黒が見えなくなるのは黒のピクセルのAが0になるからじゃないですかね?
RGBはどうやってもなんらかの値を取らないといけないので…
ブレンディングでやるのは無理なんでしょうか…
0191デフォルトの名無しさん
垢版 |
2018/10/08(月) 03:58:31.81ID:OIFhWgmg
>>187
色々やってみたんですが、まずくり抜きたい画像を描画しておき
そのあとにマスク画像として用意した全部黒で真ん中だけ丸くアルファ値ゼロの画像を
上から描画して、最後にその合成された画像を加算アルファで描画すると
余計な部分の黒が全部透明になって理想に近い形になりました。
ただ加算されるので真ん中の描画される部分がちょっとピカピカしてしまいますが。
もうちょっと試行錯誤してみます。
0192デフォルトの名無しさん
垢版 |
2018/10/08(月) 13:27:01.63ID:+5qyKWRv
馬鹿っぽい
0193デフォルトの名無しさん
垢版 |
2018/10/08(月) 14:56:19.98ID:OIFhWgmg
>>192
加算以外で綺麗に抜ける方法教えて頂けないでしょうか?
ブレンディングカラーキーはハードが対応してなかったです。
0194デフォルトの名無しさん
垢版 |
2018/10/08(月) 20:56:30.32ID:/sZzmon7
ステンシルがいいんじゃねーの?
そもそもステンシルって
そういう型抜きをやるための機能だし

ステンシルバッファをゼロクリア
型抜き用画像を描画(描画されたピクセルのみステンシル値インクリメント)
対象の画像描画(ただしステンシル値!=ゼロのピクセルのみ)

こんな感じで
0198デフォルトの名無しさん
垢版 |
2018/10/09(火) 16:30:24.65ID:46xU4Pr2
ボカシが必要なら
マルチテクスチャブレンディングで
いいだろう

シェーダ使わないってんで
D3D9あたりだと思うが
RGBとAを別々に設定出来るし
要望は満たせるだろう
0199デフォルトの名無しさん
垢版 |
2018/10/09(火) 21:27:06.70ID:dz3bRAZk
>>193
ピクセルシェーだでdiscard
0202デフォルトの名無しさん
垢版 |
2018/10/11(木) 08:36:28.94ID:A/mBZEYO
ここまで書いてあれば調べて実装するのは余裕だと思う。
ぼかす部分をアルファ値0.5、落とす部分を0にするだけではないかと。
でもdx9は使いにくいから、せめて11とシェーダーを使うべき。 9だと理解に変な癖が付くから悪い面が多い。
0203デフォルトの名無しさん
垢版 |
2018/10/12(金) 19:21:20.72ID:M/Pzk+yk
頂点配列。というかGPU上のメモリ確保(コミットリソース)は時間掛かるんだな。
d3d12、amdのプロセッサ内蔵GPU、デバッグモードなんだけど、4秒掛かった。
300個、それぞれ600バイトぐらいの頂点配列を確保するのに掛かった時間

と、書いて気づいた。そうかデバッグレイヤーか
0205デフォルトの名無しさん
垢版 |
2018/10/13(土) 13:43:59.70ID:yMYV8KuT
で、デバッグレイヤーを不活性にしたら、めでたくサクサク動きました。
0206デフォルトの名無しさん
垢版 |
2018/10/14(日) 12:50:45.12ID:G4e8iFcg
おめ
0209デフォルトの名無しさん
垢版 |
2018/10/16(火) 22:26:26.55ID:PgSsQcUe
直に触る人が減ったってだけじゃないの??
0210デフォルトの名無しさん
垢版 |
2018/10/17(水) 16:49:45.63ID:6p6LFcpX
DirectShowの質問なんですが動画再生している時に動画の上に図形を表示したいです。
表示中のウィンドウからHDCを取得して描画すれば一応表示できますがちらつきます。
検索してもあまり情報が出てこないので教えてもらえると助かります。
0211210
垢版 |
2018/10/17(水) 17:23:02.52ID:6p6LFcpX
調べてたらテクスチャにして表示すれば簡単に実現できそうだったのでこれでやることにしました。
0213名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2018/10/22(月) 08:15:36.30ID:JtURtT5N
ユニティとアンリアルエンジンの認知度上昇
ハボックのクローズド化
APIの単純化によるアプリケーション実装の複雑化
ポリゴンデータ(アセット)の生産性の低さ
実現に必要となるデバイスの多さ

APIだけでは解決しない課題が多い
なら出来合いレディメードのアセットを簡単に使えるミドルウェアに流れる。

今、d3d12でウィンドウ処理を書いてるけど、 兎に角つまらないのに無駄に複雑になる。
0214デフォルトの名無しさん
垢版 |
2018/10/23(火) 21:25:00.36ID:Q7G3DiI6
ユニティやアンリアルエンジンの開発者にDirectXやOpenGLがいらないかどうか聞いてみてはどうか。
0216デフォルトの名無しさん
垢版 |
2018/10/27(土) 10:26:01.93ID:G+gLlX7z
DirectXで開発ならフルスクラッチ開発になるの?
0218デフォルトの名無しさん
垢版 |
2018/10/27(土) 11:55:15.64ID:R2aCZi1a
消防士が17歳高校生(M)に水着モデルやらまいか?

上半身さわる

逮捕
0219デフォルトの名無しさん
垢版 |
2018/12/05(水) 23:25:50.89ID:4GYg5LKI
codeさんのおかげで影が薄くなりつつある
VisualStudio2019です

相変わらずレガシィなままです
0220デフォルトの名無しさん
垢版 |
2018/12/06(木) 21:25:28.88ID:2emuZ+wP
DirectX9でD3DXLoadMeshHierarchyを実行しているときに画面が固まります。
なのでD3DXLoadMeshHierarchyを別スレッドで呼びたいのですが可能でしょうか?
0221デフォルトの名無しさん
垢版 |
2018/12/07(金) 14:07:41.34ID:lkrG/qbb
VS2017とかにD3D9.hとかまだあるんだな
よくわからんディレクトリだったけど
0222デフォルトの名無しさん
垢版 |
2018/12/12(水) 08:17:42.93ID:yhm3vXF+
最近、D3D12を色々触ってみた感想。
新しく登場したディスクリブタは、リソースに近いものなんだね。
描画パスをかなり綺麗に実装できた。
0225デフォルトの名無しさん
垢版 |
2018/12/25(火) 14:53:10.82ID:3AxwGiO5
ほんそれ
0227デフォルトの名無しさん
垢版 |
2018/12/26(水) 13:12:26.20ID:1qe+8L32
久しぶりにパソコン買い換えたから
OpenGL(+FreeGLUT)かDirectX(VS2017)あたりで遊んでみたい
どっちがおすすめ?
0230デフォルトの名無しさん
垢版 |
2018/12/27(木) 09:45:39.70ID:0qVX2+Xi
UnityはC#だからつまらん
0232デフォルトの名無しさん
垢版 |
2018/12/27(木) 16:17:54.12ID:X03Q+yv7
Unity使ったら負け
0234デフォルトの名無しさん
垢版 |
2018/12/28(金) 19:18:22.51ID:KLVpsqro
MME(MikuMikuEffect)でDirectX9でテッセレーションみたいな感じに
角を滑らかにしようと思っています。LoD等は一切考慮しません。
まず初めにMME自体がMMDに対してAPI HOOKを行っているようで、
d3d9.dllを用意してAPI HOOKでDirectX11に横流しするというのは諦めました。
(既存のd3d9.dllがどういう動きをしているか把握しないとならないため)

StreamSourceという機能でなんか角を滑らかにするような動作を
実現してくれてるようにも見えるのですが、
MSDNのDirectX9の開発者向けFAQには
「頂点シェーダは、頂点の作成や破棄を行うことはできません。」
とも記載があって、素人がちょっと調べてできるならとっくに誰かがやってるかな…
やっぱり無理なのか。とも考えています。

今までDirectXやHLSLに全くかかわった事が無かったので、
何かしら実現のためのヒントを頂けたら幸いです。
0239デフォルトの名無しさん
垢版 |
2018/12/29(土) 00:34:11.08ID:5EjDFocT
みんな鯖鯖していて気持ち良いねこのスレ
0240デフォルトの名無しさん
垢版 |
2018/12/29(土) 00:36:15.93ID:5X2fG6f6
局面分解に用いる頂点配列はパッチプリミティブを必須とする。(一般的なトライアングルリストではない)
局面分解するMMEもトライアングルリストだろうから、そこはクリアできそうに思うが、問題はテッセレート回路は9だと非対応じゃないかと思う。
9cならジオメトリシェーだがあるから、ソフトウェアで模倣は難しくないと思うが、かなり面倒で制限月になる。
その上でかなり計算回数が増えるから、フレームレートを落とすと思われる。

ノートパソコンあたりのGPUだと10万ポリゴン、1パスでフレームレートは12ぐらいまで落ちる。
そもそもテッセレートしても人形の肌は綺麗にならない。
美を感じるのは素材配置の比率で決まる。
テッセレートは単なる頂点追加(固定間隔での頂点追加。つまり足し算)。

はなからハイポリゴンを法線マップにベイクした方が綺麗で早く、効率がよい。

と、昔やったときに結論づけた。
ただ工夫の余地はある。
0241デフォルトの名無しさん
垢版 |
2018/12/29(土) 00:51:14.24ID:5X2fG6f6
簡単に言えば、単純に頂点を増やしただけでは、陰影のリアリティを増やすことに寄与するが、美しくはならない。
曲線のギザツキを抑えることで綺麗にはなるが、それなら単にレンダリングターゲットの面積を広げた方が楽で早い。

今のピクセルは、まだまだ荒い。
0242デフォルトの名無しさん
垢版 |
2018/12/29(土) 07:19:07.61ID:WVaqFV35
ご回答ありがとうございます。
テッセレーションを実現したとしても、
期待している効果は得られない可能性があるということですね。
もっと勉強します。
0243デフォルトの名無しさん
垢版 |
2018/12/29(土) 07:41:19.84ID:CdjnIrQY
>>237
ヘキサの人のソースコードがあるのかとちょっとわくわくして開いたらバイナリのみでワロタ
0246デフォルトの名無しさん
垢版 |
2019/02/02(土) 12:23:22.13ID:OjPcxytf
TeXと勘違いするわ
0250デフォルトの名無しさん
垢版 |
2019/02/09(土) 10:42:19.05ID:gmj+GaWL
レイトレというても、遅延シェーディングのことだけど。
バルカンでも11でも実装できる。
専用回路があるわけじゃない。

リアルタイムに反射成分を決める因子(陰面遮蔽、拡散反射、鏡面反射なんか)を計算して、2パス目でそれを参照して輝度を決める。
ビューの一面から見たポリゴンの成分を計算するから、これでそれっぼい陰影がだせる。
でもプリレンダしたライトマップのテクスチャの方が早くてリアル。
0255デフォルトの名無しさん
垢版 |
2019/02/11(月) 00:39:23.90ID:awXFg/MG
DirectX11なんですが、単なるトランスフォーム済みのテクスチャ貼り付けた板ポリを移動させるとして
 1 頂点バッファをMapして毎回座標情報を書き換える
 2 頂点バッファはいじらず、定数バッファに差分の移動量x,yを入れて更新し、毎回GPUに最終座標を足し引きさせる

感覚的には後者の方が良さそうなんですが、どっちが速いですかねぇ
自分でも実験したのですが、やり方悪いのか毎回100〜300msecくらい余裕で誤差が出て参ってます

誤差込みで、ほとんど変わらない印象なのでどっちでも良さそうではあるのですが、
ここまで来ると気になっちまって……
0256デフォルトの名無しさん
垢版 |
2019/02/11(月) 01:11:15.61ID:jeSoh9Or
後者
0257デフォルトの名無しさん
垢版 |
2019/02/11(月) 23:43:37.25ID:m53MrtkR
これからdirectxを始めようと思うんだけど
どのバージョンでやればいいか教えて下さい。
サイト見てるとdirect9が一番参考書が多くておすすめって書いてあるけど
このスレ読んでると11か12の方がいいですか?
0260デフォルトの名無しさん
垢版 |
2019/02/12(火) 05:56:39.47ID:SvKCMiwA
ほんそれ
0261デフォルトの名無しさん
垢版 |
2019/02/12(火) 12:47:15.24ID:JRLjpiVA
>>257です。

画像の描画
画像でアニメーション
フォントの設置
カーソルがフォントの上に来たら光る
wavの再生
上記の事をやりたいです。

ほぼ無知なので
これからどのバージョンで勉強しても挫折すると思うので
direct 3d12使おうと思います。



申し訳ないですが
皆さんは、どうやってでdirect12の勉強をしていますか?
書籍の参考書がなかったのでお願いします。
0262デフォルトの名無しさん
垢版 |
2019/02/12(火) 13:05:56.49ID:8lolhehX
無知ならおとなしくUnityにしとけ
0265デフォルトの名無しさん
垢版 |
2019/02/13(水) 14:58:58.78ID:Yg4iFXpY
手段が目的化してないか
0269デフォルトの名無しさん
垢版 |
2019/02/16(土) 17:44:32.02ID:mSqP7pCT
GPUからメモリコピー
0270デフォルトの名無しさん
垢版 |
2019/02/17(日) 15:11:56.02ID:LXnac+6v
きちんと解説ある本を読んで勉強しないと難しいのに新しいバージョンは日本語の本がない
そして古い本に附属してるライブラリは今の環境だとすんなり使えなかったりするから結構詰んでる
素直にunity使うのが一番効率よく勉強できると思うわ
c++に拘るならdirectxやってもいいとおもうけど
0271デフォルトの名無しさん
垢版 |
2019/02/18(月) 12:58:57.59ID:cZFby2gr
日本語で出ても余計判りにくくなることの方が多い
日本語だから判りやすいとは限らない
0273デフォルトの名無しさん
垢版 |
2019/02/18(月) 13:21:33.63ID:cZFby2gr
エラーを取得するには関数を使います
0276デフォルトの名無しさん
垢版 |
2019/02/19(火) 06:25:19.87ID:DhLDQBZX
ヘリコプターがシアトル付近を飛行中に、ナビゲーション・システムと
通信系が故障してしまい、現在位置を把握することができなくなって
しまった。機長は、近くに見えた高いビルにヘリコプターを寄せ、周りを
旋回しながら、副操縦士に「私は今どこにいますか?」と大きな紙に書かせ、
それをビルの中の人間に見せるように命じた。
ビルの中の人間は、大きな紙に「あなたは今、ヘリコプターの中です」と
書いて答えてきた。機長はにっこりと笑って手を振り、副操縦士に言った。

「あれはマイクロソフトの本社ビルだ。ここから東へ向かえば空港が
あるはずだ」
「どうしてマイクロソフトの本社ビルだと分かったんです?」
「奴らはいつも、技術的には完璧だが、まったく役に立たない答えしか
寄こさないからさ」
0278デフォルトの名無しさん
垢版 |
2019/02/19(火) 12:30:36.63ID:1Fqwt8so
>>276
どこで観たか忘れたけどどこかで観たコピペ
0283デフォルトの名無しさん
垢版 |
2019/03/14(木) 11:30:54.43ID:s2YvJJWc
GL4 > DX12
ですか?
0284デフォルトの名無しさん
垢版 |
2019/03/14(木) 11:40:31.87ID:nYszdZlz
Windows10への移行が進まないのでまたWindows7からやり直す気になったんだな。
殊勝なこった。
0289デフォルトの名無しさん
垢版 |
2019/03/19(火) 11:14:30.65ID:3vrqfuIl
自分は、もう最新のDirectXの開発から身を引いている者なのですが、
下記のニュースにて、Windows7でDirectX Raytracingが
動作するのではと思いました。
ttps://www.4gamer.net/games/033/G003329/20190314031/
0290デフォルトの名無しさん
垢版 |
2019/03/20(水) 11:12:13.30ID:h/GW8QOA
pyopenglってあるけどpydxってある?
0292デフォルトの名無しさん
垢版 |
2019/03/22(金) 20:20:37.10ID:uuuO+xYB
質問です。
IDirect3DDevice9::Reset を呼び出すと、
D3DPOOL_SYSTEMMEM や D3DPOOL_SCRATCH で作成したテクスチャも消失しますか?
0297デフォルトの名無しさん
垢版 |
2019/03/24(日) 21:38:24.49ID:WKxcwvjT
>>293
>>294
ご回答ありがとうございます。
自分でも調べたところ、D3DPOOL_SYSTEMMEM で作成したテクスチャは内容が消失しているように思えました、
ただ、自分のプログラムが間違っているだけかもしれないですが・・・
0301デフォルトの名無しさん
垢版 |
2019/03/25(月) 02:31:06.53ID:MuEFgcsw
C/C++の使い方間違ってそう
0302デフォルトの名無しさん
垢版 |
2019/03/25(月) 06:03:00.51ID:9PsZkemJ
やはり間違ってますか。テクスチャ自体は消失してませんでしたが、
内容がおかしなグラフィックになっていました・・・
ご回答ありがとうございます。
>>294さんのご意見も聞きたいです。
0303デフォルトの名無しさん
垢版 |
2019/03/26(火) 00:15:35.28ID:vv/6sgs4
おまいらアフォか
IDirect3DDevice9::Reset を呼び出すと、すべてのテクスチャ メモリ サーフェイスが消失し、管理下のテクスチャがビデオ メモリからフラッシュされ、すべてのステート情報が失われます。
ってヘルプに書いてあるだろ
0304デフォルトの名無しさん
垢版 |
2019/03/26(火) 00:54:58.78ID:ocCrckc4
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.
0305デフォルトの名無しさん
垢版 |
2019/03/26(火) 01:11:40.91ID:qhv8bmdJ
情報ありがとうございます
ResetするのにD3DPOOL_SYSTEMMEMを解放する必要はないが、
テクスチャの内容は保障しないよって事なのかなぁ・・・
0307デフォルトの名無しさん
垢版 |
2019/03/31(日) 01:58:01.43ID:ho8kk4O0
NOTE: As of 29 Mar 2019, SharpDX is no longer being under development or maintenance

終わってしまった
0311デフォルトの名無しさん
垢版 |
2019/04/07(日) 01:22:55.36ID:LKp1E5sS
DX11勉強中で定数バッファの扱いがよくわからないので教えて欲しいです
これは別々に複数個用意しておいて、シェーダと同様にその都度セットし直すものなのでしょうか?
ネットに落ちてるサンプルを色々と見ているのですが、カメラ行列だけを入れている物もあれば、併せて材質色やライティング用のパラメータを入れている物もあって混乱しています
0312デフォルトの名無しさん
垢版 |
2019/04/07(日) 03:34:29.88ID:27fxqR4U
必要なものをその都度送ればいいよ
セットしたシェーダが変わらない上に定数バッファの内容も変わらないなら送り直す必要は無いはず
変えたいときに送る
0313デフォルトの名無しさん
垢版 |
2019/04/07(日) 06:02:21.50ID:q0gI4Bxg
>>312
回答ありがとうございます
土日の内に最低限の描画パイプラインを用意しておきたかったので助かります
0314デフォルトの名無しさん
垢版 |
2019/04/07(日) 12:17:02.24ID:xl9NNqpd
vs2019ほんとに軽くなってて驚いたんだけど
ここ数年中の人らは何やってんだってレベル
0317デフォルトの名無しさん
垢版 |
2019/04/09(火) 12:17:36.92ID:39tv23SA
この板にはMSを持ち上げる記事が多いな。
まるでMS社員が書いているかのようだ。
0318デフォルトの名無しさん
垢版 |
2019/04/09(火) 19:19:20.98ID:2fmMiie1
>>317
初心者スレなどにふらりと現れてスレとは無関係の稚拙な演説を垂れ流し
「MSには潰れて欲しい」などと呪詛を吐いて去っていく怨霊みたいな輩はよく見かける
0319デフォルトの名無しさん
垢版 |
2019/04/10(水) 12:54:35.85ID:87jhN1vD
【高感度が高い会社】
https://toyokeizai.net/articles/-/273471
1位セブンイレブン、2位トヨタ、3位無印良品、4位イオン、5位ニトリ、
27位ソニー、35位任天堂、
71位アップル ***
167位タカラトミー、169位セガ、
181位マイクロソフト ***
194位バンダイナムコゲームス、
197位コナミ、234位スクウェア・エニックス、251位カプコン、293位レベルファイブ
0320デフォルトの名無しさん
垢版 |
2019/04/10(水) 12:57:23.01ID:87jhN1vD
39位、東急ハンズ
40位、アマゾンジャパン  ***
41位、楽天
42位、セイコー
43位、雪印メグミルク
44位、Google  ***
45位、伊藤園
0321デフォルトの名無しさん
垢版 |
2019/04/10(水) 13:00:11.85ID:87jhN1vD
トヨタ>SONY>任天堂>amazon>楽天>セイコー>Google>アップル>
タカラトミー>セガ>マイクロソフト>バンダイナムコゲームス>
コナミ>スクウェア・エニックス>カプコン
0322デフォルトの名無しさん
垢版 |
2019/04/10(水) 14:50:59.28ID:9YALwuYf
感度が高いことを高感度という
高感度が高いとか危険が危ないとか
変な言葉遣いやめれ
0325デフォルトの名無しさん
垢版 |
2019/04/11(木) 00:40:22.08ID:2BS9kfoy
実は漢字が間違っていただけで、「高感度」ではなくて、正しくは、
「好感度が高い会社」
0326デフォルトの名無しさん
垢版 |
2019/04/11(木) 09:35:27.51ID:bTGeujWN
ァィャー
0327デフォルトの名無しさん
垢版 |
2019/05/16(木) 11:35:16.07ID:14JA99+8
すみませんつかぬことをお聞きしますが、

テクスチャをピクセル毎に分解して自由に動かしたいんです。

要はピクセル数分の?ゾリューションをもった板ポリに一ピクセルづつ
テキスチャを割り当てればいいんじゃないかと思ってるんですが、

shader内で書く際にどういった書き方をすればいいかどなたかご指南ただけませんか。
あと考え方が間違ってたら指摘して頂けると助かります。
0328デフォルトの名無しさん
垢版 |
2019/05/16(木) 12:03:47.64ID:Ox4fjiQE
テクスチャは一枚でよくね
0330デフォルトの名無しさん
垢版 |
2019/05/17(金) 07:11:21.55ID:bam7LHTg
>>328

テクスチャは一枚です。

>>329

要はテクスチャを一ピクセル毎に分解して、それをパーティクル状に自由に動かしたいのです。
その前段階として、板ポリにテクスチャのピクセルを一つ一つ割り当てたいのです。
0331デフォルトの名無しさん
垢版 |
2019/05/17(金) 07:21:03.82ID:5vJNf7cS
別に1ピクセルだろうが板ポリにUV座標していする一般的なスプライトと同じ実装で良いと思うが
0333デフォルトの名無しさん
垢版 |
2019/05/25(土) 16:17:49.68ID:P9kv6fd4
行列計算ってのがよくわからないんですが、簡単にどういうことをするのか教えてください
((0,0,0)(0,0,0)(0,0,0))
こういう行列があったとしたら
vector3(10,10,10) += gyouretsu[1]
などとすることで、2番目の列にvector3が代入されるかと思います
これってなんの意味があるんですか?

3dにおいてどういうシチュエーションで必要7日イメージがワキません
godot使用です
0334デフォルトの名無しさん
垢版 |
2019/05/25(土) 16:48:26.68ID:997oQV33
逆行列無いから意味無いで
0335デフォルトの名無しさん
垢版 |
2019/05/25(土) 16:58:28.00ID:WTzpeFf8
>>333
> 代入されるかと思います
されない

> なんの意味があるんですか?
自分からなんの意味もないコードを見せておいて何言ってんだ?

ここはDirectXスレだ
他のスレをあたれ
どのスレが適切かは自分で考えろ
0336デフォルトの名無しさん
垢版 |
2019/05/25(土) 17:24:26.26ID:MU6iVjMm
ブレンドステートオブジェクトのRenderTagetって
RenderTarget[0]以外使うにはどうすればいいですか。
0337デフォルトの名無しさん
垢版 |
2019/05/25(土) 18:50:30.35ID:MU6iVjMm
すみません
よく考えたらいらなさそうなのでやっぱりいいです。
時間を取らせてしまったのなら申し訳ありません。
0338デフォルトの名無しさん
垢版 |
2019/05/29(水) 21:18:56.08ID:CfbGvgRn
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); // バッファを受け取る変数
0339デフォルトの名無しさん
垢版 |
2019/05/29(水) 21:25:35.46ID:CfbGvgRn
ちなみに
ID3D10Texture2D::Mapを呼び出した覚えはないです
GetBufferなら使いました。
0341デフォルトの名無しさん
垢版 |
2019/05/30(木) 17:04:06.51ID:FYbqwzZe
>>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が呼び出されていたりするのでしょうか。
0342デフォルトの名無しさん
垢版 |
2019/06/06(木) 12:19:41.96ID:hSaNNShT
しょーもないゲームを自分で作って周りに見せて喜んでるだけなので
バージョン8を使い続けてるけどヤバイ?急に動かなくなることある?
0343デフォルトの名無しさん
垢版 |
2019/06/06(木) 12:21:12.48ID:vdYhIH7X
さすがに9未満は知らんわ
0345デフォルトの名無しさん
垢版 |
2019/06/11(火) 04:05:17.78ID:1utxNven
DirectX8だとSDKも8のSDKで作ってるの?あとVisual Studioのバージョンは?

まあVC6+DirectX SDKの7で作ったやつがソース変更ナシかほぼナシで
VS2008+DX11でビルドできた覚えがあるから大して意味のある質問ではないかもしれないけど
0346デフォルトの名無しさん
垢版 |
2019/06/12(水) 11:03:28.52ID:zoFa+KX6
パーティクルトレイルってやっぱ見てるだけでかっけーってなるんですけど、
実装するにはどういう考え方たしたらいいですか?
0348デフォルトの名無しさん
垢版 |
2019/06/12(水) 11:38:18.03ID:zoFa+KX6
>>347

有難う
ただパーティクルシステムを基にUnityの機能じゃなくてジオメトリシェーダかなんかで
プログラマブルにやりたいんです。
環境はvvvv、windows10
0349デフォルトの名無しさん
垢版 |
2019/06/12(水) 11:50:23.19ID:tqvE0DW+
>実装するにはどういう考え方

が描いてあるから貼った
0350デフォルトの名無しさん
垢版 |
2019/06/20(木) 10:08:17.58ID:MGTUiFfb
>>344
もう11以降使ってない奴はマイクロソフトとかじゃなくAMDとか普通にバグあっても
直さない宣言してるからな
0351デフォルトの名無しさん
垢版 |
2019/07/13(土) 11:48:07.77ID:mwaE/2px
12でそれなりの描画が実装できたけど、やはり複雑。
ルートシグネチャ、シェーダ、ディスクリプタで器を決めて、頂点、索引、定数、テクスチャをGPUにロード。
ディスクリプタにテクスチャ、定数を入力にbind、描画ターゲットと深度ステンシルを出力にbind。
頂点と索引、シェーダを専用スロットに繋いで、コマンドリストに描画命令をいれる。
リストはあロケータから取り出して、 コマンドキューに入れる。
コマンドキューにシグナルいれて、フェンスで完了を確認する。

コマンドキューはスレッドに一つづつのインスタンスを持たせて、コマンドリストはコマンドキューに複数突っ込んでもよいが、複数のコマンドキューに容れてはならない。

描画ターゲットと深度ステンシルは、たんなるメモリだが、テクスチャとして扱うので、参照保護のためにアクセス前にはバリアを遷移させて状態を明示的に制御する。

マルチレイヤの合成、オフラインサーフェスへの描画、スワップチェインから取り出したバックバッファへの描画、present。

一枚書くだけでもしんどいな
0352デフォルトの名無しさん
垢版 |
2019/07/13(土) 11:58:32.38ID:mwaE/2px
字形は字形でFT使っているから、プロセッサメモリにレンダリングしてGPU上のテクスチャと宣言したメモリをマップしてアップロード。
それをパイプラインで扱うからテクスチャを参照する頂点バッファにテクスチャマップさせたポリゴンを容れる。

ウィンドウ処理(2d処理)を3dで扱うためひUV座標も手前で計算。
欲を出して、ウィジェットのパーツを1メッシュで扱えるようにして、1ウィジェットをジオメトリ扱いで管理し始めたら
吐きそうほどの複雑な実装になりました。

行数で30万ステップぐらいか?
セミコロンは、そろそろ100万いけそう
0353デフォルトの名無しさん
垢版 |
2019/07/13(土) 13:01:33.24ID:z78jYeW/
それだけの苦労をして得られるパフォーマンスは、
DX11に比べて如何ほどなのだろうか・・・?
0354デフォルトの名無しさん
垢版 |
2019/07/22(月) 07:40:47.32ID:NFxt+0t6
一概には言えない。
よく言われる通り、コマンドキューとコマンドリストを複数持って並列に実行させられるから、GPUを無駄なく使うようにしやすい。

200の入力を3回するには、600の計算量となるが、それをシーケンシャルにやれば600時間単位係り、それを並列に計算できるなら3並列で200時間単位にまで落とせるかも知れない。
描画バス、遅延レンダリング(深度バッファシャドウ)なんかは前段の計算が完了する要件があるから並列できない。
ジオメトリやメッシュを描画する部分が適用しやすい。
つまりフレームレートに影響するのは、ポリゴン数と描画ターゲットの解像度。APIセットが計算性能に与える影響は大きくない。
APIセットは、ドライバとハードウェア設計を楽にした上で、オープン規格でプログラムをコーディングしやすくするもの。
12の良いところは、GPUを直接触るような気持ちよさだと思う
0355デフォルトの名無しさん
垢版 |
2019/08/14(水) 20:10:09.93ID:uomW9+HI
oggファイルをSlimDXのXAudio2で演奏しようとして、Ogg Vorbisを使って見たのですが、
ov_readで取得したchar *bufferをMultimedia::WaveStreamに入れこむ方法がわかりません
かなりスレ違いな質問だと思いましたが、適当なスレが見つからなかったので
0356デフォルトの名無しさん
垢版 |
2019/08/15(木) 15:20:56.41ID:JLpJCumi
>>355
なにも考えずに、そのまま複写する。
オッグぽルヴィスから取り出した時点でPCMチャンクになるはず。
気にするべきはチャネル数、量子化ビット数、サンプリングレート、フレーム(チャンクのデータ量、バイト数)を合わせること。

なお、詰まりやすいのは、サンプリングレート。
単純にデバイスが対応していれば良いが、非対応なら自力でリサンプリングする必要。
基本は、デバイスが対応しているサンプリングレートのデータをなんからのコンバータで変換した音源を用意する。

ちなオーディオプレーヤーなんかを書く場合は、入力音源のサンプリングレートを絞ると使えないツールになるから、リサンプリングが必須。
リサンプリング機能は、インストールされたCODECに依存するが、ウィンドウず標準のコーデックは使いにくい。

商用ゲームがセガ?のAMのファームを使うのは、このあたりに関係してんのかも。

ちらうら
0357355
垢版 |
2019/08/16(金) 21:48:05.02ID:wxfU4TEg
WaveStreamを作成するときにヘッダー情報を入れてないだけでした。すんません

SlimDXのサンプルコードでは、AudioBufferにWaveStreamをそのまま入れているけど、ヘッダー情報を除いたStreamが正解ですよね?
ov_readで取得したデータでMemoryStreamを作成してAudioBufferに入れたら演奏できました
0358デフォルトの名無しさん
垢版 |
2019/08/17(土) 10:03:25.52ID:BwITc4Uh
おま環

前半のような勘違いをしてる知能だと後半でも勘違いしてる可能性大
0359デフォルトの名無しさん
垢版 |
2019/08/17(土) 20:22:39.40ID:BIBNoJLn
>>357
音が出たならそれでいいかと。
チャンクのゴミはコーデックのハイパスフィルターで除去される。
ストリームにヘッダー情報が来るようなAPIはないと思う。
サンプルがファイル処理をやってんだと思う。
0360デフォルトの名無しさん
垢版 |
2019/08/17(土) 21:55:59.22ID:3MCL9drT
DirectX11でレンダーターゲット(画面全体)にシェーダを適用する方法を教えていただけませんでしょうか

板ポリゴンにシェーダを適用する方法は分かるのですが…
画面全体にピクセルシェーダを使って「GLSL Sandbox」のようなことがしたいです
ググったのですが、そういうサイトを見つけられませんでした
0361デフォルトの名無しさん
垢版 |
2019/08/17(土) 23:37:46.48ID:BIBNoJLn
>>360
・シェーダで一切行列を使わない
・射影座標(-1〜+1)の範囲で頂点座標を指定して頂点配列を作る
要点はこの二つ

細かい点は
・ビューポートはウィンドウサイズに合わせる
・描画ターゲットはスワップチェインから取り出す
・深度ステンシルは取り敢えず忘れる
・固定機能ステートはすべてデフォルト値でつくり、コンテキストに設定する
・シェーダーは、とりあえずバーテックスとピクセルのみ(中身はパススルー。入力頂点要素複写だけにする)

あとD3D11デバイスだったかコンテキストとスワップチェインを同時につくるAPIがあるから、ネットサンプルを参考にせず、そっちを使う。
0362デフォルトの名無しさん
垢版 |
2019/08/17(土) 23:52:33.15ID:BIBNoJLn
描画するまでに最低限やることリスト
・デバイス、コンテキスト、スワップチェインを作る
・スワップチェインから描画ターゲットを作る
・コンテキストに固定機能ステート(ラスタライズ、ブレンド)を設定
・コンテキストにシェーダー(バーテックスとピクセル)を設定


描画ループ(最適化なし))
・コンテキストに入力頂点配列レイアウトをつける
・コンテキストに入力プリミティブを指定する
・入力する頂点配列に適したdrawを呼ぶ
・スワップチェインにフロントとバックバッファを切り替えるようにつたえる(present)

必須なのは、このあたり。
やっちゃダメなこと
・神に祈るな
0363デフォルトの名無しさん
垢版 |
2019/08/18(日) 00:13:51.13ID:8LEpKI7v
>>361
ありがとうございます!
おっしゃるとおりVertexBufferで-1.0〜1.0の範囲の4頂点を作って、VertexShaderで行列を使わずにそのままinput→outputするだけでいけました

数時間悩んでたのですがスッキリしました
基礎が全然分かってないことに気づきました
ありがとうございました
0364デフォルトの名無しさん
垢版 |
2019/08/18(日) 01:20:27.90ID:0Ob94YMj
>>363
おめめ!
そこがわかれば、射影行列、ビュー行列、ワールド行列と芋づる式に理解できる。
射影行列は、行列で指定した範囲の8つの角をそのデバイス座標空間に納めるように座標変換する計算を指す。
その-1から+1の範囲の外におかれた頂点はラスタライズされなくなる。(ピクセルシェーダーに送られない)
0365デフォルトの名無しさん
垢版 |
2019/08/22(木) 00:48:20.80ID:Wwh8yM4I
(チラ裏)
VulkanとDirect3D12の両方でオフラインサーフェースへのレンダリングとレイヤ合成しての描画は実装できるようなったけど、
UnityやUnrealで使われているスクリプトやデータ構造を使ったレンダリングパスの可変実装ってのは、
必須なんだな、ってシミジミと感じる。

・平面に描画するパス(1:n)
・立体を描画するパス(1:n)
・立体に影を付けるシャドウマップ用の計算目的のパス(1:n)
・字形をプロセッサで描画したテクスチャをGPUに流し込むパス(1:n)
・ウィンドウ(をウィジェット単位に)描画するパス(n:n)
・上記を合成してスワップチェインに描画するパス(n:n)

今まで描画パスは全部個別にC++で書いていたが、
動的に「描画ターゲット」「シェーダ」「ブレンディングに代表される固定機能ステート」をスクリプトや外部データ参照で実装できるようにしないと
映像的な演出を工夫する際のコード実装でコード量が爆発しそう。
ウィンドウ処理は、描画ターゲットを複数枚要求し、立体の描画は描画ターゲットが一枚でもいいが、複数のジオメトリとポリゴン集合別のブレンディングパラメータを欲する。

やっぱりUnityは、よく出来ている。
0366デフォルトの名無しさん
垢版 |
2019/08/22(木) 09:44:48.00ID:xQsiKIbM
○|○|
0368デフォルトの名無しさん
垢版 |
2019/08/24(土) 09:30:16.20ID:u2q8uNB0
お礼は要らない
お札は要る
0369デフォルトの名無しさん
垢版 |
2019/08/28(水) 18:29:40.05ID:Uv4FOXbV
XAudioでモノラル音声のパン制御について質問です。
以下のページを参考にしているのですが、

https://docs.microsoft.com/en-us/windows/win32/xaudio2/how-to--pan-a-sound

IXAudio2MasteringVoice::GetChannelMask 関数が
無いようなのですが、どうすればいいでしょうか?
SDKはWindowsXPでも動かしたいので
DirecctX SDK(June 2010) を使用しています。
0370デフォルトの名無しさん
垢版 |
2019/08/28(水) 22:27:58.14ID:IxrF6DV7
>>369
そのSDKのXAudio2(2.7)ではサポートしてない機能だから無理じゃないかな

IXAudio2MasteringVoice::GetChannelMask
Platform Requirements
Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8)
0371デフォルトの名無しさん
垢版 |
2019/08/28(水) 22:46:59.14ID:Uv4FOXbV
このバージョンではサポートしてない機能でしたか
代わりの手段があれば知りたかったのですが
ありがとうございます
0372デフォルトの名無しさん
垢版 |
2019/08/28(水) 23:32:26.60ID:HDEnmqbf
>>371
どうしてもやりたければ自力でパンを考慮したステレオデータに変換からXAudio2に渡す
完全な興味本位だけど、XPは何に使ってるの?
0373デフォルトの名無しさん
垢版 |
2019/08/29(木) 07:46:12.69ID:h0m6WSA+
イメージとしては、モノラルからステレオへの変換は、モノラルデータの開始位置に差をつけて、右チャネルデータとして扱い、後ろに詰め物を入れる。
パンは出力したい左右の比率に合わせてPCMデータに比率を掛ける。
これで行けそうな気はする。
チャネルを分離する部分なんかはキチンと実測して試行錯誤しないと、ステレオじゃなくエコーに聴こえるか、モノラルのままに聴こえそう。
0374デフォルトの名無しさん
垢版 |
2019/08/29(木) 08:53:04.16ID:cxVYJcua
ありがとうございます
どのチャネルが左右のスピーカーのどちらなのかを知る手段がないと厳しそうに思えました
0376デフォルトの名無しさん
垢版 |
2019/08/29(木) 09:08:46.27ID:DrrCjElh
第三科学研究所のDPPケーブルがUSBよりも入力遅延が小さいのと
マルチタップが使えるので気に入ってます
0377デフォルトの名無しさん
垢版 |
2019/09/03(火) 09:29:38.14ID:HHkXD8DX
「DirectX9必携」という本が良いと聞き
DL版をカートに入れてPayPalで支払いしたんですが
お店からなんの音沙汰もありません
手続き間違えたんでしょうか?
ノースブレインコンピュータのペイパル店です
0378デフォルトの名無しさん
垢版 |
2019/09/03(火) 09:54:38.42ID:gWEsYspA
いまさら9ですか
0381デフォルトの名無しさん
垢版 |
2019/09/03(火) 21:18:41.77ID:RMsO9mA3
それ結構アレな筆者がひとりでやってる会社だから
音沙汰ないならペイパル通さないと埒が明かないかもしれない
0382デフォルトの名無しさん
垢版 |
2019/09/04(水) 08:46:25.91ID:rcf0zyN5
dx9は、環境を整えるのが苦労するような。
プログマブルシェーダーはよいもの。
固定機能シェーダーは難解。
0383デフォルトの名無しさん
垢版 |
2019/09/04(水) 10:33:43.46ID:Z0seKSTe
>dx9は、環境を整えるのが苦労する

昔はともかく今は全然苦労しない
っていうか最近のVS(VC)入れたら勝手に入る
0386デフォルトの名無しさん
垢版 |
2019/09/05(木) 20:43:15.44ID:j9MLZBFM
初学ならウニかアンリ。
レンダリングパスをプログマブルにスクリプトに出来るのは、かなりいい。

最近、自作プログラムでディスクリプタとコマンドリストを工夫したが、12とバルカンはかなり面白い。
ディスクリプタが最適化の要とかかれたウェブページを見かけるが、コマンドリストもかなりいい。
専門用語チックな単語を使うけど、モデルデータ単位でコマンドリストを作ることが出来るのは11の特殊な実装と12とバルカンだけだと思う。
「コマンドリストへの命令詰め込みを描画パスの外側に追いやることができる」
簡単な実装で試してみたが、目に見える効果があった。
0387デフォルトの名無しさん
垢版 |
2019/09/05(木) 20:47:00.55ID:j9MLZBFM
ちなみにこのアイデアは、バルカンチュートリアルの受け売り。
あれのサンプルがしれっと実装していた。
0388デフォルトの名無しさん
垢版 |
2019/09/05(木) 21:13:35.59ID:ZpSYObk3
(どうせ使わん知見)
ディスクリプタとは?
→ テクスチャと定数バッファに対する入力アセンブラに位置付くメカニズム
入力アセンブ
0389デフォルトの名無しさん
垢版 |
2019/09/05(木) 21:14:01.92ID:ZpSYObk3
もうやだ。スマホ嫌い
0391デフォルトの名無しさん
垢版 |
2019/09/29(日) 01:19:13.34ID:RNbbFQK1
>>390
いえいえ
0392デフォルトの名無しさん
垢版 |
2019/10/03(木) 17:54:30.21ID:63G+g9tm
ちらうら。VRMというものがある。
ファイルフォーマットは、glTFを拡張したもので比較的に統一されたボーンデータを含めて人形モデルを扱える。
おおこれは!と思って調べてみた。
メッシュデータを覗いて無かったことにした。
データ交換にはよいけど、これをランタイムでロードする気にはならない。
終わり。興味がありそうな規格なので書いてみた。
0395デフォルトの名無しさん
垢版 |
2019/10/09(水) 18:27:49.27ID:HTzGAas7
VRMというよりglTFのデータ構造がランタイムで使うには不適切てのは、
GPUに流し込む頂点配列は、予め流し込んで扱いやすく整理しておかないと、ロード時に頂点構造をいちいちフェッチ、整理(積み替え)が必要になるということ。

GPUメモリをマップしたアドレスにストレージからダイレクトに流し込むことが最効率となる。

つまりそういうこと。
こんぐらいは説明なしで理解出来ているのが殆どだろう。
0398デフォルトの名無しさん
垢版 |
2019/10/23(水) 14:37:08.12ID:QC9Y9kT9
>>397
うるさいよ、知ったか振りするな!
0402デフォルトの名無しさん
垢版 |
2019/10/30(水) 19:45:37.73ID:s/TbJkTe
描画パイプラインが新しくなるんだね。
増幅シェーダとメッシュシェーダに変化する。
増幅がIAからテッセレータあたりまでをカバーし、メッシュシェーダが評価シェーダからジオメトリシェーダをカバー。
そのあとはラスタライザに繋がり、ピクセル補完なんかに続く。
増幅シェーダに与える頂点バッファ索引バッファを複数一気に与えることが可能っぽいから、
ほとんど計算シェーダになって、シェーダが意識して頂点を参照するような気がする
0404デフォルトの名無しさん
垢版 |
2019/11/06(水) 11:00:45.54ID:o3tEvZiY
AIがプログラム描くようになって
中で何やってるか人間に判らないレベルになると
みんな気がするしか言えなくなる気がする
0405デフォルトの名無しさん
垢版 |
2019/11/06(水) 18:03:49.13ID:K9Jg3ggd
>>403
まあ、答えを書く義務なんてないからね。
キチンと読まんと頭の中身がおばちゃんになっちゃうよ。
0407デフォルトの名無しさん
垢版 |
2019/11/06(水) 18:19:33.54ID:lAs+fg6D
ぶっちゃけ俺もVulkan移行中だけどこっちも驚くほど盛り上がってない
低レベルAPI叩く時代が終わっている気がする
0411デフォルトの名無しさん
垢版 |
2019/11/09(土) 11:25:43.09ID:baqU1blV
そのユニティバルカンは、たぶんスマホ向けだろうから、機能制限が多そうな予感がする。
いずれスマホ向けユニティと、コンソール向けユニティ、PC向けユニティに三分割されるか、
フレームワークが双互換性になしになる気がした。
0413デフォルトの名無しさん
垢版 |
2019/12/15(日) 23:11:29.08ID:Sa6ad6lJ
DX12触ろうかと思うんだが
VisualStudioのバージョンて何がいいとかある?
サンプル見ると2015ばっかりなんだけど何使っても変わらん?
0414デフォルトの名無しさん
垢版 |
2019/12/15(日) 23:45:13.69ID:o5hhJvrb
変わらん
普通に2019でもバシバシ開いてビルドできてる
DXRのサンプルとか2019オンリーだったりするし
特に理由がなければ新しいの使った方がええんでないの
0422デフォルトの名無しさん
垢版 |
2019/12/18(水) 20:00:16.50ID:MGSBCRcM
所詮9は固定機能とプログラマブルシェーダが入り混じった半端者
DirectXの面汚しよ…
0433デフォルトの名無しさん
垢版 |
2020/01/15(水) 01:16:57.98ID:v2GhIEBl
Windows7サポート終了でやっとこさDirectX11.1/11.2が使えるようになって嬉しい
XPのせいで息絶えたDirectX10の悲劇を忘れてはならない
>>422
DirectX9の初期の汚点NV3x GeforceFXとかいうゴミ
ハード的にPS1.3相当のパイプが半数を占めるので固定機能+DirectX9それもFloatが遅いのでHalfを多用しないと使い物にならない
内部的には演算 テクスチャ命令X2 の組み合わせでないとテクスチャユニットが片方使えないとか並列性にも難があったのでボロボロだった

あと頂点シェーダーがCPU任せでパフォーマンスが劣悪なIntel GMA系列も
底辺のAtomとCore2Duoで頂点処理とメモリ帯域のの比重が違うからロースペックほどパフォーマンスが非力で過酷なGPUだった
どちらもMRT4も浮動小数点テクスチャ使えないから骨抜きにされSM2.0はゴミ同然だった

まあDirectx11.1でHalf精度は再サポートを果したが
Intel Broadwell(Gen8)
AMD RavenRidge(Vega)
Nvidia Turing以降なのでやっと足並みは揃った所
※NV30ことGeforceFXはx86なら8.1で動く…ので試したい人はどうぞ尚FeatureLevel9_1だと固定機能無しなのでHalf型で足搔こうが鈍足だろうけどね…
https://m.youtube.com/watch?v=T1GfenBaQxM
0435デフォルトの名無しさん
垢版 |
2020/01/25(土) 07:26:18.16ID:thQWAkUM
Direct3Dの話というより射影行列作る時の話なのですがお願いします。
初期化する時の、fovy(視界)とアスペクト比についてです。
アスペクト比を変えた時にfovy(視界)を調整して、画面に写り込む範囲を出来る限り一定にしたいのですが
どうすればいいでしょうか?例えば縦に縮んだ時に縦は変化あってもいいですが、横幅の映る範囲は一定にしたいとかです。
今は、fovyに入力する値を適当にそれっぽいものにしてある程度一定っぽい結果を得てますが、出来ればちゃんとした計算式でやりたいです。
お願いします。
0436デフォルトの名無しさん
垢版 |
2020/01/25(土) 07:57:56.62ID:tBRSgsGs
FieldOfViewじゃなくてFrustumの方(XMMatrixPerspective(OffCenter)とか)で射影を作るべき案件に見えるが
0437デフォルトの名無しさん
垢版 |
2020/01/25(土) 09:47:14.19ID:vOHwAcHq
三角関数で割り出せないか?
先に水平視野角決めて、そこからアスペクト比をもとにFovYを計算。
0438デフォルトの名無しさん
垢版 |
2020/01/25(土) 16:06:32.61ID:thQWAkUM
>>437
そうですね。普通に三角関数で出せそうですよね。何か難しく考え過ぎてたような気がしました。

>>436
今回は自分で計算してみようと思います。ありがとうございました。
0440デフォルトの名無しさん
垢版 |
2020/01/27(月) 20:43:21.06ID:7jNlWdbx
DirectXの話ではなくて申し訳ないんだがここでしか質問できないので

DirectShow で Enhanced Video Renderer (EVR)を使って動画を再生してるんだけど
ビデオカードのユーティリティーソフトで GPU のクロックをダウンクロックしているにも関わらず
EVR を作成したら設定が無視されてGPUのクロックがブワーって上がる
この現象を抑えるのに何か有効な手段はない?
てか何でこんなことになるのかしら

ビデオカード: AMD Radeon R9 200系
OS: Windows 10

とりあえずの対策で EVR を VMR9 と カスタムアロケーター に置き換えて凌いでいるけど
気持ちが悪い
0441デフォルトの名無しさん
垢版 |
2020/01/28(火) 14:40:43.31ID:a5T6EpQP
初歩的な質問で悪いんだけど
D3DXMatrixPerspectiveFovLH()関数で設定したカメラの
視界からオブジェクトが消えたかどうかの判定方法について
どういう方法があるか教えてくだせえませ
0443デフォルトの名無しさん
垢版 |
2020/01/30(木) 07:47:52.51ID:/6+/KJKE
>>441
視点から奥方向への距離は、深度範囲に設定した最奥値(よくあるサンプルだと1.0から1000のパラメーターでいう1000の方)だから、視点から1000離れたオブジェクトを描画しなければいい。
視点から球上に距離を計算してもいいし、単純に視点座標系でz成分1000以上を弾いてもいい。
0445デフォルトの名無しさん
垢版 |
2020/01/31(金) 07:52:09.24ID:FQqRlDai
質問です。ddsファイルに並んでいるテクスチャ一つ一つを、
画像形式で保存する方法があれば教えていただきたいです
0448デフォルトの名無しさん
垢版 |
2020/02/02(日) 15:12:01.08ID:fRYkELO/
使ってるOSがLinuxでOpenGLの民なんですが、
DirectXとOpenGLの違いを教えてください。
OpenGLを知ってたのでエンジン的な物でも作ろうと思い、
何となく半々くらいだろうと思ってゲームプログラミングについて調べたら
情報の殆どがDirectXだったのが凄く意外で
……DirectXの方がゲーム作りに優れているならその具体的な理由が知りたいのと、
内容によっては乗り換えも検討してるのが現状です。
0449デフォルトの名無しさん
垢版 |
2020/02/02(日) 16:01:15.82ID:aXk/zDs3
何が意外って何も知らないIT音痴がLinux使ってること。
世界のPCのほとんどがWindowsなんだから当たり前だろうに。PCゲーム市場=Windowsなんだよ。
0450デフォルトの名無しさん
垢版 |
2020/02/02(日) 16:25:14.55ID:0Gqmr542
>>448
違いなんて膨大にあるし、その辺を説明したwebページも大量にあるのだから、まずはそれを自分で調べて疑問点をもっと具体的に絞り込んだら?
0451デフォルトの名無しさん
垢版 |
2020/02/02(日) 18:07:15.74ID:iCgKJVx9
そもそも技術的に優れたものが流行るとは限らないし
実はそっちの方がレアケース
0452デフォルトの名無しさん
垢版 |
2020/02/02(日) 18:09:02.20ID:iCgKJVx9
ちなみに Windows で OpenGL 使ったって構わないんだぜ
>>449 は変なこと言ってるけど
Linux で OpenGL に慣れてるって思ってるなら
Windows でも OpenGL 使いなはれ
0454デフォルトの名無しさん
垢版 |
2020/02/02(日) 19:38:17.60ID:6Y3Bd2tq
過去形で言われても困る
0455デフォルトの名無しさん
垢版 |
2020/02/02(日) 23:57:53.19ID:+9EpeIpw
一番の違いはIDEじゃねw
Linuxで大き目の開発しろって言われたら発狂しそうになるわ

どうせならVulkan頑張ってみたらいいのに、今回だいぶDirectXに寄ったし
関係ないが、昔MIFESとか使ってたなぁと検索したらまだ頑張ってたのな・・・
0456デフォルトの名無しさん
垢版 |
2020/02/03(月) 02:24:45.19ID:qoxrkkCs
ああー
42歳超えると意欲が
欠片もでねええよおお
去年は数行程度、今年はゼロだ
歳はとりたくねえもんだ
0457デフォルトの名無しさん
垢版 |
2020/02/03(月) 04:12:32.54ID:9tgcRyN6
445で質問した者です
教えていただいたサイトを読んでみたのですが、内容が難しくよく分かりませんでした
具体的にはMOD用に↓のような画像をパーツごとに分解したいです
https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcTeC5R4VL4oDXM4_moWz5wTJw_OcplSDSQ1MnDuEtQHKVBPji9Y
繰り返しの質問になってしまい申し訳ないですがよろしくお願いします
0459デフォルトの名無しさん
垢版 |
2020/02/03(月) 07:00:01.66ID:P8gMBc/D
>>457
同じ質問を繰り返しても同じ答えにしかならないだろう。具体的に何が分からないか絞られるならそれについての答えが得られるかもしれないけど、全部分かりませんというなら前提となる知識が足りない。
今の君には無理なことだから諦めるか、理解できるようになるために頑張りな。
0460デフォルトの名無しさん
垢版 |
2020/02/03(月) 07:27:22.07ID:I21LlSsI
>>457
てかModdingが目当てなのに間違えてプログラム板で聞いたパターンじゃないの?
ddsからbmpとかに変換するツールならそこいらに転がってるから自作する必要ない
0461デフォルトの名無しさん
垢版 |
2020/02/03(月) 07:30:04.19ID:9tgcRyN6
>>459
アドバイスありがとうございます!
そうですよね。まずは前提知識の勉強から始めてみます。
0462デフォルトの名無しさん
垢版 |
2020/02/03(月) 07:50:33.08ID:9tgcRyN6
>>460
Gimpで変換はできたのですがパーツごとに分ける方法が分からず。
境界線が曖昧で色域選択ではうまく切り取れませんでした。
0463デフォルトの名無しさん
垢版 |
2020/02/03(月) 08:29:05.55ID:I21LlSsI
完璧に切り分けるにはモデルのUV座標調べないといけないから難易度一気に上がるぞ
ある程度余分なとこも残して保存すればええやん
ていうかここはプログラミングの板だからスレチ
gimpのスレとかそのゲームのスレ池
0464デフォルトの名無しさん
垢版 |
2020/02/03(月) 12:26:26.62ID:62FLJlST
ここまで Unreal Engine なし
0465デフォルトの名無しさん
垢版 |
2020/02/03(月) 12:27:16.66ID:62FLJlST
>>456
そのうちチンチン勃たなくなる
射精しても気持ちよくならない
0466デフォルトの名無しさん
垢版 |
2020/02/03(月) 12:29:36.68ID:62FLJlST
>>457
blender 使って python で加工すると良いことがあるぞ
0469デフォルトの名無しさん
垢版 |
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
0470デフォルトの名無しさん
垢版 |
2020/02/06(木) 12:38:08.93ID:sNihMBVC
ポリゴンに対して画角が狭すぎるんじゃね
0471デフォルトの名無しさん
垢版 |
2020/02/06(木) 12:42:42.86ID:sNihMBVC
ああT字の頂点が画面から消えるのと同じタイミングで三角形が発生してるな
0472デフォルトの名無しさん
垢版 |
2020/02/06(木) 14:30:05.10ID:eGONke8S
ありがとうございます

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

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

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

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

根本的な解決が図れない様であれば、
上の赤と青の平面も細かい四角形の組み合わせで作る事で解決しようと思います
0473デフォルトの名無しさん
垢版 |
2020/02/06(木) 14:35:15.48ID:sNihMBVC
シェーダーにバグがあるか
なんかミスしてると思うよ
ソース無いとコメントしようがない
0475デフォルトの名無しさん
垢版 |
2020/02/10(月) 07:43:09.43ID:P1RMBO0j
ポリゴン数が少ないからでは?
デバイス正規化座標から頂点の一つでも外にあれば、ラスタライズ対象から取り除いているような気がする。
この部分の実装に規格がどう定義しているのかは知らないけど。
問題となるあたりに1個の三角形を置くと切り分けできそう。
0480デフォルトの名無しさん
垢版 |
2020/03/30(月) 17:49:18.16ID:IAJSu2bH
Direct2DやDirectWriteに興味があるのですが、DirectX12とは異なるバージョン体系で、
1.3とかになるんでしょうか……
0482デフォルトの名無しさん
垢版 |
2020/05/18(月) 09:53:46.54ID:CIK13cwb
direct x ってどのくらい難しいですか?
例えば四角ポリゴンを表示するまでに1年かかるというレベルの難しさなんでしょうか
普段はblenderを使っています
0483デフォルトの名無しさん
垢版 |
2020/05/18(月) 10:03:50.36ID:XEI7YtdQ
blenderに比べれば大変
やる気次第
0485デフォルトの名無しさん
垢版 |
2020/05/18(月) 10:10:48.38ID:CIK13cwb
>>483
>>484

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

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

どなたかご教授願えないでしょうか?
0490デフォルトの名無しさん
垢版 |
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
0494デフォルトの名無しさん
垢版 |
2020/05/23(土) 16:31:27.95ID:HTVp/rZ5
directx11のシェーダリフレクションについて質問です。
シェーダーの定数バッファのスロット番号情報ってシェーダーリフレクションで
取得できますか?
0496デフォルトの名無しさん
垢版 |
2020/05/26(火) 12:27:13.25ID:B/JpQdAR
マイクロソフトのDirectX エンドユーザーランタイムWebインストーラのダウンロードダウンロードしたいのですが、どうしてもWEBページが開きません
当方windows10環境で広告ブロック機能をオフにしても、Chrome、Edgeで開くことが出来ませんでした
0497デフォルトの名無しさん
垢版 |
2020/05/26(火) 12:53:33.61ID:aMGgtnO2
>>496
丁度今MSのダウンロードセンター落ちてるっぽいぞ
あとここはプログラム板なので関係ない質問はWindows板でな
0501デフォルトの名無しさん
垢版 |
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
0503デフォルトの名無しさん
垢版 |
2020/06/12(金) 13:55:11.16ID:p6HEXq8F
しねでも良いんだけど
マジレスするとC覚えろ
0504デフォルトの名無しさん
垢版 |
2020/06/12(金) 15:29:09.15ID:6Yfh5mGy
>>503
なるほどCでライブラリーを書くのかな?
作ったCのライブラリーで
VisualBASICからDirectXを呼び出して
C#のネットワーク経由でJavaを使うのかな
いろいろと大変そうです
0505デフォルトの名無しさん
垢版 |
2020/06/12(金) 15:46:34.82ID:1pXOSbLZ
続きはGoスレ
0507デフォルトの名無しさん
垢版 |
2020/06/12(金) 16:03:17.85ID:1pXOSbLZ
証拠は俺(きりっ)
0508デフォルトの名無しさん
垢版 |
2020/06/12(金) 16:26:09.02ID:QrZcUNbI
Java で DirectX は誰かが相当な労力かけてライブラリ作らないと無理
JNI、JNA とかあるけど、少なくともこの辺はあんまり良いライブラリじゃない
JNA はちゃんと管理されてないのか表記ブレすごい
やるなら JavaCPP だけど、どちらにせよ フル で DirectX の API 移植するなんて正気の沙汰じゃない
0509デフォルトの名無しさん
垢版 |
2020/06/12(金) 16:43:06.65ID:/VX8zieH
glslでfractal treeは描けますか?
processingとの違いがいまいちわかりません
0510デフォルトの名無しさん
垢版 |
2020/06/12(金) 16:55:40.68ID:6Yfh5mGy
>>508
すみませんありがとうございました。
マルチプラットフォーム 3DはUnityでJavaScript言語という結論にいたりました。
0512デフォルトの名無しさん
垢版 |
2020/06/21(日) 09:32:45.93ID:ILRVqiQ3
すみません、3Dゲームの背景に2D画像を表示させたいのですが
SpriteBatchを使った2D描画、の上から
ピクセルシェーダーを使った3DのDrawを重ねる方法はありますか?
0513デフォルトの名無しさん
垢版 |
2020/06/21(日) 10:08:48.76ID:ILRVqiQ3
>>512に追記で、そもそも
SpriteBatchの Begin をした段階で
3DでDrawしたものが消えてしまうのですが
2Dと3D描画の両立は出来ないのでしょうか
0514デフォルトの名無しさん
垢版 |
2020/06/21(日) 12:23:11.24ID:ZwLdQwUB
ん? 
2Dの上に3Dを描画したいのか3Dの上に2Dを描画したいのかどっちや

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

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

自分なりに調べてはみたのですが、PCにインストールされているdxのバージョンを確認する方法ばかりで見付けられませんでした。
0520デフォルトの名無しさん
垢版 |
2020/06/25(木) 03:19:03.10ID:5IWclQqc
新しいバージョンのランタイムで古いバージョンのAPIを動かしてたりとか
ひとつのゲームで混在してることもあるので
このゲームはこのバージョン!と決めつける情報ってのは割と難しいのよね
Process Explolerとかで読み込まれているモジュール見て
d3d**.dllの一番新しいのが該当とか雑に調べることはできるけど
0521デフォルトの名無しさん
垢版 |
2020/06/25(木) 06:20:59.04ID:0NciSbaN
>>520
なるほど!
ありがとうございます
そういうツールを探していたのですが、どういう調べ方をしたらいいのか分からなかったので助かりました
0522デフォルトの名無しさん
垢版 |
2020/06/25(木) 11:10:28.29ID:2XRewe5U
dx9とdx11とdx12のモジュールが全部ロードされてても
dx9しか使ってなかったりする可能性もある
0523デフォルトの名無しさん
垢版 |
2020/06/26(金) 23:58:06.13ID:DzJQLfsY
DirectX9.0cって32bitのみ?64bitバージョンって作れたっけ?
0525デフォルトの名無しさん
垢版 |
2020/06/27(土) 00:36:50.57ID:hIQRa/iE
>>524
それいつ頃からあったの?
0527デフォルトの名無しさん
垢版 |
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月にリリースされました
0528デフォルトの名無しさん
垢版 |
2020/07/01(水) 07:42:31.29ID:ZlpMMKEd
Directx12初心者です
テクスチャを貼った四角形を表示出来るところまで出来ました

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

その場合、ポイントリスト用のシェーダーファイルを新規に作らなければいけないのでしょうか?
0529デフォルトの名無しさん
垢版 |
2020/07/01(水) 14:36:32.38ID:fx/dVCbU
>>528
ごめん、わからん
0533デフォルトの名無しさん
垢版 |
2020/07/01(水) 15:17:19.06ID:ZlpMMKEd
>>532
ありがとうございます
頂点情報が違う場合は、基本的にシェーダーファイルを分ける必要があるということですね
0534デフォルトの名無しさん
垢版 |
2020/07/01(水) 18:07:10.52ID:DvB9sQqj
すみません質問なのですが
仮にDirectX11 を使ってローカル座標がそれぞれ異なる
100個のオブジェクトを描画する時

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

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

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

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

オブジェクトより、マテリアルやシェーダ毎に処理をまとめてDrawの発行数抑えた方が良いよ
固定パイプラインの時代じゃないし、ローカル変換もまとめてGPUにやらせるんや
0541デフォルトの名無しさん
垢版 |
2020/07/02(木) 00:17:28.18ID:qzzrf8yb
そういう最適化で最も気にしなきゃならんことは
GPUコアを止めちゃならんということ。
コアの運転が滞りなく連続で動いていることを最適と考えろ。
お前の例の1はVBの構築は初回のみの為コアの運転を妨げることはない。
逆に例の2は、ロックしている最中にコアの運転と衝突しストールさせる可能性がある。
よって2は1よりも悪手と言える。
ただしロックのそういった問題は、すでに対策が考えられていて
実際は表面化しにくいだろう。
0543デフォルトの名無しさん
垢版 |
2020/07/02(木) 13:38:01.33ID:gMQ2id/A
>>540-541
偉そうに振舞いたいのは解るんですが
一般論を述べられてるだけで何の参考にもならないです

>>541
あと初対面の人間にお前は無いだろ、クソが
0544デフォルトの名無しさん
垢版 |
2020/07/02(木) 13:46:47.88ID:gMQ2id/A
>>540
ローカル変換を、まとめてGPUにやらすってどういうこと
そこだけ教えてくれね?
0546デフォルトの名無しさん
垢版 |
2020/07/02(木) 14:41:20.99ID:gMQ2id/A
>>545
俺が例として1と2を分けた時点で
メモリを多く確保するか、CPUの処理を増やすかなんて事が
解らねーとでも思ったのか?
ガタガタ何を書いてんのかと思えば、何の答えも出してねーだろ

定石があるなら、どっちがそうだと答えればいいだろ
どっちも違うなら、その方法を教えろよと、ただそれだけでいいだろ
下手に出たからって舐めてんじゃねーよ
0547デフォルトの名無しさん
垢版 |
2020/07/02(木) 14:44:37.22ID:gMQ2id/A
>>545
テメーが何で絡んできたのか知らねーけど
定石について誰か答えてんのかよ
役にたたねーゴミだな
0548デフォルトの名無しさん
垢版 |
2020/07/02(木) 16:12:45.60ID:0asJFMdB
お前のキレ芸のおかげで
このスレが盛り上がる効果は
良いと思うが
俺はだるくて付き合えんわ
他のデュエリスト参加しろボケ
0550デフォルトの名無しさん
垢版 |
2020/07/02(木) 16:28:38.77ID:P2k5coQc
後出しジャンケンは喧嘩の元
0551デフォルトの名無しさん
垢版 |
2020/07/02(木) 17:29:24.37ID:gMQ2id/A
ジャンケンするつもりなんてハナからねーよ
つーかなんで誰かと争うって話になってんだよ
質問して、まともな答えが出れば何も文句はねーよ

スレ見てる時間までに、答えが出なかったから、自己解決ありがとうございました
で話題を閉めたのに、答えも書かずに上から目線で因縁だけ付けてきたヤツが居たから
指摘してやっただけだよ
0553デフォルトの名無しさん
垢版 |
2020/07/02(木) 17:42:01.18ID:ryu4JvV+
それでも良いけど
回答を引き出せないのも実力だな
逆のことしてるって気付け
0555デフォルトの名無しさん
垢版 |
2020/07/02(木) 19:17:46.12ID:DOytPOyJ
>>554
もう毛はないので争えないんだ
0558デフォルトの名無しさん
垢版 |
2020/07/03(金) 06:58:40.50ID:dLx5Y8f8
役に立たないゴミしか居ないんだな
先に仕掛けてきたのはどっちなのかレスみれば解るだろ
0559デフォルトの名無しさん(兵庫県)
垢版 |
2020/07/03(金) 09:03:02.39ID:xzjQhToj
者 レ 同    争
同 ベ じ    い
士 ル   _  は
で の  _/ |  `
し   _/・ (⌒) _
か  ∠((⌒/ノ_/ |⌒)
発   /  ̄/\_丿・ヽ~
生  /  ̄ノニ\_ V、>
し /   | /  /
な |⌒Y ∧ |  ヽ
い 人 |ノ |/⌒  |
!!|∧ /ヽ /(  _ノ|
 / |||く<、\ヽ\ヽ
/ ノヽ二)\(二_ノ_ノ\\
 ̄            ̄

仕掛けたゴミがうんこマンなら乗ったゴミもうんこマン解るだろ
0560デフォルトの名無しさん
垢版 |
2020/07/03(金) 09:27:20.70ID:r9jTvXIP
>>558
レスの流れをみてみると、最初に攻撃的、感情的な物言いを始めたのは>>543だな。
何かスイッチ入って豹変しちゃったのか?
0561デフォルトの名無しさん
垢版 |
2020/07/04(土) 01:03:50.18ID:KIBH4SNT
SIer業界がブラックな理由を解説する。エンジニアは自社開発をしているWeb業界がオススメ!
https://www.youtube.com/watch?v=iy4nnAI9og4
エンジニアの仕事が稼げる理由とは?プログラミングスキルと
仕事の需要は比例しないので、実は技術力が低くても稼ぐことができる!
https://www.youtube.com/watch?v=82Bs-NH8jAM
通勤時間が長い人ほど無能説。家賃節約とか言っている暇があったら、
会社の近くに引っ越して浮いた時間に副業したほうがお金も貯まるし強くなれる。
https://www.youtube.com/watch?v=mt6K1RJnk6I
プログラミングに英語は必要か?に対する明確な答え
https://www.youtube.com/watch?v=WWULJbVECKU
私がヤフーを辞めた理由
https://www.youtube.com/watch?v=-G-7Hc3rJw8
【業界研究】IT業界でひと括りにするのは危険。SIer、Web制作、
アプリ開発で仕事内容が全く違います。【就活・転職】
https://www.youtube.com/watch?v=_IJQ2iBkf4w
0562デフォルトの名無しさん
垢版 |
2020/07/04(土) 14:47:46.35ID:VcOMs9mw
Unity で ミクさんとかキズナアイとかと遊ぶスレはどこ?
0564デフォルトの名無しさん
垢版 |
2020/07/05(日) 15:24:13.95ID:BV1t1G9G
拡大縮小をしないスキニング処理は問題なくできるのですが、
拡大縮小を入れると途端にうまくいきません。
原因はどういったことでうまく行かないのか教えていただけないでしょうか?

以下はスキニング行列の計算を行っているコードになります。
void UpdateTransformMatrix(){
m_mCurrentLocalMatrix = Math::Matrix::Transform( m_vCurrentScale, m_vCurrentRotation, m_vCurrentPosition );
m_mCurrentGlobalMatrix = m_mCurrentLocalMatrix * InitMatrix;
if( !IsRootBone() )
m_mCurrentGlobalMatrix *= ParentBone->GlobalMatrix;
m_mCurrentPoseMatrix = OffsetMatrix * m_mCurrentGlobalMatrix;

// 子を更新
for( auto& it : Children )
it->UpdateTransformMatrix();
}
0566デフォルトの名無しさん
垢版 |
2020/07/05(日) 19:52:22.47ID:ThubCq9n
まーまず動かそうとしてるモデルの
ファイル形式は何?
それによって違ってくるので
0567デフォルトの名無しさん
垢版 |
2020/07/05(日) 20:06:26.08ID:BV1t1G9G
>566
MMD用のモデルのPMXで実装しています。

挙動を調べていたのですが、
例えば肩のボーンのZのサイズだけを変えたら
その子供のボーンに連動しているメッシュがグチャグチャになり、
しかしXYZのサイズを一緒の数値にすればグチャグチャにならず、
ちゃんと子供のボーンに連動しているメッシュも正しく拡大されて大きくなります。
0568デフォルトの名無しさん
垢版 |
2020/07/05(日) 20:07:47.91ID:BV1t1G9G
何故こうなるのかがさっぱりわからず困っています。
0569デフォルトの名無しさん
垢版 |
2020/07/06(月) 10:42:09.95ID:vjiPzzt6
>>565
+1
答えようと思ったけどそう思ってスルーしてた
0571デフォルトの名無しさん
垢版 |
2020/07/06(月) 16:37:43.67ID:adqlPIIW
描ける順序やろな
0572デフォルトの名無しさん
垢版 |
2020/07/07(火) 00:13:36.61ID:wqab1oeP
>>568
私はやった事ないのでわかりませんが推測として書きます、
おそらく拡大縮小はオブジェクト原点を基点として行われていると感じます。
拡大縮小の操作によってローカル座標原点が変換されて移動してしまう事に起因するのではないかと考えました。
何かのヒントになれば幸いです。
0573デフォルトの名無しさん
垢版 |
2020/08/28(金) 23:27:20.14ID:t+ft7h6K
動的シェーダーリンクっていうのを使って頂点カラーを使う関数とテクスチャから色を取得する関数を切り替えているんだが、
頂点カラーを使う方の関数を設定した状態で描画すると以下の警告が出る。
D3D11 WARNING: ID3D11DeviceContext::DrawIndexed: The Pixel Shader unit expects a Sampler to be set at Slot 0, but none is bound. This is perfectly valid, as a NULL Sampler maps to default Sampler state. However, the developer may not want to rely on the defaults. [ EXECUTION WARNING #352: DEVICE_DRAW_SAMPLER_NOT_SET]
使用する関数を切り替えていてもサンプラーを使っているなら必ず設定しなければならんのかコレ?
誰か教えて下しあ(´・ω・`)
0574デフォルトの名無しさん
垢版 |
2020/08/29(土) 07:43:26.49ID:jSrLwW2w
動的シェーダリンクであるかに関わらずシェーダ内でサンプラステートが宣言されてると判定されれば出る警告
まあ書いてあるとおりスロットに割り当てなくてもいいけど本当に忘れてない?大丈夫?おっ揉?
というただのお節介なのでデバッグランタイム以外ではまったく影響はない

デバッグ出力が汚染されるほど出てくるなら素直にダミーのサンプラ設定しときゃいいんじゃね
0575デフォルトの名無しさん
垢版 |
2020/08/29(土) 10:28:19.28ID:c0g48cI1
まじかよ(´・ω・`)
素直にダミーのサンプラー入れておくか・・・・・・
ありがとう。
0576デフォルトの名無しさん
垢版 |
2020/08/29(土) 13:03:52.56ID:gRfGX/UQ
この警告を消そうと思うと、
テクスチャとか使う時にセットして
使い終わったらNULLをセットする
いわゆる真っ当な組み方になってしまうんだが
Direct3Dのステートマシンって仕組みには
合わなくなってしまうんだよな
違和感を感じながらオレも組んでる
0577デフォルトの名無しさん
垢版 |
2020/10/02(金) 19:13:47.97ID:CjNN1LJS
11までのコマンド即時実行ならワールド行列用のバッファが一個でいいけどコマンドバッファ方式だとどうしたらいいと思う?モデルごとにバッファ持たせる?
0581デフォルトの名無しさん
垢版 |
2021/01/30(土) 11:17:04.37ID:EWZvTk3z
昔 C で DX9 で書いて Win10 上で動いていたプログラムが
久しぶりに実行しようとしたら動かなくなっていた
dll が見つかりませんとかのエラーも出ずに突然死する
exe の日付は 2016年8月 (たぶん最後にコンパイルした日) なのだが
当時は確かに Win10 上で動いていた記憶がある
何かアプデとかで仕様変わったとか情報ありますか?
0582デフォルトの名無しさん
垢版 |
2021/01/30(土) 12:40:35.86ID:ZHDbo8LN
d3dx9_**.dllうんちゃらってエラーなら単にそのPCにDirectXランタイムがインストールされてないだけ
0583デフォルトの名無しさん
垢版 |
2021/01/30(土) 12:50:04.81ID:EWZvTk3z
同じ PC ですよ
あと
>dll が見つかりませんとかのエラーも出ずに

は「dll が見つかりません」状態ではないですし
0584デフォルトの名無しさん
垢版 |
2021/01/30(土) 14:01:57.61ID:H5HXR/QH
すまんこ全然質問読んでなかったわ
D3D9はWin10でも依然として動くけど微妙な互換性の問題も少なくないのでそれだけじゃなんとも
0585デフォルトの名無しさん
垢版 |
2021/01/30(土) 15:57:40.50ID:EWZvTk3z
Texture に使ってた画像のサイズを変えたら
途中まで動いてから死ぬようになりましたω
2 の n乗の制限があった頃なので
多分ぬるぽで死んでるのだと思います
なんとか解決の糸口は判りました
ほんとうにありがとうございました
0586デフォルトの名無しさん
垢版 |
2021/01/30(土) 17:56:16.33ID:SAWZ84jg
参照している d3d9.dll を SysWOW64/System32 にある物に変えたら
2 の n乗以外の Texture でも正常に動作するようになりました
ついでに動作中に死ぬことも無くなりました
本当にありがとうございました
0587デフォルトの名無しさん
垢版 |
2021/02/03(水) 01:00:24.80ID:EXsTlUXo
>>586
自力解決の報告ありがとうございます!
俺も頭のどこかにとどめておきます。わずかながら手持ちにDX9世代のソースもあるので
0588デフォルトの名無しさん
垢版 |
2021/02/05(金) 17:27:02.44ID:ujO1/J+h
本来は試せばすぐわかることだと思うんですが
ちょっと数日ほど自分で試せないので質問させて下さい
D3D12_RESOURCE_DESCで指定したDimensionがtextureのものに対してconstant buffer viewを作ったり、
shader resource viewで異なるDimensionを指定することは可能なのでしょうか?
0589デフォルトの名無しさん
垢版 |
2021/03/02(火) 07:01:17.13ID:HJKV2UiN
古いバージョンの話が出てるので便乗で質問。
version7,8,9くらいのゲームをフルスピードで動かすと
古いビデオカードでも新しいビデオカードでも速度殆ど変わらないんだよね。
どっちもFps300前後でしか動かない。倍くらい行きそうだけど全然変わらない。
まるで制限がかかってるような感じ。古いversionだと動作に制限でもあるの?
0591デフォルトの名無しさん
垢版 |
2021/03/02(火) 11:54:09.60ID:f7OYJ+/1
VSync同期じゃ300も出ないか
0594デフォルトの名無しさん
垢版 |
2021/03/04(木) 12:20:58.55ID:jQppShlC
低レベルな質問でごめんだけど
D3DXMATRIX a,b;
a *= b;
この中身はどうなってるんでしょうか?
a.m[4][4]とb.m[4][4]をどう乗算してるんでしょうか?
0596デフォルトの名無しさん
垢版 |
2021/03/04(木) 13:31:42.58ID:jQppShlC
>>594
展開したらこうなることがわかりました
この部分が遅いのでもっと速くする方法ないかなと思いまして
void MatrixMultiply(MATRIX *pOut, MATRIX *pM1, MATRIX *pM2)
{
int x, y;
float mx0, mx1, mx2, mx3;
float *p1, *p2;
MATRIX mat;
MATRIX *pRetOut;

pRetOut = &mat;
for(y = 0; y < 4; y++) {
p1 = pM1->m[y];
mx0 = *p1;
mx1 = *(p1+1);
mx2 = *(p1+2);
mx3 = *(p1+3);

p2 = pRetOut->m[y];
for(x = 0; x < 4; x++) {
*p2 = mx0 * (pM2->m[0][x]) + mx1 * (pM2->m[1][x]) +
mx2 * (pM2->m[2][x]) + mx3 * (pM2->m[3][x]);
p2++;
}
}
*pOut = mat;
}
0598デフォルトの名無しさん
垢版 |
2021/03/04(木) 20:33:11.68ID:jQppShlC
>>597
ゲームのプログラム自体あまりやった事なく
人が書いたコードを弄って速くならないかなと思ってまして
0603デフォルトの名無しさん
垢版 |
2021/03/05(金) 10:49:05.54ID:ev+bkds+
>>594
MSの実装が見たいならd3dx9mathの後継にあたるDirectXMathのXMMatrixMultiplyを参照
DirectX SDKならxnamathmatrix.inl、Windows SDKならDirectXMathMatrix.inlの中にある
0605デフォルトの名無しさん
垢版 |
2021/03/05(金) 18:50:51.40ID:QgX7cNiF
4x4乗算関数の処理時間なんて微々たるもんだと思うが
これが遅いと判断した理由ってなんだろう?
速い遅いなんて相対的なもんだし基準がなければ判断出来ないと思うが
何とくらべたんだ?
0608デフォルトの名無しさん
垢版 |
2021/03/06(土) 13:35:15.25ID:bGzUu7RI
計算に時間が掛かってるんじゃなくて
データ移動に時間が掛かってると予想
0610デフォルトの名無しさん
垢版 |
2021/05/06(木) 22:35:59.57ID:/wa6Ki2m
昔作ったゲームのコード触ってるんだけど(Ver7.0)
ウィンドウモードでもディスプレイの解像度変更するとテクスチャバッファがロストするの困る。
なんとかならないものか。
0612デフォルトの名無しさん
垢版 |
2021/05/07(金) 16:18:46.08ID:8p/kYSMl
>>611
ロストが面倒なのでウィンドウモードで動かしてたはずだったが
ウィンドウモードでも起こる事があるんだね。
仕方ないのでロストが発生したら座標とかフラグとか一部のデータだけ残して
初期化処理をまるっとやる事にしたよ。
0613デフォルトの名無しさん
垢版 |
2021/05/07(金) 21:29:39.88ID:J3fm5doY
DirectXの機能レベルがよくわかりません。
例えば 11_0 までの機能を使う場合に
DX11とDX12で何か違いはあるんですか?
0614デフォルトの名無しさん
垢版 |
2021/05/08(土) 14:46:14.63ID:ApDttRWa
>>613
D3D11とD3D12は別モノのAPI
機能レベルが異なると同じAPI上でも一部の機能に差異がある
低い機能レベルを指定してデバイスを作成すれば古いハードウェアで動かせる可能性がある
0615デフォルトの名無しさん
垢版 |
2021/05/08(土) 16:16:08.03ID:Qd5m6V7T
機能レベルは、どの機能までサポートできてるかの指標に過ぎない。
DX11とDX12はAPIが違うから、記述方法や実行時のパフォーマンス等も異なる。
という認識であってますか?
0619デフォルトの名無しさん
垢版 |
2021/05/09(日) 20:01:03.26ID:xtmxe3CZ
最近古いプログラムの手入れをしてるのだが
ver7.0だと2048x1280以上の解像度で初期化しようとすると必ず失敗する
これはもうどうしようもないのかな
殆ど仲間内だけで使うものなので、裏技的な解決でもいいので
分かる人がいたらおしえて
0623デフォルトの名無しさん
垢版 |
2021/05/16(日) 19:42:20.14ID:Sjgu1Djw
Direct3D9なんだけどCreateDeviceのD3DPRESENT_PARAMETERSのPresentationIntervalの値で
Vsyncするかどうか切り替えられるのは分かったんだけど、デバイス作成後に切り替えたい場合はどうすればいいんでしょうか?
デバイスに変更出来るようなメソッドが見当たらないので困ってます。いちいち再初期化しないといけないんでしょうか?
0624デフォルトの名無しさん
垢版 |
2021/05/17(月) 11:16:13.25ID:bdQcRmr5
>>623
デバイスの再作成ってかResetは必要

ウィンドウモードならCreateAddtionalSwapChainの方で作って
切り替える時にスワップチェインだけ再作成って手もあるけど

D3D10.x以降ならPresent時にvsync待つか指定するだけ
0625デフォルトの名無しさん
垢版 |
2021/05/17(月) 12:31:43.62ID:Rz91nDza
>>624
そうなんだー面倒だな。
フルスクリーンは使わないのでスワップチェインの方法でやってみます。
ありがとう。
0626625
垢版 |
2021/05/17(月) 15:42:56.27ID:Rz91nDza
スワップチェインで切り替えようとしたんだけど、このコードでは上手くいかない… 真っ暗…
lpSwapChain[1]をlpSwapChain[0]に変えると正しく描画される。これじゃダメなんでしょうか?

D3DPresentParam.BackBufferWidth = Width;
D3DPresentParam.BackBufferHeight = Height;
D3DPresentParam.BackBufferFormat = D3DFMT_A8R8G8B8;
D3DPresentParam.BackBufferCount = BackCount;
D3DPresentParam.MultiSampleType = D3DMULTISAMPLE_NONE
D3DPresentParam.MultiSampleQuality = 0;
D3DPresentParam.SwapEffect = D3DSWAPEFFECT_DISCARD;
D3DPresentParam.hDeviceWindow = hWnd;
D3DPresentParam.Windowed = TRUE;
D3DPresentParam.EnableAutoDepthStencil = FALSE;
D3DPresentParam.AutoDepthStencilFormat = D3DFMT_D24S8;
D3DPresentParam.Flags = 0;
D3DPresentParam.FullScreen_RefreshRateInHz = 0;
D3DPresentParam.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;

lpD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING | D3DCREATE_MULTITHREADED, &D3DPresentParam, &lpD3DDev);

lpD3DDev->GetSwapChain(0, &lpSwapChain[0]);
D3DPresentParam.PresentationInterval = D3DPRESENT_INTERVAL_DEFAULT;
lpD3DDev->CreateAdditionalSwapChain(&D3DPresentParam, &lpSwapChain[1]);

lpSwapChain[1]->GetBackBuffer(0, D3DBACKBUFFER_TYPE_MONO, &lpBackBuffer);
lpD3DDev->SetRenderTarget(0, lpBackBuffer);
lpBackBuffer->Release();

lpD3DDev->BeginScene();
ここで色々描画
lpD3DDev->EndScene();
lpD3DDev->Present(NULL, NULL, NULL, NULL);
0627デフォルトの名無しさん
垢版 |
2021/05/17(月) 16:23:52.09ID:bdQcRmr5
>>626
デバイスの暗黙のスワップチェインと追加のスワップチェインに同じウィンドウ指定してるからかな?
CreateDeviceに渡すウィンドウハンドルを

CreateWindowEx(WS_EX_NOACTIVATE, "STATIC", windowName, WS_DISABLED | WS_POPUP, 0, 0, 1, 1, HWND_MESSAGE, NULL, GetModuleHandle(NULL), NULL);

とかで作ったダミーウィンドウを指定してCreateAddtionalSwapChainに渡すのだけ実際のウィンドウハンドルを指定してみて
0629デフォルトの名無しさん
垢版 |
2021/05/17(月) 20:47:34.02ID:Rz91nDza
>>627
やってみましたが、真っ暗で表示出来ませんでした。
これやっぱ、それぞれ違うウィンドウハンドル指定して
そのウィンドウが表示されてないと無理なんでしょうかね…
0630デフォルトの名無しさん
垢版 |
2021/05/17(月) 21:36:14.52ID:Rz91nDza
>>626
わかった… 最後スワップチェインからPresentしてないのが原因だった
>>627さん、ありがとうございました。
0631デフォルトの名無しさん
垢版 |
2021/05/18(火) 07:26:14.08ID:PKYeNhGF
>>619
7がなにかはわからんが、dx9時代だとテクスチャの辺の長さは2の正数乗がマスト、最大テクスチャ寸法にもデバイスドライバが定める制限があるはず。
今だとテクスチャは、単純なメモリ配列だが、その頃は固定機能パイプラインの設計したメタファに縛られたはず。
0634デフォルトの名無しさん
垢版 |
2021/05/31(月) 06:37:31.53ID:7hdyC4Sk
自作プログラム、Discordで画面共有した後、ウィンドウサイズを変更すると上手く動かなくなる
画面共有しなければ普通に動くし、共有してもウィンドウサイズ変更しなければ普通に動く。

変更して動かなくなる時はこんなの吐いてた↓
[09:38:37.302][PID36260] Hooked D3D9
'test.exe' (Win32): 'C:\Windows\SysWOW64\D3DCompiler_47.dll' が読み込まれました。
[09:38:37.375][PID36260] Hooked DXGI
[09:38:37.956][PID36260] PresentHandler(D3D9) created
[09:38:38.012][PID36260] HookReset: hooked reset
[09:38:38.012][PID36260] Attempting to use shared textures
[09:38:38.012][PID36260] CreateTexture succeeded! sharedTextureHandle: C00086C2
[09:38:38.012][PID36260] CreateTexture succeeded! sharedTextureHandle: 80001682
[09:38:38.013][PID36260] CreateTexture succeeded! sharedTextureHandle: 80008B02
[09:38:38.013][PID36260] D3D9State::InitOverlay: initialized to 05F9CE20 (window 00113BA8: 1920x1080)
[09:38:48.227][PID36260] D3D9State::ResetDevice: releasing resources
[09:38:48.228][PID36260] Attempting to use shared textures
[09:38:48.228][PID36260] CreateTexture succeeded! sharedTextureHandle: C0006B82
[09:38:48.228][PID36260] CreateTexture succeeded! sharedTextureHandle: 80000B42
[09:38:48.228][PID36260] CreateTexture succeeded! sharedTextureHandle: C0002102
[09:38:48.229][PID36260] InitOverlay::CheckDevice: failed to create texture: 0x8876086c
[09:38:48.229][PID36260] D3D9State::ResetDevice: releasing resources

ResetDeviceとあるのでデバイスロストが起こってるっぽい?
エラーチェックしてもプロセスからは特に普通。誰か分かる人教えて!
0635デフォルトの名無しさん
垢版 |
2021/05/31(月) 09:33:04.70ID:3RgsPXyf
>デバイスロスト

判ってるなら対策しろ
0636デフォルトの名無しさん
垢版 |
2021/05/31(月) 17:38:32.82ID:7hdyC4Sk
>>635
以前はこんなことなかったので最近何か変わったのかなと。
困るなー あと9より古いバージョンのDirectXでも大丈夫みたい。
0637634
垢版 |
2021/06/01(火) 16:52:09.15ID:EPebMwmH
>>635
どこで止まってるのかわかった。
特にデバイスロストは起こってないようだった。
初期化し直しても特に変わらず。

画面共有後、ウィンドウを最大化した後に以下のコードが実行されるとそこで止まる。
特にエラーを返すわけでもなくここから戻って来なくなる。
lpD3DDev->CreateTexture(Width, Height, 0, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, &lpTexture, NULL)

とにかく画面共有した後にウィンドウサイズを弄るともうダメ。
共有前に最大化して共有してその後いじらなかったら大丈夫。
だれか解決策教えて!
0638デフォルトの名無しさん
垢版 |
2021/06/01(火) 20:31:24.34ID:AO1txk8g
Hooked D3D9とかsharedTextureHandleとかそれDiscord側のログか?

Discord側がゲームプロセスの共有テクスチャ掴んだままゲーム側のスワップチェイン変更でReset誘発→
Discord側が検出して共有テクスチャ作り直そうとするがなんらかの理由で失敗

みたいな流れに見えるんで単にDiscordに聞け案件としか思えんが
0639デフォルトの名無しさん
垢版 |
2021/06/02(水) 07:05:51.54ID:9c/K+y8D
>>638
やっぱこれはDiscord側の問題なんですかね。
今のところこちらからはどうしようもないので、今度問い合わせてみます。
0640デフォルトの名無しさん
垢版 |
2021/06/11(金) 03:57:20.58ID:ZXCRhV66
ミップマップを自動生成して使おうと思ってるんですが
これってテクスチャは32bitじゃないと動かないんですかね?
16bitで作るとミップマップが作動しないので。
0644デフォルトの名無しさん
垢版 |
2021/06/12(土) 11:12:35.67ID:XqCyQXJp
VisualStudioでソース更新してビルドかけると
時々FXファイルもリコンパイルかかる時があるんだけど何で?
当然FXファイルは更新してないんで無意味なんだが
何で?
何で?
何で?
0646デフォルトの名無しさん
垢版 |
2021/06/12(土) 17:09:03.97ID:zdRBOonU
テクスチャ座標で1を0に、0を1にする計算式教えて!
教えて!
教えて!
教えて!
早くしろぉオラァッ!!
0648デフォルトの名無しさん
垢版 |
2021/06/12(土) 18:29:57.59ID:ghBnzS2R
t = 1-t
0651デフォルトの名無しさん
垢版 |
2021/06/15(火) 20:13:59.87ID:ERSv202r
深度バッファ回りでデバイスで変化する事象が出ています。
amdだと自然なのがnvだと手前のオブジェクトが後ろと判定される。
一定距離まで近づくと手前のオブジェクトのサーフェ〜すの一部がラスタライズされず、遠くなると


ああそうか。浮動小数点精度問題か、これ
0652デフォルトの名無しさん
垢版 |
2021/06/17(木) 16:36:39.46ID:E3MB5Pfy
今現在DirectSoundのIDirectSoundNotify8を使って、
もしWAVファイルが最後まで再生されたら再生位置を任意の位置に持ってくるというプログラムを作っています。
そのためにIDirectSoundNotify8を使えば便利そうなんですが、使い方がわかりません。
というよりもイベントの処理の仕方がわかりません。
オブジェクトの取得まではできたんですがね...
↓ソースファイル
https://drive.google.com/file/d/1LgJn_dY7nFoWGx1NiyC4kXxXZ8O5mBTq/view?usp=sharing
0654デフォルトの名無しさん
垢版 |
2021/06/18(金) 18:57:46.80ID:sv+BnNOz
球を平面に押し付けると、その境界は円になるよね
この円の半径がわかってる時、球の半径ってどう求めれば良い?
0656デフォルトの名無しさん
垢版 |
2021/06/18(金) 21:19:53.21ID:mwnPxVZv
境界は点だし、その半径は0だし、ちょっと何言ってるか分からない。
なによりなぜ上から目線なのか。
0657デフォルトの名無しさん
垢版 |
2021/06/18(金) 21:37:45.48ID:uKaqnLHw
球を平面でカットした場合ってこと
どうカットしても断面は円になるでしょ?
つーかここまで説明されなきゃわからんとか
レベル低っ!!
0658デフォルトの名無しさん
垢版 |
2021/06/18(金) 21:41:19.05ID:uKaqnLHw
上から目線って何?
私は上から目線で生意気に質問されてるから
答えないから!
わからないんじゃなくて答えないだけだから!ってこと?
ダサww
0659デフォルトの名無しさん
垢版 |
2021/06/18(金) 21:48:08.69ID:kejK9s3z
その球の中心か、断面の円の中心とそこから突き抜けた距離とかが分かればいけそうだけど
円の半径だけじゃ無理そう
0661デフォルトの名無しさん
垢版 |
2021/06/19(土) 05:28:23.03ID:oAdp6z6P
球を平面に押し付けると → 球を平面でカット

一言も説明してない自分の妄想が相手に伝わらないと相手のせいにする。
かなりのキチガイだから相手にしないほうがいい。

すげー馬鹿なのに上から目線だし。
0663デフォルトの名無しさん
垢版 |
2021/06/20(日) 08:04:49.64ID:OIjFeek2
>>659
ユーが正解だな
円の半径じゃ足りなくて
もう1つ値が必要だったな
みんな俺の為に頑張って調べて大変だったな!
ありがとな!でも次からはもっと早く調べてこいよな!
0664デフォルトの名無しさん
垢版 |
2021/06/20(日) 11:56:54.94ID:YA/Ya76e
とんとん
とんとん
ごめんください。布教に来ました。

・mixamo(ボーンアニメーションのモーションデータがあるよ。あどべid登録必須。モーションデータは無料)
・BOMTH(pixivの露店さいと。モデルデータボーン入りが売ってる)
福音
0666デフォルトの名無しさん
垢版 |
2021/06/22(火) 11:07:15.16ID:2AbGnqy7
666
0668デフォルトの名無しさん
垢版 |
2021/07/16(金) 11:50:12.09ID:E3ke7LEi
質問です。
やりたいこととしては、GPUベースのパーティクルアルゴリズムにおいて(これは出来てます)、
あるパーティクルAの一フレーム前の座標と、パーティクルAの今のフレームの座標と、
バーティクルBの今のフレームの座標を取得して、ジオメトリシェーダでポリゴンを生成していくアルゴリズムを作ることです。

そのためには一フレーム前のパーティクルAの座標を取得しないといけないと思うのですが、
どうやったらいいでしょうか。つまり過去のフレームを格納しておくような方法はありますでしょうか。

どうぞよろしくお願いいたします。
0669デフォルトの名無しさん
垢版 |
2021/07/20(火) 10:55:12.11ID:MVb7vtDl
DirectX11以前だと1フレーム前の情報を保存する為には、レンダリングターゲットテクスチャかストリームアウトプットぐらいしかないと思うが
他に何かあるかな?
0675デフォルトの名無しさん
垢版 |
2021/07/22(木) 13:40:37.48ID:+FkqmWTP
DirectXって昔流行ったよな
0676デフォルトの名無しさん
垢版 |
2021/07/22(木) 14:00:40.24ID:I7nexIle
DXlib って DirectX の進化について行ってる?
0678デフォルトの名無しさん
垢版 |
2021/07/30(金) 01:12:20.65ID:0Nia9jjj
円の半径 = cos( π * 球と平面の距離 / 球の半径 ) * 球の半径 かな?
0681デフォルトの名無しさん
垢版 |
2021/07/31(土) 12:56:13.47ID:nW4mOK6D
10年前ならともかくUnityをを使わない理由が全く分からん
エンジン作ってるならまだしもゲーム作ってるんだよな?
0682デフォルトの名無しさん
垢版 |
2021/07/31(土) 14:43:39.27ID:8Uq1d3k2
Unityは重いしプレイする側から相当嫌われてるから自作エンジン作る必要があるんだよ
なお俺には到底無理だからUnityつかう
0685デフォルトの名無しさん
垢版 |
2021/07/31(土) 20:57:13.17ID:BXdlYT5W
>>681
文句のひとつも言いたいとこだけど
アプリを起動する度にシャドウマップテクスチャに描かれたり描かれなかったりする
謎現象が起きてて、何時間デバッグしても得られるもん無くて
俺はゲームもろくに作らずなにやってんだろと思ってしまってる..
0687デフォルトの名無しさん
垢版 |
2021/08/01(日) 15:54:44.63ID:XWCicmM8
>>686
sinder とか siv3d とか cocos2d とかあるけど
こいつらは c++ 大前提だからなぁ

C 用を欲しているってことはオブジェクト指向型じゃない方がいいんだよな?
それなら基本関数型の設計になってる DxLib がいいんじゃない?
0691デフォルトの名無しさん
垢版 |
2021/08/02(月) 16:33:36.76ID:Fmz6EWM1
DxLibじゃダメなの?
0693デフォルトの名無しさん
垢版 |
2021/08/02(月) 21:42:52.88ID:SbVR5xvF
>>692
DxLib 側はC++ で実装されてるだろうけどゲーム作る側は
ほぼ C だけの知識 ( クラスとか解らなくても ) 作れるようになってるよ
ただ、フレームワークかといわれると違うかと
名前通り『ライブラリ』でAPI群が提供されてる感じ
もちろん C++ でも作れるぜ!b
0694デフォルトの名無しさん
垢版 |
2021/08/02(月) 22:01:36.64ID:3wJTSwwc
>>685
やっとバグを特定した
4日かかった
表す価値もないしょーもない内容だった
アホやなあワイは、、
0696デフォルトの名無しさん
垢版 |
2021/08/03(火) 00:30:12.49ID:Ucc8C21f
馬鹿には無理
0698デフォルトの名無しさん
垢版 |
2021/08/03(火) 13:55:48.32ID:MolD2tLT
>>697
頑張ってる人にそういうこと言うなよ
>>694
プログラマならトライアンドエラーを繰り返して上達するんだから
あきらめずにバグ修正できたのは立派だとおもうよ
どういう理由でバグってたのか教えてもらえるとうれしい
0699デフォルトの名無しさん
垢版 |
2021/08/03(火) 14:54:30.20ID:wbx4PwZT
あるあるw
手こずったバグの原因がわかったときの自己嫌悪
ぶん殴ってやろうかコイツって
0700デフォルトの名無しさん
垢版 |
2021/08/03(火) 15:30:19.93ID:my7I/bQY
会社のすげえプログラマの人とか、バグで全然止まらないんだよな。
俺らとか下手したら2,3日悩んだりするじゃん?そういうのが全くない。バグあってもすぐ解決する。どんな頭の構造してんだろ。
0706デフォルトの名無しさん
垢版 |
2021/08/07(土) 22:19:18.70ID:7ea3iVpn
性格悪いなー
同じプログラマ名乗らないでね
0708デフォルトの名無しさん
垢版 |
2021/08/10(火) 00:05:50.97ID:IhtB/M4t
Direct3D11のキューブマップの仕様がわからんので教えてくだし
HLSLでキューブマップを読みだすには3次元ベクトルを使うが
キューブマップの配列から読み出すにはどう書けばいいの?

例えばキューブマップ配列の3番から読み出す場合は
以下をどう変えればいい?
v4_diffuse.rgb = g_tex_cube.Sample( g_sam_linear, v3_reflect_W).rgb;
0709デフォルトの名無しさん
垢版 |
2021/08/10(火) 00:11:40.16ID:IhtB/M4t
後、CubeMapGSサンプルをみていると
キューブマップを作る際の方法が次の2パターンあるが
1,DrawIndexedInstanced()で同じメッシュを6回描画し、それぞれキューブマップの6面に書き出す
2,メッシュを1回描画し、ジオメトリシェーダでキューブマップの6面に書き出す

どっちも結局は一緒だと思うけど1をやるメリットって何かある?
2だけ考えれば良いのかな?
0710デフォルトの名無しさん
垢版 |
2021/08/10(火) 00:18:29.76ID:IhtB/M4t
書いといてなんだけど708わかったわ
TextureCubeArrayってそれ用のオブジェクトがあって
4次元ベクトルでサンプリングするんやな
スレ汚ししちまって正直すまんこかったな
0712デフォルトの名無しさん
垢版 |
2021/08/17(火) 17:59:10.06ID:ZzFXOhc1
登録されているビューポートの数はID3D11DeviceContext::RSGetViewports()で取得できるけど
登録されているレンダーターゲットビューの数はID3D11DeviceContext::OMGetRenderTargets()では
取得できない
ビューの数はどうやって取得するのか?
0714デフォルトの名無しさん
垢版 |
2021/08/18(水) 20:44:28.35ID:GF8BtmLZ
dx12での2Dオーバーレイについて訊きたい
公式見るとD3D11On12使うみたいだけどうまくいかない
2Dが描画された直後に一瞬アニメーションが止まるし、
2D描画後に生成した3Dオブジェクトが描画されない(オブジェクト分のメモリはちゃんと増えてる)
うまくいってる人どうやってるか教えてくれD3D11On12じゃなくてもいいから
0716デフォルトの名無しさん
垢版 |
2021/08/19(木) 19:30:35.41ID:527sxbC6
glVertex3dとglTexCoord3dって毎回一対一で使わないとだめ?
多対多みたいに
glTexCoord3d
glTexCoord3d
glTexCoord3d
してから
glVertex3d
glVertex3d
glVertex3d
ってやっても大丈夫?
あとglTexCoord3d省略したときのUVって何が設定されるの?ランダム?最後の値を維持?
0720デフォルトの名無しさん
垢版 |
2021/08/26(木) 02:20:38.85ID:cMr20xDq
>>714
D3D11On12 は使わないかな
2D を 3D の後ろに描画する際
2D 描画後に Zバッファクリアしてる?
2D 描画するなら板ポリ作って正射影行列でワールド行列作るのが
一般的だと思うよ
0721デフォルトの名無しさん
垢版 |
2021/08/26(木) 18:20:11.66ID:2PbEFFnf
>>720
あ、やっぱり使わないんだ
いろいろ試したけど挙動的にZバッファは関係なさそう
まあ俺が正しく使えてないだけだろう
どっちにしても素直に板ポリ使うわありがとう
0726デフォルトの名無しさん
垢版 |
2021/08/29(日) 01:52:57.04ID:TPHdi4yb
>>723
同じネタ思い付いたがあまりにも馬鹿っぽいのとスレ消費無駄なのでやめておいた
0727デフォルトの名無しさん
垢版 |
2021/08/29(日) 08:09:58.30ID:z+CvjRY2
>>726
あ、やっぱり使わないんだ
いろいろ試したけど挙動的にZバッファは関係なさそう
まあ俺が正しく使えてないだけだろう
どっちにしても素直にポリ袋使うわありがとう
0732デフォルトの名無しさん
垢版 |
2021/09/13(月) 19:48:47.39ID:LTFifztG
馬鹿が書評描くと評価下がる例
https://www.あまzon.co.jp/dp/4863543549
0735デフォルトの名無しさん
垢版 |
2021/10/12(火) 11:47:15.86ID:JETpbgo0
Zバッファをテクスチャにしたいんだけど簡単な方法ないでしょうか?
0736735
垢版 |
2021/10/12(火) 13:31:42.53ID:JETpbgo0
IDirect3DDevice9::GetRenderTargetDataを使って
別のテクスチャの領域にコピーとかできるんですかね?
帰ったらやってみます。
0737デフォルトの名無しさん
垢版 |
2021/10/12(火) 15:15:46.73ID:JETpbgo0
D3DFMT_D24S8で深度バッファ作成して
SetTextureで設定してレンダリングしても
シェーダーからZ値が取れないの?
0739デフォルトの名無しさん
垢版 |
2021/10/13(水) 20:17:35.12ID:FoQ7p5uh
>>738
ここのサンプルみながら一旦テクスチャ用に確保した領域にZ値を書き込んでからやる事にしました。
http://marupeke296.com/DXGSmp_No_43_ZValueRendering.html

ただ色々やってるんですけどイマイチ上手く行きません…
今のプログラムはもっと単純なので、サンプルのワールドビュー射影行列は削除して行っています。
どうもピクセルシェーダーでZ値が取れてない感じがします。
このシェーダーの全体の処理を削除し、単にバッファのコピーをすると
別のシェーダーからはRGB値は取れるので、別のシェーダーの記述は正しい気がします。
0740デフォルトの名無しさん
垢版 |
2021/10/13(水) 20:35:17.08ID:FoQ7p5uh
こんな形で処理してます。シェーダー部分を丸ごと削除すると別のシェーダーからはRGB値は取得出来るので別のシェーダーは正しく動いてる気がします。
//コード本体部分
lpD3DDev->SetRenderTarget(0, lpRenderSurface);
lpD3DDev->SetDepthStencilSurface(lpZBufferSurface); //レンダリングバッファとZバッファには既に色々と書き込まれている
lpD3DDev->SetTexture(0, lpRenderBuffer1);
UINT nPasses; //四角い板にテクスチャ設定してZ値を取得する用のサーフェスに描画
lpEffect->Begin(&nPasses, 0);
lpEffect->BeginPass(0);
lpD3DDev->SetFVF(D3DFVF_TLVERTEX);
lpD3DDev->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP, 2, tlvtex, sizeof(D3DTLVERTEX));
lpEffect->EndPass();
lpEffect->End();
//シェーダー部分
struct VS_OUTPUT{
float4 Pos : POSITION; // 射影変換座標
float4 ShadowMapTex : TEXCOORD0; // Zバッファテクスチャ
};
VS_OUTPUT VS( float4 Pos : POSITION, float4 ShadowMapTex : TEXCOORD0 ){
VS_OUTPUT Out;
Out.Pos = Pos;
Out.ShadowMapTex = ShadowMapTex;
return Out;
}
float4 ZBufferPlot_PS( float4 ShadowMapTex : TEXCOORD0 ) : COLOR{
return ShadowMapTex.z / ShadowMapTex.w; // Z値算出
}
technique ZValuePlotTec{
pass P0{
VertexShader = compile vs_1_1 VS();
PixelShader = compile ps_2_0 ZBufferPlot_PS();
}
}
0741デフォルトの名無しさん
垢版 |
2021/10/14(木) 07:29:06.96ID:sdRsWYAw
これもしかして、まとめて取得出来るのではなくて
オブジェクトごとに、一つ一つ別に保存してないとダメなんでしょうか。
0742デフォルトの名無しさん
垢版 |
2021/10/14(木) 23:40:17.85ID:zUpXI/dI
Shadowmapのサンプルが深度バッファをテクスチャにしてるだろうからそれを参考にしたら?
0743デフォルトの名無しさん
垢版 |
2021/10/15(金) 08:01:34.77ID:s5eU50Mv
>>742
ありがとう。
よく見てくとやっぱり別に用意した書き込み用の
Z値を保持するバッファに一つ一つ書き込んでそれを使ってるみたい。
とりあえずその方法でやったら上手く行きました。
0745デフォルトの名無しさん
垢版 |
2021/10/15(金) 22:51:03.11ID:s5eU50Mv
以下を実行すると画面が白くなります。出来れば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;
}
0746745
垢版 |
2021/10/15(金) 23:15:01.24ID:s5eU50Mv
今気づいたけどSV_TARGETはDirect3D9では使えないみたいですね…
エラーが出なかったので気付きませんでした。
それではlpSurface1に出力するにはどうすればいいんでしょうか?
0747デフォルトの名無しさん
垢版 |
2021/10/17(日) 11:26:11.17ID:oNTBMRTn
>>746
ピクセルシェーダーの出力セマンティックス「COLOR1」を使う
以下を参照
http://neareal.net/index.php?ComputerGraphics%2FHLSL%2FCommon%2FMultipleRenderTarget

ただし、
>複数の色を書き込む場合は、すべての出力色を連続して使用する必要があります。
>つまり 、COLOR0 が既 に記述されていない限り 、COLOR1 を出力にすることはできません。
こういう制約があるようなのでもう一工夫しないとダメだろうな
0751デフォルトの名無しさん
垢版 |
2021/10/24(日) 09:16:59.40ID:IF6Ria+p
ここはrustでdirectxをいじる場合の話を聞いてもいいのか?
マイクロソフトがサポートするようだけど
0753デフォルトの名無しさん
垢版 |
2021/10/24(日) 12:53:39.98ID:IF6Ria+p
windows-rsはまだ出来たばかりで言語感の差が初心者に結構きついんですよ
directx12の魔道書を移植しようにもc++にあったものが対応しているかどうかも分からない
0755デフォルトの名無しさん
垢版 |
2022/05/04(水) 22:39:43.82ID:Yin5yPj8
転職して前の会社で作っていたライブラリを再開発したいと思っています。
前職のライブラリはDirectX9で作成していたのですが、
DirectX9は古くてサポートが切れる可能性があるので、DirectX12かOpenGLのどちらかにしようかと悩んでいます。
ちなみに、使いたい機能は2D表示のみです。
将来性を考えると2D表示のみならマルチプラットフォームで使えるOpenGLの方がやはり良いのでしょうか。
0756デフォルトの名無しさん
垢版 |
2022/05/05(木) 02:00:55.02ID:8yVljjyt
将来性とか言い出したら既にOpenGLは終わってVulkanだが
無理せずDirect2Dでもやっとけ
0758デフォルトの名無しさん
垢版 |
2022/05/05(木) 13:56:42.61ID:zknXQMI1
OpenGLは3D用だし将来継続するって根拠も不明
Macじゃ数年前から名指しで非推奨にされていつ廃止になってもおかしくない
ふわっとマルチプラットフォーム見据えてるならメジャーなゲームエンジンに学習割いた方がマシ
そもそも2Dで扱うバックエンドのAPIなんて大したことやらねえんだからどれ使っても誤差
好きなの使いたまへ
0759デフォルトの名無しさん
垢版 |
2022/05/06(金) 15:46:00.86ID:cW5+23bf
将来のために3Dの板に2Dデータをテクスチャして
その3Dの板を画面に表示すればいいw
0763デフォルトの名無しさん
垢版 |
2022/07/30(土) 16:27:10.10ID:paa5jUiA
DX22まであります
0764デフォルトの名無しさん
垢版 |
2022/08/15(月) 16:50:09.07ID:c0/Fknp3
Intelのネイティブサポート止める話聞くまで存在すら知らなかった

tps://github.com/microsoft/D3D9On12
0765デフォルトの名無しさん
垢版 |
2023/01/20(金) 23:22:28.95ID:qiUCEM6N
DirectShowの質問です。
実行ファイルと同じディレクトリに置いたコーデックDLLが使われ
pGraph->RenderFile(FileName);
が実行されています。しかし他のPCでやると失敗します。
恐らくレジストリに値が無く動かないと思うのですが(コーデック登録がなく)
自力でプログラムからレジストリ登録をやるか、レジストリ登録なしで動かしたいです。
どなたか力を貸してください。
0767765
垢版 |
2023/01/21(土) 11:13:10.20ID:IpxCL/07
>>766
ちょっと話が変わりますが、今だとmp4ファイルは再生できないのですが
これに対応すにはどうすればいいんでしょうか?
外部からインストールファイルを使ってコーデックをインストールするとかではなく
プログラムの中だけで完結したい場合です。
DirectShowのフィルターを自作するとかそういう方法になるんでしょうか?
0768デフォルトの名無しさん
垢版 |
2023/01/21(土) 12:55:06.70ID:aLDqxzMz
そのコーデック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で表示されます)
0770765
垢版 |
2023/01/21(土) 13:29:58.89ID:IpxCL/07
>>768
ありがとうございます!やってみますね!
0773デフォルトの名無しさん
垢版 |
2023/05/08(月) 23:01:35.22ID:fjpXov5M
はじめましてVC++におけるDirectXの設定についてお尋ねします
DirectX SDK Jun 10 というSDKを公式からダウンロードできたのですが
ここにあるSDKをインストールし、VC++のincludeとlibフォルダにコピペし
コンパイルしたのちにsal.hがありませんと怒られれました
sal.hってなんですか???
レスを投稿する


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