【C++】 DirectX初心者質問スレ Part41 【C】at TECH
【C++】 DirectX初心者質問スレ Part41 【C】 - 暇つぶし2ch2:デフォルトの名無しさん
18/03/23 15:24:51.44 1IsbON+l.net
現在の最新バージョンはDirectX 12.0 / 11.3 です。
URLリンク(www.microsoft.com)
URLリンク(support.microsoft.com)
URLリンク(blogs.msdn.com)
URLリンク(msdn.microsoft.com)
URLリンク(www.directxtech.com)
DirectXTK12
URLリンク(github.com)
Games for Windows and the DirectX SDK
URLリンク(blogs.msdn.com)
DirectX Tool Kit
URLリンク(directxtk.codeplex.com)
DirectXTex texture processing library
URLリンク(directxtex.codeplex.com)
C#でDirectX又はXNA系の情報を探してる人は
MonoGame
URLリンク(www.monogame.net)
SharpDX
URLリンク(sharpdx.org)

3:デフォルトの名無しさん
18/03/23 18:55:40.86 EIyQfpqf.net
>>1
Direct乙

4:デフォルトの名無しさん
18/03/27 04:55:51.19 7BdcIkqa.net
>>1
Xおつ

5:デフォルトの名無しさん
18/04/01 02:12:17.66 nd/JKgHR.net
DirectX9でアニメーションメッシュを描画するのに
HLSLを利用しようと考えています。
そこで気になったのですがID3DXAllocateHierarchyの仮想関数CreateMeshContainerの
3番目の引数に D3DXEFFECTINSTANCE *pEffectInstances というのがあります。
また、D3DXMESHCONTAINERにもLPD3DXEFFECTINSTANCEというメンバーがいて
シェーダー用に何か用意されているみたいなのですが
これは無視して問題ないですか?

6:デフォルトの名無しさん
18/04/03 21:15:32.20 IV0h2igV.net
>>5
使ったことないから知らないけど、
おそらくは、固定機能の挙動を操作するパラメータ値を「エフェクト」と読んでいた筈だから、
固定機能のパラメータを別に設定すれば、そこは省略しても大丈夫だと思う。
ただ、それ以前にDirect3D9を使うことを避けた方が合理だと思う。
アニメーションメッシュ(ボーンアニメーションとかスケルタルアニメーションとか言われるやつ)は、
それを実現するには、入力するモデル(=ジオメトリ、メッシュの集合)に頂点索引と頂点重みを適切に付与してやることを暗黙の大前提とする。
これが整ったモデルがない限り、アニメーションメッシュを描画して、任意にモデルを動かすことはできない。
そして、これが整ったモデルがあるならば、Direct3D9を使う必要もない。

7:5
18/04/05 02:15:46.51 SYV80fTX.net
>>6
回答有り難うございます。
いろんなサンプルを見てみたのですが
まるぺけ様の解説以外は皆無視していたので
自分も無視して実装してみていました。
HLSLのエフェクトのことではないんですね…
いろいろあってDirectX9使うしかない状況になっています。すみません。

8:デフォルトの名無しさん
18/04/05 10:22:00.28 1r2HUrTf.net
NVIDIA産 DXR Tutorial
URLリンク(github.com)

9:デフォルトの名無しさん
18/04/05 20:34:52.14 mVUghqCo.net
ついにレイトレーシングをやるときが来たか・・・

10:デフォルトの名無しさん
18/04/06 06:02:14.71 dZswQVR+.net
これが期待通りの結果を得られるならば、ライトマップテクスチャを作りやすくなりそうだな

11:デフォルトの名無しさん
18/04/06 10:51:40.37 GebZAWEZ.net
dx12には興味はないけど
これはちょっと面白そうだよな
今は忙しいんで始めないけど
落ち着いたらやってみたい

12:デフォルトの名無しさん
18/04/07 11:30:10.01 0hfuNHUN.net
DirectX9でD3DXMESHCONTAINER構造体にpNextMeshContainerというメンバがいて
次のメッシュへのポインターということはわかるのですが、
先頭のメッシュはどうやったらわかるのでしょうか?
よく再帰関数でMeshContainerを探すプログラムがありますが
兄弟→子供の順で探すものと子供→兄弟の順で探すものがあり
この場合、XファイルにMesh情報が複数あったときに最初に見つかるMeshが異なるはずです。
兄弟から探す、というような決まりがあったりするのでしょうか?

13:デフォルトの名無しさん
18/04/08 11:27:25.18 Af9reKad.net
DaaSって
DirectX as a Service の略?

14:デフォルトの名無しさん
18/04/11 00:17:49.30 5V3NvSPI.net
NHKでコングラとかいう番組始まった

15:デフォルトの名無しさん
18/04/13 07:38:15.76 Vex26u2I.net
数学の初歩的な質問ですみません。
D3DXVECTOR3型の単位ベクトルをD3DXVECTOR4型にする場合、
xyzをコピーして、w要素に1.0fを渡せば良いのでしょうか?
もしくはD3DXVec4Normalizeを再度呼ぶべきでしょうか?

16:デフォルトの名無しさん
18/04/13 09:54:04.19 Rs41Vn4m.net
目的が分からないから答えにくいが
とりあえずw=1にしておいて問題が起きたらw=0にすればいい
正規化は不要

17:デフォルトの名無しさん
18/04/13 16:20:48.92 0A+C4J/t.net
>>15
まず単位ベクトルとは何なのかちゃんと調べろ
>>16
馬鹿は黙ってろ

18:デフォルトの名無しさん
18/04/14 01:41:39.54 XBkokJgu.net
>>15
W=1

19:デフォルトの名無しさん
18/04/17 15:09:03.69 lgGemf/B.net
>>15
元が単位ベクトルなら正規化は不要
ラスタライザが正規化に問題を起こすこともあるから、ピクセルシェーだで正規化を必要とすることもある

20:デフォルトの名無しさん
18/04/17 15:37:44.55 CCYPJkgd.net
シェー

21:デフォルトの名無しさん
18/04/17 18:33:58.76 +sL4wJKh.net
w=1はおかしいでしょ
w=0だろ元は3次元ベクトルなんだから
お前等大丈夫か?

22:デフォルトの名無しさん
18/04/18 13:50:24.04 jwplkjQW.net
位置座標は w=1
向き(法線とかライト方向とか)は w=0

23:デフォルトの名無しさん
18/04/18 19:32:36.52 PCykkfDW.net
向きと座標の違いが分からないのかも
アフィン空間で生活しているのかもしれない

24:名無し@キムチ
18/04/21 18:11:16.60 I+u33JKG.net
DirectXを最近始めた者です。
URLリンク(k3tec.net)
に出ていたコードをコピペしたけど、エラーが出て起動できません。
エラーの赤線が引かれている部分は、
pD3D9 = Direct3DCreate9(D3D_SDK_VERSION); のpD3D9の部分
// メッセージループ
MSG msg = {};
while(msg.message != WM_QUIT) {
のwhileの部分、
コードの最後のpDevice3D->Release();
pD3D9->Release();
////////////////////////////////////////////////////////////////////
return 0;
のpD3D9の部分、return 0;の部分などです。
どうすればいいのでしょうか?
よろしくお願いします!!

25:デフォルトの名無しさん
18/04/21 18:18:00.59 WC+haZq3.net
>>24
SDK関連のインクルードができてないのでは?
とにかくエラーメッセージ出してくんないと分からない。

26:名無し@キムチ
18/04/21 22:40:22.66 I+u33JKG.net
>>25
いろいろいじったりインクルードをやりなおしたりしたのですが、エラーの赤線はなくなりましたが、やはり実行できません。
これがエラーメッセージです ↓ よろしくお願いします
URLリンク(youtu.be)

27:デフォルトの名無しさん
18/04/21 22:44:07.75 rn0kmHGN.net
ダメだ、こいつは真性のアホだ

28:デフォルトの名無しさん
18/04/22 13:41:00.42 Y4hVJtjZ.net
あほというか、これが普通なんだよ。
ここの住人が普通じゃないだけで

29:デフォルトの名無しさん
18/04/22 16:51:32.65 /RR+q6wr.net
馬鹿には無理

30:デフォルトの名無しさん
18/04/23 12:05:48.96 vlA+ovs8.net
directwrite始めたいんやが
サンプル落とせないんやがあ!!
ワイどうすればいいんや
馬鹿は死ね以外でよろしおま

31:デフォルトの名無しさん
18/04/23 14:40:38.05 nbJPMv9D.net
>>30
暑苦しいな馬鹿は死ね
昔のサンプルならここにいくつか残ってる
URLリンク(github.com)
上のと少し被るがここをDirectWriteで検索すると他のも追加で出てくる
Windowsストアアプリ世代だがDirectWriteの自体の機能サンプルとしては問題無い
URLリンク(code.msdn.microsoft.com)
UWP世代のサンプルだがここにもいくつかある、当然新しめの機能が題材だ
URLリンク(github.com)

32:デフォルトの名無しさん
18/04/23 18:05:37.91 i6qG1yBq.net
最近、とある字形レンダリングライブラリを使った描画処理を整理したが、
DirectWriteからDirect3Dへの転送が遅い理由がよくわかった。

33:デフォルトの名無しさん
18/04/23 18:14:45.02 vlA+ovs8.net
>>31
な、なんや・・
優Cやないけ
おかげでゲット出来たわ
ワイがJKならお礼に
ぎゅるんぎゅるんやってやつところやけど
汚いオッサンなんや
堪忍な☆

34:デフォルトの名無しさん
18/04/23 18:39:29.18 oPojfQh4.net
>>31
優しくてワロタw
>>32
kwsk

35:デフォルトの名無しさん
18/04/23 19:01:28.98 i6qG1yBq.net
>>34
単純にパス数(工程数)が多い。
1.字形のラスタライズ
ベクトルフォントからビットマップにラスタライズ。CPU。輝度のみ
2.字形に色を塗る
輝度から色相。CPU
3.GPUのステージんぐに転送
4.ステージングからレイアウトされたテクスチャに変換
5.アルファ合成
完成
普通のモデル、ジオメトリなら一度読み込ませたらテクスチャ転送なんかしない。

36:デフォルトの名無しさん
18/04/23 19:08:27.69 oPojfQh4.net
>>35
サンクス!
うわぁ、けっこうCPUに仕事させてんなぁ~。
もっとGPUにオフロードしてほしいもんだね。

37:デフォルトの名無しさん
18/04/23 20:00:25.94 VH1tGrG4.net
>>36
より深みを知りたいならこれ
URLリンク(postd.cc)

38:デフォルトの名無しさん
18/04/26 08:11:40.49 +OH03S7h.net
字形描画を実装した。
雑な実装だが、アホみたいに遅くなった。
初期実装:描画ループで35の全部やったらフレームレートが1fpsを割った。
兎に角、プロセッサからGPUメモリにアクセスするとガッツリと下がる。

39:デフォルトの名無しさん
18/04/27 03:51:05.04 Xxmylx8F.net
実装方法替えろ

40:デフォルトの名無しさん
18/05/01 20:07:08.28 roik25Nm.net
昔の古いゲーム、メモリの動きを監視してたら
起動するとかなりシステムメモリが消費されるけど
ビデオメモリ使用されてないんですかね?
古いバージョンだとなんか制限あるとかですか?

41:36
18/05/01 21:25:35.83 L4vu9h1Q.net
>>37
遅くなったが読ませてもらった。
全然理解できなんだw
フォントレンダリングの基礎を知らないとアカンっぽいね。
今のところ、GPUよりもCPU(SMID)でやるほうが良い領域なんだな。

42:デフォルトの名無しさん
18/05/02 18:25:48.57 4c1W/mNQ.net
>>41
・GPUだと早いでw
・FreeTypeは遅い
としか書いてないからな。
GPUオフロードがメモリ面での現実問題になりにくいアルファベット文化の発想と感じる。
訳なんだが、たかだか100MBのベクターフォントなら全部上げて計算シェーダで実装とかも嫁ではないが、
字形をフレーム毎に再計算したいニーズがあるのだろうか?

43:デフォルトの名無しさん
18/05/02 23:07:56.05 Scv/JeYe.net
描画のほとんどは、字の計算式だろ
毎フレーム、描画すると遅い

44:デフォルトの名無しさん
18/05/04 18:49:25.20 dNIZRuBx.net
DirectX9 SDK(June 2010)をインストールするとついてくるDirectX Control panelの64bit版が
設定を変えて保存して閉じても、有効にならず、再度DirectX Control Panelを起動すると
変更が戻っています。32bit版であれば正常に動作します。
ググっても同じ症状の人がおらずお手上げ状態です…

45:デフォルトの名無しさん
18/05/04 20:07:39.74 3WMufHHm.net
wow64のじゃなくてsys32のを起動

46:デフォルトの名無しさん
18/05/14 20:50:07.09 tRbM1edI.net
DirectInputでタッチパネルは扱えるでしょうか?

47:デフォルトの名無しさん
18/05/14 21:08:24.92 KofH6ClR.net
>>46
できますん
URLリンク(msdn.microsoft.com)
タッチ系はこのへんを参考
Win7以前でもタッチに対応したいならWM_TOUCHあたりでぐぐる

48:デフォルトの名無しさん
18/05/21 18:29:35.16 4RzDK2kC.net
ようやくFreeTypeで縁取りを取り出せるようになった。
気づいたことは、最初から太字でデザインされたフォントじゃなければ、見るに耐えない字になる。
NotoSansレギュラーを縁取りしたら、見栄えが悪くなりました。
とりあえず、あれ。縁取りのサンプルでSVGでやるやつは、取り出しかたの考え方を間違えていると思った。
それとベシエprimitiveがほしい。

49:デフォルトの名無しさん
18/05/22 12:07:48.26 xGwd/XeK.net
いかにもやり方間違ってそう

50:デフォルトの名無しさん
18/05/22 12:37:41.23 cqSLjUCo.net
やってるのは、16ピクセルだしね
64ピクセルぐらいにすれば、今でも綺麗に縁取りが描ける。
製本、組版はビットマップを好む。
3DCGは速度を求める。パスが欲しい。

51:デフォルトの名無しさん
18/05/24 10:33:09.63 cPlRxlDn.net
.

52:デフォルトの名無しさん
18/05/27 17:57:57.31 2gIWG0vU.net
age

53:デフォルトの名無しさん
18/06/08 18:11:51.66 5mNi7HTZ.net
「DXライブラリ」がミドルウェアとしてNintendo Switchに対応、ロイヤリティーフリーで提供開始
URLリンク(www.gamer.ne.jp)
マジか…

54:デフォルトの名無しさん
18/06/08 20:53:47.40 CyGe2dW2.net
>>53
出世したなぁ…。
使ったことないけど、おめでとさん!

55:デフォルトの名無しさん
18/06/09 01:43:47.25 cb2OTG8G.net
俺もちょい信頼性の落ちる簡易ラッパーぐらいの印象しかなかったわ
昔からあるよねぇ……祝福しておこう

56:デフォルトの名無しさん
18/06/09 09:29:23.52 p8Ryx7NG.net
dxライブラリーと聞いて、d3dxのライブラリー関数のことだと思ったら別物なのね。

57:デフォルトの名無しさん
18/06/14 23:35:46.28 k5kVKI2u.net
2つの方向ベクトルがあるとき、
一方をもう一方の向きに一致させるようなピッチ(X軸回転)とヨー(Y軸回転)を導き出すには
どのようなアプローチがあるでしょうか?(ロール(Z軸回転)はなし)
一つは、
(1)2つのベクトルに直交する軸(外積)で2つのベクトル間の角度分回転させるクォータニオンを生成
(2)Z軸方向の単位ベクトルを(1)のクォータニオンで回転させる
(3)(2)で回転させたベクトルの先を原点から注視するようなビュー行列をXMMatrixLookAtLH()で生成(上向きベクトルはY軸方向の単位ベクトル)
(4)(3)で生成したビュー行列(回転行列)からピッチとヨー成分を抽出
という手順が考えられますが、もっとエレガントな方法ってあるでしょうか?

58:デフォルトの名無しさん
18/06/14 23:42:25.24 JQpIvTOs.net
ただの数学じゃねぇか
数学苦手なんか?
アホらしい

59:デフォルトの名無しさん
18/06/15 09:10:29.84 xbpv1wwF.net
だな

60:デフォルトの名無しさん
18/06/15 10:36:35.26 uIGrLsPa.net
共同ツール 1
URLリンク(seleck.cc)
URLリンク(trello.com)
ボードのメニュー → Power-Upsから拡張可能 Slack DropBoxなど
Trello Chrome拡張機能 elegant
URLリンク(www.kikakulabo.com)
trelloのオープンソースあり
共同ツール 2
URLリンク(www.google.com)
共同ツール 3
URLリンク(slack.com)
URLリンク(www.dropbox.com)
URLリンク(bitbucket.org)
URLリンク(ja.atlassian.com)
URLリンク(www.sketchapp.com)
URLリンク(photoshopvip.net)
URLリンク(goodpatch.com)
Trello Chrome拡張機能プラグイン集
URLリンク(chrome.google.com)
Slackプラグイン集
URLリンク(slack.com)
Sketchプラグイン集
URLリンク(sketchapp.com)
URLリンク(supernova.studio)

61:デフォルトの名無しさん
18/06/24 23:39:06.72 MHZUaDN2.net
DirectXがあれば何でもできる!

62:デフォルトの名無しさん
18/06/24 23:54:33.13 UvBq3Ll6.net
空をも飛べるさ!

63:デフォルトの名無しさん
18/06/25 14:55:11.71 tpBtUwyy.net
UnityとかBlenderとか最強なんですが

64:デフォルトの名無しさん
18/06/25 23:53:59.77 Kc7kOg5T.net
DirectX/(^o^)\オワタ

65:デフォルトの名無しさん
18/06/26 00:01:16.64 DRvYOX4T.net
DirectX\(^o^)/ハジマタ

66:デフォルトの名無しさん
18/06/27 02:13:11.00 qCFrYxC9.net
DirectX11.0で2Dの不思議のダンジョン系ローグライクゲームを作ろうと思うのですが
ヌルヌル快適に動く物を作りたいので、Direct2DとDirect3Dのどちらを使った方が実行速度が速いのか教えてください

67:デフォルトの名無しさん
18/06/27 06:42:41.98 xoqcVahO.net
>>66
Direct3D

68:デフォルトの名無しさん
18/06/27 08:47:57.23 pcMibjex.net
>>66
両方使う必要がでる。

69:デフォルトの名無しさん
18/06/27 12:41:26.92 pAr4i2XM.net
>>66
2D

70:デフォルトの名無しさん
18/06/27 13:24:35.31 GDyaaYF3.net
>>66
3D

71:デフォルトの名無しさん
18/06/27 15:43:35.46 2dfKv2YD.net
3Dに+1

72:デフォルトの名無しさん
18/06/27 18:20:19.62 v2t9p75e.net
>>66
>"DirectX11.0で2Dの"
って書いてあるじゃん?オーバーレイだけでやるって事?
スーパーファミコンの疑似3Dがやりたいのでしょうか?
オーバーレイの機能って3D?

73:デフォルトの名無しさん
18/06/27 18:37:56.34 4Q/RDtKQ.net
2Dの処理するにしても3D使う方が速くね

74:デフォルトの名無しさん
18/06/27 18:59:02.46 pcMibjex.net
速いね。だが、そのハードルは高い。
11.0てことは、7。
つまり2Dでシェーダが使えない。
すると、ビットマップなんかをロードしてやるにしろ、ちょっとしたセピアフィルターなんかも自前、CPU処理とかになる。
つまり2Dでは遅い。

75:デフォルトの名無しさん
18/06/28 00:27:47.00 AvSEAtjl.net
いや使えるから
アホか

76:66
18/06/28 01:17:28.76 0Mk0oUDE.net
Direct3Dでやってみようと思います
ありがとうございます
>>72
すみませんよく分かりません
普通のドット絵を特別な演出なしでただ表示するだけです

77:デフォルトの名無しさん
18/06/28 08:16:05.06 LsQc8TCW.net
>>75
8.1以降だよ。D2Dのシェーダ機能は。

78:デフォルトの名無しさん
18/06/28 19:24:43.13 8R+Whkqb.net
>>77
正確にはPlatform Updateを当てたWin7からだねえ
shader linkingとかWin10じゃないと使えない部分もあるけど

79:デフォルトの名無しさん
18/07/04 22:04:38.23 gFgZc5FG.net
LLK

80:デフォルトの名無しさん
18/07/05 11:48:24.25 IcGtf/nv.net
収賄

81:デフォルトの名無しさん
18/07/13 12:33:24.67 biAzu33U.net
過疎ってるな
やっぱりDirectX/(^o^)\オワタのが原因か

82:デフォルトの名無しさん
18/07/14 00:26:43.18 30p93O+E.net
俺はDirectXしか使え・・・使わない

83:デフォルトの名無しさん
18/07/17 14:17:47.91 +kxKOOfA.net
URLリンク(Qlone.pro)

84:よろしこ
18/07/19 20:17:45.32 yrhu1YJX.net
スプライトでも座標変換済み頂点の2D板ポリゴンでも、
1MB程のデータサイズの画像(3000×6000ドット等)を2、3枚重ねて描画していると、
終には重ねたい画像が、白いボックスのものが表示、あるいは画像がまったく何も表示されないという
怪奇現象に出会った人いますか?
URLリンク(o.8ch.net)

85:デフォルトの名無しさん
18/07/20 03:22:50.62 /pvYBo5v.net
仕様です
解決策としてZを少しずらす事で対処するのが普通
そういった機能はDirectXにもOpenGLにも既に付いてるよ

86:よろしこ
18/07/20 10:08:53.06 VlOc7Xbe.net
答えてくれてありがとうございます。
言い方間違えました(´つω・`)
Zをいじったり、座標をずらしてみたのですが、結果は同じでした。
16GBもメモリを積んでいる、にもかかわらず、
テクスチャーがトータル5MB分ぐらいしか表示されません。
どう足掻いても、メモリ不足になる、これはどうしてもおかしいなと思うんですよ。
いろいろやり方試したけどできないのです、おそらくVRAMが1GBしかないからなのかな~?
もうOpenGLで行こうかと思いもします。(´つω;`)
利用しているのはVC++2015とDirectX9.0です、初学者には丁度良いものです。
11、10飛ばして12に覚えようかと期待もします。11はやること多すぎでつ。
みんなみたくUnityみたいなのに乗り換えたほうが利口なのだとおもうますがね、
どうしてかDirectXが捨てられない
沢山pngファイルが読み込めるサンプル作ってくれる人いませんか?
簡単なものでよいので壱万円ぐらいなら払いますじょなもし。(´・ω・`)
URLリンク(o.8ch.net)

87:デフォルトの名無しさん
18/07/20 11:02:58.03 z4opRCGK.net
>>86
まずそっちから上手くいかないコード晒すのが順序ってもんやろ
現状じゃテクスチャ解放忘れてVRAM使い果たしてんじゃね
くらいの予想しかできねえよ

88:デフォルトの名無しさん
18/07/20 11:26:12.47 c77xM4ns.net
なんで自分が判ってないのを環境のせいにするんだろうな

89:よろぴこ
18/07/20 12:14:04.68 VlOc7Xbe.net
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ってどのくらい詰め込めるものですか?(´・ω・`)
URLリンク(o.8ch.net)

90:デフォルトの名無しさん
18/07/20 13:29:13.16 9AbXiOEg.net
えっと
CreateTexture(n~10枚ぐらい);
RELEASE();
これを書いてる場所が可笑しい

91:よろしこ
18/07/20 14:09:53.21 VlOc7Xbe.net
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
不明だったところです。
URLリンク(o.8ch.net)

92:デフォルトの名無しさん
18/07/20 14:39:58.10 VlOc7Xbe.net
レス頂きまして、ありがとうございます。
>これを書いてる場所が可笑しい
場所ですか・・・、これは
便宜上隣り合ってるだけで、実際の記述とは異なります。(´・ω・`)

93:デフォルトの名無しさん
18/07/20 15:31:13.30 9AbXiOEg.net
RELEASE(&lpTexture[j]);
じゃね?
知らんけど

94:よろしこ
18/07/20 17:05:06.82 VlOc7Xbe.net
自己解決しました。
レスポンスをくださった方々ありがとうございました。
機会がありましたらまたよろぴくぴくぴくです(´・ω・`)
URLリンク(o.8ch.net)

95:よろぴこ
18/07/20 17:08:20.35 VlOc7Xbe.net
解決法は画像データ(pngデータ)のサイズを半分にしました。

96:デフォルトの名無しさん
18/07/20 19:46:09.51 c77xM4ns.net
2のN乗とかか

97:デフォルトの名無しさん
18/08/07 19:05:29.05 38hSWpmt.net
DirectX滅亡まで秒読み開始

98:デフォルトの名無しさん
18/08/07 19:21:20.21 19TOdeI6.net
DirectXは永久に不滅です!

99:デフォルトの名無しさん
18/08/13 15:32:52.42 3dxz5Rk6.net
ディファードレンダリングについて質問です。
directx11でディファードレンダリングを勉強中なのですが、
最終描画でカラー情報と法線情報をうまく取得できません。
以下の画像のようにテクスチャ一枚一枚に描画されるような感じになってしまいます
左上がカラーと法線、下が結果です
URLリンク(iup.2ch-library.com)
URLリンク(iup.2ch-library.com)
そのまま取得するだけではだめなのでしょうか?

100:デフォルトの名無しさん
18/08/13 16:05:10.01 obMX332h.net
Not Found

101:デフォルトの名無しさん
18/08/13 16:18:49.27 urswoUFg.net
すみません、上げなおしました
URLリンク(iup.2ch-library.com)
URLリンク(iup.2ch-library.com)

102:デフォルトの名無しさん
18/08/13 17:12:25.04 YdemEp8d.net
>>101
参照するメッシュがスクリーンじゃなくて、立方体になってるじゃん

103:デフォルトの名無しさん
18/08/13 18:07:05.90 hJrJ9HSe.net
>>101
最後は立方体じゃなくて1枚の板ポリを描画する

104:デフォルトの名無しさん
18/08/13 21:02:12.89 Tq2c1yHL.net
>>102
>>103
上手くいきました!!
ありがとうございます

105:デフォルトの名無しさん
18/08/14 17:50:04.02 GfcO4nK4.net
>>104
いえいえ

106:デフォルトの名無しさん
18/08/17 00:16:57.92 TP+ulg07.net
Direct3D12で描画ループを描けた記念のカキコ。
Direct3D12は、かなりVulkan(Mantle?)の影響を受けているけれど、
11以上に描画パイプラインが理解しやすく、GPUをイメージしやすくなっていていいね。
もう11には帰れない。 11に帰りたくない。
そこで12を普及に当たって、躓き易い箇所を整理、共有しておきたい。

107:デフォルトの名無しさん
18/08/17 00:29:42.32 TP+ulg07.net
箇条書きで。
<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での処理を制御するための情報。

108:デフォルトの名無しさん
18/08/17 08:23:12.12 cK7DWfih.net
素晴らしい。
DirectXまだまだ終わらんよ。

109:デフォルトの名無しさん
18/08/17 09:46:38.02 LJ797i4F.net
D3D12はD3D11がやってくれてたことを自前でやるだけだから凡その場合どうでもええが
DXRが目的の場合はいよいよ避けて通れなくなりそうだからなあ

110:デフォルトの名無しさん
18/08/18 01:31:45.98 vcFx3lE6.net
どうせまた複雑過ぎるとか
世論が騒いで
易しくなった13が出るだろ
それまでワイは手を出さんで
つーかそれまでにガンとかで
死んでそう

111:デフォルトの名無しさん
18/08/18 01:36:13.96 zXZq/jKJ.net
いや、簡単は11、複雑は12と住み分けることになってる。

112:デフォルトの名無しさん
18/08/21 11:56:44.32 0hGhn6dd.net
どこで質問していいか判らなかったので質問させて下さい。
LOGFONT の lfPitchAndFamily の FIXED_PITCH と同等の判定を
FreeType2 で行いたいのですが、face_flags を
FT_FACE_FLAG_FIXED_SIZES と FT_FACE_FLAG_FIXED_WIDTH で判定しても、
どちらも FIXED_PITCH と違う判定が返されてるのです。
何か方法はありませんでしょうか?

113:デフォルトの名無しさん
18/08/21 18:25:42.25 IlfNWypd.net
int* str;
int *str;
ポインタなんだけど、2つの書き方の違いって何?

114:デフォルトの名無しさん
18/08/21 19:09:20.22 3qLPo3UW.net
思想、宗教の違い

115:デフォルトの名無しさん
18/08/22 08:29:11.39 sSqkHd4p.net
>>112
固定ピッチにしたいなら、固定ピッチに対応したフォントに限られる。
MSpゴシック、游ゴシックなんかを与えても固定にはならない。(と、思う)
恐らく、NotoSansMonoというキーワードが妥協案におすすめ。

116:デフォルトの名無しさん
18/08/22 08:36:33.49 swhwlLlG.net
字形の描画(レンダリング)で言えば、アンチエイリアス(輪郭のギザ付きを中間色で誤魔化す)もFTはやってくれるから、自前でピッチを固定したり、間隔を整えようとすると苦労する。
数学というよりも心理、グラフィックスデザインの領域に近いのかもしれない。
ついでに言うとDirectWriteは字形のパス(この場合、頂点配列に近い)を出力できる。

117:デフォルトの名無しさん
18/08/22 13:49:54.72 Q4k/bgn4.net
>>113
前者は
int* str, hoge, fuga;
っていうミスをしがち
後者は
int *str, hoge, *fuga;
で書き分けの意図がはっきりする
よって後者をおすすめします

118:デフォルトの名無しさん
18/08/22 14:34:01.47 BSjDybOq.net
>>115
説明下手で済みません。
そういう意味ではなく、Faceに読み込んだフォントが
固定ピッチなのか可変ピッチなのかを判定したいのです。

119:デフォルトの名無しさん
18/08/22 17:53:38.04 su77kwqg.net
>>117
理解はできるが、後者は気持ち悪くてできないなぁ(汗)
しょうがないから1変数1行ずつ書いてる。

120:デフォルトの名無しさん
18/08/22 18:03:19.36 Y/fFyhhT.net
>>118
詳しくは知らないが、恐らく「ない」んじゃなかろうか。

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

121:デフォルトの名無しさん
18/08/22 18:46:30.87 exTCpVs2.net
>>117
ありがとうございます

122:デフォルトの名無しさん
18/08/22 19:57:06.31 Q4k/bgn4.net
>>119
気持ち悪いのは
int *str, hoge, *fuga;
が混ざってるからで
完全に一行ずつに分けなくても
int hoge, hage;
int *str, *fuga;
なら問題ないだろ

123:デフォルトの名無しさん
18/08/22 19:59:38.50 Q4k/bgn4.net
int* str, hoge, fuga;
の意図が
int* str, * hoge, * fuga;
だとするとこっちの方が気持ち悪い

124:デフォルトの名無しさん
18/08/22 20:00:22.96 Q4k/bgn4.net
宗教戦争になるのは認める

125:デフォルトの名無しさん
18/08/23 14:19:36.46 0oLK3sfm.net
ミニゲームじゃなくて気合入って作られてるDirectX使った出来の良いゲームで
言い方悪いけどパクれるというかお手本になるソースコードって公開されてない?流石に都合良すぎるか

126:デフォルトの名無しさん
18/08/23 15:20:39.26 fvt/af8o.net
GitHubを漁る

127:デフォルトの名無しさん
18/08/23 22:25:35.05 cv8sNhFm.net
文法、記述ルールは、宗教戦争だけど、
最近流行りのヌルポ排斥運動は、熾烈な勢いがある。
コーティン?だったかは、変数の使い回しを言語レベルで排斥する思想。
ヌルポを排斥するため「仮決め(代入なしの変数宣言)」を許さない。変数の仮決めは穢れている。
初期値から消滅まで、必ず値を持たせるためには、有意な値を引き回せばよい。
結果、グローバル、アクセス自由度の高い変数に流れ、見通しの悪い、誰が更新参照してんだかを特定しにくく(匿名性を高める効果を促進しやすく)なるか、アホみたいに引数を引き回すかコンテキスト構造体を引き回すことになる。
コンテキスト構造体とは、すなわち匿名性の促進と道義。

128:デフォルトの名無しさん
18/08/23 22:36:02.39 DjzyTv43.net
>>125
ソースコードだけならば、Elonaがソース公開されているんでないかな。
よくしらんけど。もしかしたら作者と直に連絡を取った人だけに渡してるのかもしれん。
最近は、コンシューマでもインディーズとカテゴライズされて地位が出来上がっているから、なかなか巡り会えないと思う。
最近のインディーズゲームは、少しおかしいぐらいに技術力が高いからね。
3Dシューティングで視点がステージや進捗で変わるのがあるが、あれはかなり異常な出来だった。
もはやプロの仕事。

129:デフォルトの名無しさん
18/08/25 16:33:14.61 aPxb4sFP.net
もうDirectX使うの止めるわ

130:125
18/08/25 16:55:07.75 ux2vpN2s.net
>>126
適当にGitHubとか言ってるんじゃなくてマジであんの?GitHubすごいな
どういった風に検索すればいいんですか?
>>128
Elonaはもうソース配布してないみたいですね
というかElonaってHSPだけどDirectX使ってたのか

131:デフォルトの名無しさん
18/08/25 17:04:30.41 YH9nAcbl.net
>>129
まぁ、そう言わずに…

132:デフォルトの名無しさん
18/08/25 17:20:12.58 uMKey/32.net
>>129
DirectX5からの付き合いだが、俺もVulkan移行中ですわ

133:デフォルトの名無しさん
18/08/25 22:41:08.90 xNcAdL4l.net
directX12で勉強がてらゲーム作ってたけどAI流行ってたから
CS使ってAIの実験してるわ。
とりあえずC++とDirectxあれば何でもできるね

134:デフォルトの名無しさん
18/08/26 21:10:42.11 9TzHFCTa.net
>>129
VulkanとD3D12、両方使っているけど、
比較的に12の方が優しいが、どっちも癖がある。
整理されていて、より些細なことまでできる分、一山越えると少しだけVulkanが好きになる。
Vulkanの入力アタッチメントなんかは、避けるべきと思う。
vulkanとd3d12の違いは
vulkan
・描画バスの仕組み(このパスは、マルチパスレンダリングのパス)
d3d12
・レイトレができる(らしい)

135:デフォルトの名無しさん
18/08/26 21:16:14.17 9TzHFCTa.net
描画パスの仕組みがないのは、恐らくは後方互換性。
利用するプログラマをつき放さない意味での用語や理解についての互換性が趣旨に感じた。
(そんな言葉はないけど、エクスペリエンスのデノミを避ける、が近い?)
Vulkanの描画パスは、吐ける。

136:デフォルトの名無しさん
18/08/26 23:08:56.87 GZFWl5MZ.net
何でOpenGLやめるん

137:デフォルトの名無しさん
18/08/26 23:09:40.94 GZFWl5MZ.net
↑クロノスグループが、の意味ね

138:デフォルトの名無しさん
18/08/27 04:36:36.26 xIxAfuYd.net
ゲーム制作をしてるのですが、
XInputGetState関数でXbox Oneのコントローラーは扱えますか?
MSDNでは
『XInput とは、Windows 向け Xbox 360 コントローラーからの入力値を、アプリケーションで受け取れるようにする API 』
と書いていたのですが…
URLリンク(msdn.microsoft.com)(v=vs.85).aspx

139:デフォルトの名無しさん
18/08/27 08:12:00.72 rKzetDHK.net
>>138
スチームでの対応状況が参考になるのではないかと。
非対応なら無理。対応しているならいける余地はありそう。
7でPS4コントローラがUSB接続で制御できたことは確認済み。
なお、これはDirectInput8を使った。

140:デフォルトの名無しさん
18/08/27 11:19:22.36 9KYhKRgJ.net
ありがとうございます

141:138
18/08/27 11:32:24.96 9KYhKRgJ.net
検索して探していると『WindowsにはXBoxのコントローラを使用するためにXInputというAPIが用意』とか『Xbox One、Xbox360等のX-input式のコントローラー
』とか等と書いてあるブログが複数発見したので同じ仕組みかな?とは思うのですがMSDNを見ているとXbox360専用と書いていたので

142:デフォルトの名無しさん
18/08/27 18:27:11.34 kh1Bw1m+.net
>>138
使えるよ

143:デフォルトの名無しさん
18/08/30 00:13:35.30 qBKCuhvw.net
>>137
Currentは、もうヤダ。
マルチスレッドレンダリングする上で面倒くさい。
って事だと理解している。
命令のキューと整理されれば、プロセッサと同様なメモリ保護も視野に入るし、
とあるシェーダが別プロセスのテクスチャを読める可能性を排除しやすい。
11までのGPUは、そういうのは皆無だろうし、12にもvulkanにもなさそうだしね。
GPUにスワップメモリ、仮想メモリ空間、スワップで逃がすストレージなんかないのだから。

144:デフォルトの名無しさん
18/09/03 12:41:04.98 NxxlWETJ.net
DirectX9でSetRenderStateを使ってブレンディングする場合
除算ブレンディングはどうやったら良いでしょうか?
加算なら以下で出来ますが。除算がよく判りません。
lpD3DDev->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
lpD3DDev->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);

145:デフォルトの名無しさん
18/09/03 15:45:46.51 O77C1Rb1.net
>>144
君には教えない

146:デフォルトの名無しさん
18/09/03 21:12:07.01 NxxlWETJ.net
>>145
おしえて!w

147:デフォルトの名無しさん
18/09/04 05:42:00.75 ygKGdo3P.net
>>144
公式のリファレンスにのってない?

148:デフォルトの名無しさん
18/09/04 13:02:02.42 hJtprqgF.net
dstをぜろ。srcを色指定にすればいいだけに見える
oc=(tc*dest bc)+(pc*src bc)
tc ターゲット色、pc シェーダ出力色

149:デフォルトの名無しさん
18/09/04 15:48:34.16 ep2b6+2r.net
>>147
たぶん載ってない。
>>148
わー!ありがとう!やってみる。

150:デフォルトの名無しさん
18/09/07 16:13:46.89 M1sJGdfN.net
自己解決したわ、アホ共。

151:デフォルトの名無しさん
18/09/10 08:55:08.63 c/4EXXgn.net
皆さんDirect3d上でのGUIは
何を使っていますか?

152:デフォルトの名無しさん
18/09/10 09:06:48.54 fHwpB0MY.net
自作かImGuiやね

153:デフォルトの名無しさん
18/09/11 08:25:36.60 vjUQtdrA.net
ウィジェットのことなら自作だな。
良さそうな小さいのが見当たらない。
ゴリゴリと頂点配列を作って動かしている。
字と背景を別々に作るから、かなり複雑で眠い

154:デフォルトの名無しさん
18/09/18 04:59:22.14 v4BXp/hu.net
ただのゲーマーだけど聞いていい?
いまだDirectX6使ってるゲーム好きで時々やるんだけど
古いバージョンっていつか切り捨てられて動作しなくなったりする?
Windows10でも動いてるしこれからもずっと動いてて欲しいんだけど。

155:デフォルトの名無しさん
18/09/18 06:57:41.67 PQNDTy/s.net
directXはCOMテクノロジーがベースだから
古いゲームでも最新ハードの機能が使えるんやで
例えばdx6ゲームでHWTLやテッセレーション
高度なAAや4k解像度適用などなど
ま、今は絶賛開発中なのでしばし待て
22世紀中にはリリースされるよ

156:デフォルトの名無しさん
18/09/18 07:41:24.70 Qxe4285y.net
>>154
DirectX云々以外のところで動かなくなる。イースとかもうWidows10では互換モードでも起動すらしない

157:デフォルトの名無しさん
18/09/18 23:07:41.49 v4BXp/hu.net
>>155-156
DirectX自体は互換性があって大丈夫ってことかな?
それ以外で動かなくなる可能性の心配した方がいいってことか。

158:デフォルトの名無しさん
18/09/19 11:42:50.85 PupZqwJJ.net
誤解が拡散中

159:デフォルトの名無しさん
18/09/19 22:02:25.18 DVXllMcK.net
DirectXに互換性などはないような。
ただ過去のスタックが残っているだけのこと。
それすらDirect3D9c未満が動くのか?は疑問がある。 ドライバが非対応なんじゃないだろうか。
あと、動画再生時のCODECが非対応で、動画再生できずに堕ちるってのもあるような。
ソフトウェアMIDIもドライバで実現しているのか、Microsoft標準ドライバが実装しているのかも疑問がある。
取り敢えず、過去に買ったWindows 95時代のゲームで動画再生できずに堕ちたゲームは観た事がある。

160:デフォルトの名無しさん
18/09/19 22:08:06.99 DVXllMcK.net
Windowsは、Windowsのみで機能を実現など出来ていない。
ハードウェアを扱う部分は、メーカーが提供するドライバが核であり、
そこがWindowsの互換性を提供し、メーカーに向けたドライバ要件が担保となっている。
Officeが必要とするドライバ機能がドライバ要件を決定づけていて、
サポート期間中の製品が必要とする部分なら、ドライバも必須となる。
従って、Direct3D関係の機能は、既に9c未満が動く保証はないと思う。

161:デフォルトの名無しさん
18/09/20 00:02:40.53 gdLwWWhU.net
>>159
ドライバの対応次第ってことかな?
現状ではDirectX6や7や8のゲームは普通に動いてるけど
メーカーがドライバ対応しなくなった時が終わりってこと?

162:デフォルトの名無しさん
18/09/20 07:52:43.20 K+Ua86eW.net
>>161
ここでウダウダ聞いてもなんの担保にもならんぞ
対応しなくなったら終わりではなく更新されないだけ、それで動き続けるかどうかは神の味噌汁
たまたま動かなくなっただけかもしれない、たまたま動いているだけかもしれない
3DゲームはドライバでなくDirect3DのAPIに対してアクセスしているので
WindowsでDirect3D(の該当バージョン)が態々削除されない限りは互換性はあるとは言える
もちろん削除されなくてもWindowsの更新で内部の挙動が変化してゲームが動かなくなるなんてことはざらにある

163:デフォルトの名無しさん
18/09/20 10:45:06.47 7WHuQIEO.net
WMが変わった時が一番大きい変化だった気がする

164:デフォルトの名無しさん
18/09/20 10:51:48.29 7WHuQIEO.net
DWMが変わったタイミングで動かなくなったアプリが増えたっていう意味です

165:デフォルトの名無しさん
18/09/21 09:48:58.26 qOWS4e0S.net
>>162
互換性自体は結構あるね。
VBのDirectX用のDLLはもうOSに含まれてないけど自前で用意すれば結構動く。
ただ昔のゲームで使われてたカラーキーがもうダメなハードがあるね。

166:デフォルトの名無しさん
18/09/21 18:28:30.46 7CqPf/Kx.net
パレットテクスチャとかも危ないか?

167:デフォルトの名無しさん
18/09/22 21:47:58.86 tZvIjPe8.net
危ないね

168:デフォルトの名無しさん
18/09/27 17:39:33.56 egrolh38.net
質問です。
メインスレッドで描画しながら別スレッドでテクスチャを大量に読み込むと
画面がちらつきます。D3DXCreateTextureFromFileを実行した時にちらついてるようです。
ここにコードを書く事が出来ないのでエスパーでおねがいします。
思い当たる原因はありますか?D3DDeviceをスレッドをまたいで参照してたりするからでしょうか?

169:デフォルトの名無しさん
18/09/27 17:40:00.04 egrolh38.net
age

170:デフォルトの名無しさん
18/09/27 18:12:40.71 lrUHFZkm.net
ロックするかあらかじめ全部読んでおくか

171:デフォルトの名無しさん
18/09/27 20:45:06.26 PZih89QY.net
D3DDeviceを
マルチスレッドで使う場合
スレッドセーフで作らんとダメだろう
そこはちゃんとやってるのか?

172:デフォルトの名無しさん
18/09/27 21:58:29.85 ZotRguTd.net
マルチスレッドモードに設定してないと、Debugモード実行で警告メッセージ出まくらなかったっけ?
それが出てたら、出ないようにするとこから。

173:デフォルトの名無しさん
18/09/28 00:01:13.37 frk51yg8.net
>>170-172
ありがとうございます。やぱ作り方を不味ってるっぽいっすかね?
言われた事を参考に自分なりに調べてみます。
また何かあったら宜しくお願いします。

174:デフォルトの名無しさん
18/09/28 08:46:21.34 WfDD/blL.net
ちらつきで疑わしいのは、presentする辺りかな
ディスプレイに表示する描画ターゲットを作り込むときに参照しているテクスチャでもあるんでないかと。
というか複数のスレッドからデバイスコンテキストを触ると蹴られたと思う。
それでもちらつきが一時的な症状ならば、テクスチャ関数が中で排他しているからでなかろうか?
ところでチラツキって具体的な症状としては、どれなんだろう。
・一瞬黒か白が入る
・カクカクしたアニメーションになる
・デジタルノイズが入る
・サブリミナルな絵が入る
・何しにきたんだよ?お前のために決まってるだろ!と友貴に言われる

175:デフォルトの名無しさん
18/09/28 09:59:25.03 frk51yg8.net
>>174
ありがとうございます。
テクスチャ読み込みした瞬間に「・デジタルノイズが入る」といった感じです。
具体的に言うと「ブロックノイズっぽいものが所々に出る」といった感じです。
症状自体はそこまで酷い訳ではないんですが、チラチラするので気になってます。
一回あたりのノイズのサイズは小さいですね。画面がフルHD時で、128x128くらいです。

176:175
18/09/28 12:12:50.63 frk51yg8.net
テクスチャ読み込み中は特に自分では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();

177:デフォルトの名無しさん
18/09/28 14:01:09.20 KnH7gKZy.net
>>175
その症状ならむしろ巧くマルチスレッドに動いてしまっている、疑いもあるような。
読み込みが未完なテクスチャを読み込めば、瞬間的に変な画素を参照するから、それがノイズに映る。
でも考えにくいので、変な描画、予期していない描画が挟まれて映っている。
あと突っ込まれなかったから自分で言うが
友貴はチラチラじゃなく、ちゃらいだろ。

178:デフォルトの名無しさん
18/09/28 15:26:49.89 frk51yg8.net
>>177
ありがとうございます。
一応>>176でノイズ自体は解決して読み込み速度も上がったのですが
描画スレッドと別で読み込みスレッドでテクスチャを読み込んでいる時に
今度は排他処理の影響か描画速度がかなり落ちてしまう症状が出てます。
ただ別スレッドにして排他処理をしっかりやって読み込むと読み込み速度は
かなり速くなったので開始時に画面を黒で塗りつぶして一気に読み込む方法をこれでやろうと思ってます。
出来れば描画スレッドの速度が落ちずに読み込めればいいんですがこれでも問題ないかなと。
まとめると以下のような感じですね
1 シングルスレッドで開始時に読み込むと普通に20秒くらいかかる
2 マルチスレッドで排他処理無しで読み込むと描画しながら読み込めるが20秒くらいかかりノイズも発生
3 マルチスレッドで排他処理有りで読み込むと描画速度がかなり遅くなるが5秒ほどで読み込める

179:デフォルトの名無しさん
18/09/28 16:04:50.25 O5kQkBkV.net
そもそもそのテクスチャは実行時に毎回読まないといけないものなのか?

180:デフォルトの名無しさん
18/09/28 17:38:36.81 TYfa5akj.net
176の実装だとマルチに動いていない気がする。
クリティカルセクションは、一つのスレッドが入ったら、離れるまでは他のスレッドが待たされる。
つまり並列に実行していない。
真面目に並列度を高めるならば、テクスチャ毎に排他オブジェクトを持たせて、読み込みが完了していないテクスチャを描画ループのスレッドが触ろうとしたら、そいつをまるごとスキップして描画を続けるとかするべきかも。
ジオメトリなんかの単位でアセットを管理しているならば、読み込み完了前のジオメトリに紐付くテクスチャや頂点は描画をスキップする実装。
あとはオフラインサーフェースへの書き込みなんかの単位でまるごとスキップとかもできるかも。
チラツキを予防して、読み込み終わったアセットを段階的に画面に映したいなら、そういったリソース管理が必要。
でも大抵は、そんなことせず、読み込みが全部終わるまでは黒い画面を見せる実装を選ぶと思う。
GPUコアの限界までテクスチャなんかの読み込みスレッドを並列化することを選びそう。

181:デフォルトの名無しさん
18/09/29 11:09:20.58 hzO5ElQi.net
>>180
ありがとうございます。
なるほど。効率の面ではまだまだ出来る事は色々あるんでしょうね。
ただ複雑になって下手な事して不具合が出ると困るので自分も単純な方法で行こうと思います。
マルチスレッドで読み込むと読み込み速度自体は上がったので排他処理だけしっかりやって
あとは画面を塗りつぶしてそこで一気に読み込む方法を今回は採用しようと思います。

182:デフォルトの名無しさん
18/09/29 16:02:49.13 urX7Wqqu.net
d3dのヘルプを読むと
マルチスレッドでは
イミディエイトコンテキストは使わずに
別途デバイスコンテキストを作って
描画スレッドではそれを使うようにとあるよ
多分必要なのはそういうところと思う

183:デフォルトの名無しさん
18/09/29 16:32:57.82 apMOeRQP.net
D3DXCreateTextureFromFileとか言ってるからDeferred Contextすらない世代のことじゃろ

184:デフォルトの名無しさん
18/10/03 17:59:08.87 3HnGx7Th.net
1809記念
Direct3D12でコマンドキューにシグナルするタイミング
1.ExecuteCommandList()
2.Present()
一回のコールの度にフェンスの数値をインクリメント(=GPUに処理を実行する契機を与える)
これを怠ると終了契機にフロントバッファをコマンドキューが掴んでる、との例外が出る。
ギットハブのError on shutdownってタイトルのスレッドにも報告されている。英語
取り敢えず、APIマニュアルでこの旨の事柄を書いたページは見つけられなかった。
ただのシェア

185:デフォルトの名無しさん
18/10/03 18:58:30.47 bNH0XzXA.net
>>184
これからもよろしく頼む

186:デフォルトの名無しさん
18/10/08 01:17:59.94 OIFhWgmg.net
ある画像を別に用意したマスク画像の形でリアルタイムでくり抜きたいです(マスク画像のフチのぼかされてる所も再現したい)。
ただしシェーダーは使わずやりたい。ステンシルとかブレンディングでどうにかなりますか?
リアルタイムでやりたいのでロックして直接弄るとかは無しでお願いします。
フォトショの例ですがこんな事をリアルタイムでやりたい(くり抜かれた画像の余白の部分はアルファ値で透明になるように)
URLリンク(helpx.adobe.com)

187:デフォルトの名無しさん
18/10/08 01:37:54.77 LP2GoVYR.net
(1)マスクをレンダーターゲットのαに書き込み
(2)くり抜き対象画像のブレンディング設定値を工夫して書き込み
でいけるかな?

188:デフォルトの名無しさん
18/10/08 02:02:38.28 OIFhWgmg.net
>>187
(1)は、アルファチャンネルつきの画像を用意して描画するとして
ARGBのうちAだけが反映されるように(2)でうまく合成するという事になりますかね?
RenderStateはSRCがDESTALPHAにすると(1)の画像のアルファ値が上手く反映されますね。
ただDESTをどの値にしてもARGBのうちのRGBの部分も反映されてしまってフチが黒くなってしまいます(マスク画像が黒い為)。
ARGBのAだけ反映させるにはどうしたらいいでしょうか。

189:デフォルトの名無しさん
18/10/08 02:21:51.96 LP2GoVYR.net
マスク画像のRGBはオール0(真っ黒)で、Aだけマスクの形となるα値にする。
んで、(1)のときはRGBは加算合成で、AだけSrcをDstにそのまま書き込みってできないかな?

190:デフォルトの名無しさん
18/10/08 03:05:32.73 OIFhWgmg.net
>>189
加算合成で黒が見えなくなるのは黒のピクセルのAが0になるからじゃないですかね?
RGBはどうやってもなんらかの値を取らないといけないので…
ブレンディングでやるのは無理なんでしょうか…

191:デフォルトの名無しさん
18/10/08 03:58:31.81 OIFhWgmg.net
>>187
色々やってみたんですが、まずくり抜きたい画像を描画しておき
そのあとにマスク画像として用意した全部黒で真ん中だけ丸くアルファ値ゼロの画像を
上から描画して、最後にその合成された画像を加算アルファで描画すると
余計な部分の黒が全部透明になって理想に近い形になりました。
ただ加算されるので真ん中の描画される部分がちょっとピカピカしてしまいますが。
もうちょっと試行錯誤してみます。

192:デフォルトの名無しさん
18/10/08 13:27:01.63 +5qyKWRv.net
馬鹿っぽい

193:デフォルトの名無しさん
18/10/08 14:56:19.98 OIFhWgmg.net
>>192
加算以外で綺麗に抜ける方法教えて頂けないでしょうか?
ブレンディングカラーキーはハードが対応してなかったです。

194:デフォルトの名無しさん
18/10/08 20:56:30.32 /sZzmon7.net
ステンシルがいいんじゃねーの?
そもそもステンシルって
そういう型抜きをやるための機能だし
ステンシルバッファをゼロクリア
型抜き用画像を描画(描画されたピクセルのみステンシル値インクリメント)
対象の画像描画(ただしステンシル値!=ゼロのピクセルのみ)
こんな感じで

195:デフォルトの名無しさん
18/10/09 08:22:35.91 6/4ynI0N.net
>>194
ステンシルですか。やってみます。ありがとうございます。

196:デフォルトの名無しさん
18/10/09 12:15:05.77 FMe/8vRd.net
錆びたりしませんか

197:デフォルトの名無しさん
18/10/09 14:39:00.46 iGqJuC8Y.net
ぼかしが不要ならステンシル一択だろうけど

198:デフォルトの名無しさん
18/10/09 16:30:24.65 46xU4Pr2.net
ボカシが必要なら
マルチテクスチャブレンディングで
いいだろう
シェーダ使わないってんで
D3D9あたりだと思うが
RGBとAを別々に設定出来るし
要望は満たせるだろう

199:デフォルトの名無しさん
18/10/09 21:27:06.70 dz3bRAZk.net
>>193
ピクセルシェーだでdiscard

200:デフォルトの名無しさん
18/10/10 01:30:12.35 y7T0G2Lv.net
>>198
ぼかしが必要なので、それよろしければ詳しくおねがいします!

201:デフォルトの名無しさん
18/10/10 17:16:24.70 l/LT+zZU.net
>>200
自分で調べろ、ボケ

202:デフォルトの名無しさん
18/10/11 08:36:28.94 A/mBZEYO.net
ここまで書いてあれば調べて実装するのは余裕だと思う。
ぼかす部分をアルファ値0.5、落とす部分を0にするだけではないかと。
でもdx9は使いにくいから、せめて11とシェーダーを使うべき。 9だと理解に変な癖が付くから悪い面が多い。

203:デフォルトの名無しさん
18/10/12 19:21:20.72 M/Pzk+yk.net
頂点配列。というかGPU上のメモリ確保(コミットリソース)は時間掛かるんだな。
d3d12、amdのプロセッサ内蔵GPU、デバッグモードなんだけど、4秒掛かった。
300個、それぞれ600バイトぐらいの頂点配列を確保するのに掛かった時間
と、書いて気づいた。そうかデバッグレイヤーか

204:デフォルトの名無しさん
18/10/12 20:22:12.35 7WoSY3Qh.net
>>203
おっそw

205:デフォルトの名無しさん
18/10/13 13:43:59.70 yMYV8KuT.net
で、デバッグレイヤーを不活性にしたら、めでたくサクサク動きました。

206:デフォルトの名無しさん
18/10/14 12:50:45.12 G4e8iFcg.net
おめ

207:デフォルトの名無しさん
18/10/15 21:50:45.22 QZ6Q+R/H.net
いえいえ

208:デフォルトの名無しさん
18/10/16 17:41:49.33 tYMDCx/a.net
DirectXは終わった?のかなあ...

209:デフォルトの名無しさん
18/10/16 22:26:26.55 PgSsQcUe.net
直に触る人が減ったってだけじゃないの??

210:デフォルトの名無しさん
18/10/17 16:49:45.63 6p6LFcpX.net
DirectShowの質問なんですが動画再生している時に動画の上に図形を表示したいです。
表示中のウィンドウからHDCを取得して描画すれば一応表示できますがちらつきます。
検索してもあまり情報が出てこないので教えてもらえると助かります。

211:210
18/10/17 17:23:02.52 6p6LFcpX.net
調べてたらテクスチャにして表示すれば簡単に実現できそうだったのでこれでやることにしました。

212:デフォルトの名無しさん
18/10/19 14:51:44.60 uYziTuig.net
これのことかな
中央下あたり
URLリンク(www.buzzfeed.com)

213:名無しさん@そうだ選挙に行こう! Go to vote!
18/10/22 08:15:36.30 JtURtT5N.net
ユニティとアンリアルエンジンの認知度上昇
ハボックのクローズド化
APIの単純化によるアプリケーション実装の複雑化
ポリゴンデータ(アセット)の生産性の低さ
実現に必要となるデバイスの多さ
APIだけでは解決しない課題が多い
なら出来合いレディメードのアセットを簡単に使えるミドルウェアに流れる。
今、d3d12でウィンドウ処理を書いてるけど、 兎に角つまらないのに無駄に複雑になる。

214:デフォルトの名無しさん
18/10/23 21:25:00.36 Q7G3DiI6.net
ユニティやアンリアルエンジンの開発者にDirectXやOpenGLがいらないかどうか聞いてみてはどうか。

215:デフォルトの名無しさん
18/10/24 13:02:33.86 XOgiiIOy.net
ktkr
URLリンク(www.youtube.com)

216:デフォルトの名無しさん
18/10/27 10:26:01.93 G+gLlX7z.net
DirectXで開発ならフルスクラッチ開発になるの?

217:デフォルトの名無しさん
18/10/27 11:29:38.50 S2kwpi8z.net
フルスクールエッチに見えたがそれは個人の定義しだい

218:デフォルトの名無しさん
18/10/27 11:55:15.64 R2aCZi1a.net
消防士が17歳高校生(M)に水着モデルやらまいか?

上半身さわる

逮捕

219:デフォルトの名無しさん
18/12/05 23:25:50.89 4GYg5LKI.net
codeさんのおかげで影が薄くなりつつある
VisualStudio2019です
相変わらずレガシィなままです

220:デフォルトの名無しさん
18/12/06 21:25:28.88 2emuZ+wP.net
DirectX9でD3DXLoadMeshHierarchyを実行しているときに画面が固まります。
なのでD3DXLoadMeshHierarchyを別スレッドで呼びたいのですが可能でしょうか?

221:デフォルトの名無しさん
18/12/07 14:07:41.34 lkrG/qbb.net
VS2017とかにD3D9.hとかまだあるんだな
よくわからんディレクトリだったけど

222:デフォルトの名無しさん
18/12/12 08:17:42.93 yhm3vXF+.net
最近、D3D12を色々触ってみた感想。
新しく登場したディスクリブタは、リソースに近いものなんだね。
描画パスをかなり綺麗に実装できた。

223:デフォルトの名無しさん
18/12/20 19:53:19.82 t8x/0UH1.net
memo
URLリンク(www.im.uec.ac.jp)
URLリンク(www.infsup.jp)

224:デフォルトの名無しさん
18/12/25 14:44:21.33 fa+wuLMo.net
>>223
テッセレーションに関わる論文に見えた。

225:デフォルトの名無しさん
18/12/25 14:53:10.82 3AxwGiO5.net
ほんそれ

226:デフォルトの名無しさん
18/12/26 07:30:43.37 N3HLJ9Bm.net
DirectXが/(^o^)\オワタってなってから久しいなw

227:デフォルトの名無しさん
18/12/26 13:12:26.20 1qe+8L32.net
久しぶりにパソコン買い換えたから
OpenGL(+FreeGLUT)かDirectX(VS2017)あたりで遊んでみたい
どっちがおすすめ?

228:デフォルトの名無しさん
18/12/27 03:02:26.32 WK3RR0fL.net
みんなUnityに行ってもうたんか?

229:デフォルトの名無しさん
18/12/27 06:45:36.95 Nyp+m0P4.net
ム板が終わってる。デジタルネイティブにプログラムは無理。

230:デフォルトの名無しさん
18/12/27 09:45:39.70 0qVX2+Xi.net
UnityはC#だからつまらん

231:デフォルトの名無しさん
18/12/27 15:50:23.01 VsBZ5jd+.net
>>230
馬鹿は黙ってろよw

232:デフォルトの名無しさん
18/12/27 16:17:54.12 X03Q+yv7.net
Unity使ったら負け

233:デフォルトの名無しさん
18/12/27 18:21:39.42 dOtSBlSV.net
>>227
1. Unity
2.D3D11
3.D3D12
4.Vulkan
OpenGLはない。もはやCOBOLの域

234:デフォルトの名無しさん
18/12/28 19:18:22.51 KLVpsqro.net
MME(MikuMikuEffect)でDirectX9でテッセレーションみたいな感じに
角を滑らかにしようと思っています。LoD等は一切考慮しません。
まず初めにMME自体がMMDに対してAPI HOOKを行っているようで、
d3d9.dllを用意してAPI HOOKでDirectX11に横流しするというのは諦めました。
(既存のd3d9.dllがどういう動きをしているか把握しないとならないため)
StreamSourceという機能でなんか角を滑らかにするような動作を
実現してくれてるようにも見えるのですが、
MSDNのDirectX9の開発者向けFAQには
「頂点シェーダは、頂点の作成や破棄を行うことはできません。」
とも記載があって、素人がちょっと調べてできるならとっくに誰かがやってるかな…
やっぱり無理なのか。とも考えています。
今までDirectXやHLSLに全くかかわった事が無かったので、
何かしら実現のためのヒントを頂けたら幸いです。

235:デフォルトの名無しさん
18/12/28 19:49:06.28 a53hoGVo.net
無理です

236:デフォルトの名無しさん
18/12/28 19:53:16.22 KLVpsqro.net
補足としてやりたいことのイメージを実際にやってるサイトを紹介します。
URLリンク(hexadrive.jp)

237:デフォルトの名無しさん
18/12/28 21:44:40.91 biTn5Tv6.net
>>236
ソース読めよ、低悩

238:デフォルトの名無しさん
18/12/28 22:04:00.71 vZTWCt5h.net
>>236
必要な前準備が行えないので無理です

239:デフォルトの名無しさん
18/12/29 00:34:11.08 5EjDFocT.net
みんな鯖鯖していて気持ち良いねこのスレ

240:デフォルトの名無しさん
18/12/29 00:36:15.93 5X2fG6f6.net
局面分解に用いる頂点配列はパッチプリミティブを必須とする。(一般的なトライアングルリストではない)
局面分解するMMEもトライアングルリストだろうから、そこはクリアできそうに思うが、問題はテッセレート回路は9だと非対応じゃないかと思う。
9cならジオメトリシェーだがあるから、ソフトウェアで模倣は難しくないと思うが、かなり面倒で制限月になる。
その上でかなり計算回数が増えるから、フレームレートを落とすと思われる。
ノートパソコンあたりのGPUだと10万ポリゴン、1パスでフレームレートは12ぐらいまで落ちる。
そもそもテッセレートしても人形の肌は綺麗にならない。
美を感じるのは素材配置の比率で決まる。
テッセレートは単なる頂点追加(固定間隔での頂点追加。つまり足し算)。
はなからハイポリゴンを法線マップにベイクした方が綺麗で早く、効率がよい。
と、昔やったときに結論づけた。
ただ工夫の余地はある。

241:デフォルトの名無しさん
18/12/29 00:51:14.24 5X2fG6f6.net
簡単に言えば、単純に頂点を増やしただけでは、陰影のリアリティを増やすことに寄与するが、美しくはならない。
曲線のギザツキを抑えることで綺麗にはなるが、それなら単にレンダリングターゲットの面積を広げた方が楽で早い。
今のピクセルは、まだまだ荒い。

242:デフォルトの名無しさん
18/12/29 07:19:07.61 WVaqFV35.net
ご回答ありがとうございます。
テッセレーションを実現したとしても、
期待している効果は得られない可能性があるということですね。
もっと勉強します。

243:デフォルトの名無しさん
18/12/29 07:41:19.84 CdjnIrQY.net
>>237
ヘキサの人のソースコードがあるのかとちょっとわくわくして開いたらバイナリのみでワロタ

244:デフォルトの名無しさん
19/02/01 23:26:59.37 ik3ktYf5.net
tkとexってどう違うの?

245:デフォルトの名無しさん
19/02/02 00:32:57.91 ZfwOhOL2.net
>>244
URLリンク(github.com)
URLリンク(github.com)

246:デフォルトの名無しさん
19/02/02 12:23:22.13 OjPcxytf.net
TeXと勘違いするわ

247:デフォルトの名無しさん
19/02/02 20:09:58.31 G+y2g54x.net
DirectXかあ、懐かしいなあ
今はどうなってるんだろう

248:デフォルトの名無しさん
19/02/02 21:03:56.81 cXWzHlyL.net
レイトレーシングができるようになりました

249:デフォルトの名無しさん
19/02/05 10:10:37.20 3D7CJ72L.net
は?

250:デフォルトの名無しさん
19/02/09 10:42:19.05 gmj+GaWL.net
レイトレというても、遅延シェーディングのことだけど。
バルカンでも11でも実装できる。
専用回路があるわけじゃない。
リアルタイムに反射成分を決める因子(陰面遮蔽、拡散反射、鏡面反射なんか)を計算して、2パス目でそれを参照して輝度を決める。
ビューの一面から見たポリゴンの成分を計算するから、これでそれっぼい陰影がだせる。
でもプリレンダしたライトマップのテクスチャの方が早くてリアル。

251:デフォルトの名無しさん
19/02/09 11:47:25.50 U3ljW3xz.net
URLリンク(www.4gamer.net)
DXRのランタイム上でエミュレーションも実装されてるけど
専用ハードウェアも存在するようにしか見えんが

252:デフォルトの名無しさん
19/02/09 13:51:37.55 3AxEdZ6i.net
SpriteFontって描画の時にサイズ指定できないの?

253:デフォルトの名無しさん
19/02/09 14:20:28.92 9I7b9arc.net
引数にスケール指定無かったっけ?

254:デフォルトの名無しさん
19/02/10 10:48:37.49 6IZ9Hq7F.net
ごめんなさいありました

255:デフォルトの名無しさん
19/02/11 00:39:23.90 awXFg/MG.net
DirectX11なんですが、単なるトランスフォーム済みのテクスチャ貼り付けた板ポリを移動させるとして
 1 頂点バッファをMapして毎回座標情報を書き換える
 2 頂点バッファはいじらず、定数バッファに差分の移動量x,yを入れて更新し、毎回GPUに最終座標を足し引きさせる
感覚的には後者の方が良さそうなんですが、どっちが速いですかねぇ
自分でも実験したのですが、やり方悪いのか毎回100~300msecくらい余裕で誤差が出て参ってます
誤差込みで、ほとんど変わらない印象なのでどっちでも良さそうではあるのですが、
ここまで来ると気になっちまって……

256:デフォルトの名無しさん
19/02/11 01:11:15.61 jeSoh9Or.net
後者

257:デフォルトの名無しさん
19/02/11 23:43:37.25 m53MrtkR.net
これからdirectxを始めようと思うんだけど
どのバージョンでやればいいか教えて下さい。
サイト見てるとdirect9が一番参考書が多くておすすめって書いてあるけど
このスレ読んでると11か12の方がいいですか?

258:デフォルトの名無しさん
19/02/11 23:51:49.70 FT1ffmu4.net
12でええんでない?
もうwin7のサポートなくなるし

259:デフォルトの名無しさん
19/02/12 01:50:58.93 hh3hOFh3.net
11が良いし、たぶんそれで十分。
12に行く前にUnityに行っちゃうかもねw

260:デフォルトの名無しさん
19/02/12 05:56:39.47 SvKCMiwA.net
ほんそれ

261:デフォルトの名無しさん
19/02/12 12:47:15.24 JRLjpiVA.net
>>257です。
画像の描画
画像でアニメーション
フォントの設置
カーソルがフォントの上に来たら光る
wavの再生
上記の事をやりたいです。
ほぼ無知なので
これからどのバージョンで勉強しても挫折すると思うので
direct 3d12使おうと思います。

申し訳ないですが
皆さんは、どうやってでdirect12の勉強をしていますか?
書籍の参考書がなかったのでお願いします。

262:デフォルトの名無しさん
19/02/12 13:05:56.49 8lolhehX.net
無知ならおとなしくUnityにしとけ

263:デフォルトの名無しさん
19/02/12 22:28:06.73 78MAoRMz.net
>>261
悪いこと言わんから12はやめとけ

264:デフォルトの名無しさん
19/02/13 00:57:57.97 CFSvcHlh.net
12だめなん?

265:デフォルトの名無しさん
19/02/13 14:58:58.78 Yg4iFXpY.net
手段が目的化してないか

266:デフォルトの名無しさん
19/02/13 20:32:48.14 gDpu7ryZ.net
>>264
駄目だね普通に

267:デフォルトの名無しさん
19/02/13 23:08:36.16 1SDPkWu2.net
なんで?

268:デフォルトの名無しさん
19/02/16 17:24:51.74 CM9/Q1K0.net
画像データの各ピクセルの色情報ってどうすれば取得できますか?

269:デフォルトの名無しさん
19/02/16 17:44:32.02 mSqP7pCT.net
GPUからメモリコピー

270:デフォルトの名無しさん
19/02/17 15:11:56.02 LXnac+6v.net
きちんと解説ある本を読んで勉強しないと難しいのに新しいバージョンは日本語の本がない
そして古い本に附属してるライブラリは今の環境だとすんなり使えなかったりするから結構詰んでる
素直にunity使うのが一番効率よく勉強できると思うわ
c++に拘るならdirectxやってもいいとおもうけど

271:デフォルトの名無しさん
19/02/18 12:58:57.59 cZFby2gr.net
日本語で出ても余計判りにくくなることの方が多い
日本語だから判りやすいとは限らない

272:デフォルトの名無しさん
19/02/18 13:03:50.23 FBBcnjVG.net
どっかの会社のページでやってる機械翻訳とかひでえしな

273:デフォルトの名無しさん
19/02/18 13:21:33.63 cZFby2gr.net
エラーを取得するには関数を使います

274:デフォルトの名無しさん
19/02/18 21:47:25.83 MbhScpEW.net
>>273
フイタw

275:デフォルトの名無しさん
19/02/18 23:14:05.57 50gUMIDo.net
確かにその通りで正しいんだが
んだが

276:デフォルトの名無しさん
19/02/19 06:25:19.87 DhLDQBZX.net
ヘリコプターがシアトル付近を飛行中に、ナビゲーション・システムと
通信系が故障してしまい、現在位置を把握することができなくなって
しまった。機長は、近くに見えた高いビルにヘリコプターを寄せ、周りを
旋回しながら、副操縦士に「私は今どこにいますか?」と大きな紙に書かせ、
それをビルの中の人間に見せるように命じた。
ビルの中の人間は、大きな紙に「あなたは今、ヘリコプターの中です」と
書いて答えてきた。機長はにっこりと笑って手を振り、副操縦士に言った。
「あれはマイクロソフトの本社ビルだ。ここから東へ向かえば空港が
あるはずだ」
「どうしてマイクロソフトの本社ビルだと分かったんです?」
「奴らはいつも、技術的には完璧だが、まったく役に立たない答えしか
寄こさないからさ」

277:デフォルトの名無しさん
19/02/19 06:55:40.00 9FBe/JT+.net
>>275
んだが?

278:デフォルトの名無しさん
19/02/19 12:30:36.63 1Fqwt8so.net
>>276
どこで観たか忘れたけどどこかで観たコピペ

279:デフォルトの名無しさん
19/02/19 19:28:09.94 4FexZV5t.net
>>276
ワロタw

280:デフォルトの名無しさん
19/02/19 22:54:24.29 fjUuFMdi.net
面白い

281:デフォルトの名無しさん
19/03/14 02:03:51.93 k2rjMpcY.net
DirectX12のwindows7対応って今更何がしたいのかさっぱり理解出来ないな

282:デフォルトの名無しさん
19/03/14 02:37:09.83 KGoVXtPG.net
常に我々の想像の斜め下を行くのがMicrosoftという会社なのだよ。

283:デフォルトの名無しさん
19/03/14 11:30:54.43 s2YvJJWc.net
GL4 > DX12
ですか?

284:デフォルトの名無しさん
19/03/14 11:40:31.87 nYszdZlz.net
Windows10への移行が進まないのでまたWindows7からやり直す気になったんだな。
殊勝なこった。

285:デフォルトの名無しさん
19/03/14 11:46:27.76 gZUdQ9Pv.net
test
スレリンク(tech板)

286:デフォルトの名無しさん
19/03/14 16:28:05.55 4yIsYmxe.net
ほんまマジ7永続化しないかな
10使ってるけどクソすぎて腹立ってる

287:デフォルトの名無しさん
19/03/16 02:22:17.59 FF9DOeDg.net
>>284
>>281はwindows7なんてもう3割切ってるのになんで今更って意味だったんだけどな

288:デフォルトの名無しさん
19/03/16 02:34:49.06 EXqPfFKm.net
ごめん>>284だと思ってた

289:デフォルトの名無しさん
19/03/19 11:14:30.65 3vrqfuIl.net
自分は、もう最新のDirectXの開発から身を引いている者なのですが、
下記のニュースにて、Windows7でDirectX Raytracingが
動作するのではと思いました。
URLリンク(www.4gamer.net)

290:デフォルトの名無しさん
19/03/20 11:12:13.30 h/GW8QOA.net
pyopenglってあるけどpydxってある?

291:デフォルトの名無しさん
19/03/22 01:48:43.46 EWL/taeN.net
Havokってマイクロソフトから音沙汰内からそのまま消えるのかと思ってた
URLリンク(automaton-media.com)

292:デフォルトの名無しさん
19/03/22 20:20:37.10 uuuO+xYB.net
質問です。
IDirect3DDevice9::Reset を呼び出すと、
D3DPOOL_SYSTEMMEM や D3DPOOL_SCRATCH で作成したテクスチャも消失しますか?

293:デフォルトの名無しさん
19/03/23 00:15:23.81 G5bW2EJf.net
>>292
しないよ

294:デフォルトの名無しさん
19/03/23 00:33:31.63 cVTLhDAF.net
>>292
するよ

295:デフォルトの名無しさん
19/03/24 18:48:01.60 WJlW+twg.net
>>292
お礼も言えないのか情けない

296:デフォルトの名無しさん
19/03/24 21:33:35.30 WKxcwvjT.net
いえ、すいません、
結局どっちかわからなかったもので・・・

297:デフォルトの名無しさん
19/03/24 21:38:24.49 WKxcwvjT.net
>>293
>>294
ご回答ありがとうございます。
自分でも調べたところ、D3DPOOL_SYSTEMMEM で作成したテクスチャは内容が消失しているように思えました、
ただ、自分のプログラムが間違っているだけかもしれないですが・・・

298:デフォルトの名無しさん
19/03/24 22:46:32.62 FpMCPtqa.net
どーしても9でやらんといかんのか

299:デフォルトの名無しさん
19/03/24 23:24:26.18 WKxcwvjT.net
はい、もう9で色々作ってしまっているのと、WindowsXPで動かしたいので

300:デフォルトの名無しさん
19/03/24 23:57:30.44 z21lQS4L.net
>>297
うんまあ、どんな検証コード使ったのかしらんが結論がそれなら間違っとるな

301:デフォルトの名無しさん
19/03/25 02:31:06.53 MuEFgcsw.net
C/C++の使い方間違ってそう

302:デフォルトの名無しさん
19/03/25 06:03:00.51 9PsZkemJ.net
やはり間違ってますか。テクスチャ自体は消失してませんでしたが、
内容がおかしなグラフィックになっていました・・・
ご回答ありがとうございます。
>>294さんのご意見も聞きたいです。

303:デフォルトの名無しさん
19/03/26 00:15:35.28 vv/6sgs4.net
おまいらアフォか
IDirect3DDevice9::Reset を呼び出すと、すべてのテクスチャ メモリ サーフェイスが消失し、管理下のテクスチャがビデオ メモリからフラッシュされ、すべてのステート情報が失われます。
ってヘルプに書いてあるだろ

304:デフォルトの名無しさん
19/03/26 00:54:58.78 ocCrckc4.net
MSに限らずだけどフラグが明示されていないようなドキュメントの言い回しは鵜呑みにしない方が良いのよねえ
URLリンク(docs.microsoft.com)
> 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.

305:デフォルトの名無しさん
19/03/26 01:11:40.91 qhv8bmdJ.net
情報ありがとうございます
ResetするのにD3DPOOL_SYSTEMMEMを解放する必要はないが、
テクスチャの内容は保障しないよって事なのかなぁ・・・

306:デフォルトの名無しさん
19/03/26 19:23:37.37 NbUyZWCM.net
誰でも頭が良くなる、プログラムが書けるようになる方法が発見される 79249
URLリンク(you-can-program.hatenablog.jp)

307:デフォルトの名無しさん
19/03/31 01:58:01.43 ho8kk4O0.net
NOTE: As of 29 Mar 2019, SharpDX is no longer being under development or maintenance
終わってしまった

308:デフォルトの名無しさん
19/04/04 10:48:34.03 4Pg7/9jZ.net
dllimport
URLリンク(edom18.hateblo.jp)

309:デフォルトの名無しさん
19/04/04 11:46:51.89 4Pg7/9jZ.net
URLリンク(qiita.com)
native
URLリンク(chirotec.hatenablog.com)
URLリンク(qiita.com)

310:デフォルトの名無しさん
19/04/04 11:47:21.31 4Pg7/9jZ.net
URLリンク(tecotec-engineer.hateblo.jp)
URLリンク(blog.applibot.co.jp)

311:デフォルトの名無しさん
19/04/07 01:22:55.36 LKp1E5sS.net
DX11勉強中で定数バッファの扱いがよくわからないので教えて欲しいです
これは別々に複数個用意しておいて、シェーダと同様にその都度セットし直すものなのでしょうか?
ネットに落ちてるサンプルを色々と見ているのですが、カメラ行列だけを入れている物もあれば、併せて材質色やライティング用のパラメータを入れている物もあって混乱しています

312:デフォルトの名無しさん
19/04/07 03:34:29.88 27fxqR4U.net
必要なものをその都度送ればいいよ
セットしたシェーダが変わらない上に定数バッファの内容も変わらないなら送り直す必要は無いはず
変えたいときに送る

313:デフォルトの名無しさん
19/04/07 06:02:21.50 q0gI4Bxg.net
>>312
回答ありがとうございます
土日の内に最低限の描画パイプラインを用意しておきたかったので助かります

314:デフォルトの名無しさん
19/04/07 12:17:02.24 xl9NNqpd.net
vs2019ほんとに軽くなってて驚いたんだけど
ここ数年中の人らは何やってんだってレベル

315:デフォルトの名無しさん
19/04/07 13:54:29.00 vK2HJm7v.net
開発者としてはやる気が削がれる感想だな

316:デフォルトの名無しさん
19/04/07 19:26:52.08 qKbFEigK.net
みんな、NTやVistaを思い出すんだ

317:デフォルトの名無しさん
19/04/09 12:17:36.92 39tv23SA.net
この板にはMSを持ち上げる記事が多いな。
まるでMS社員が書いているかのようだ。

318:デフォルトの名無しさん
19/04/09 19:19:20.98 2fmMiie1.net
>>317
初心者スレなどにふらりと現れてスレとは無関係の稚拙な演説を垂れ流し
「MSには潰れて欲しい」などと呪詛を吐いて去っていく怨霊みたいな輩はよく見かける

319:デフォルトの名無しさん
19/04/10 12:54:35.85 87jhN1vD.net
【高感度が高い会社】
URLリンク(toyokeizai.net)
1位セブンイレブン、2位トヨタ、3位無印良品、4位イオン、5位ニトリ、
27位ソニー、35位任天堂、
71位アップル ***
167位タカラトミー、169位セガ、
181位マイクロソフト ***
194位バンダイナムコゲームス、
197位コナミ、234位スクウェア・エニックス、251位カプコン、293位レベルファイブ

320:デフォルトの名無しさん
19/04/10 12:57:23.01 87jhN1vD.net
39位、東急ハンズ
40位、アマゾンジャパン  ***
41位、楽天
42位、セイコー
43位、雪印メグミルク
44位、Google  ***
45位、伊藤園

321:デフォルトの名無しさん
19/04/10 13:00:11.85 87jhN1vD.net
トヨタ>SONY>任天堂>amazon>楽天>セイコー>Google>アップル>
タカラトミー>セガ>マイクロソフト>バンダイナムコゲームス>
コナミ>スクウェア・エニックス>カプコン

322:デフォルトの名無しさん
19/04/10 14:50:59.28 9YALwuYf.net
感度が高いことを高感度という
高感度が高いとか危険が危ないとか
変な言葉遣いやめれ

323:デフォルトの名無しさん
19/04/10 17:43:05.02 kdQMwufV.net
>>322
あなたは中国人か何か?

324:デフォルトの名無しさん
19/04/10 17:53:17.49 9YALwuYf.net
>>323
なぜそゆこと聞くアルか?

325:デフォルトの名無しさん
19/04/11 00:40:22.08 2BS9kfoy.net
実は漢字が間違っていただけで、「高感度」ではなくて、正しくは、
「好感度が高い会社」

326:デフォルトの名無しさん
19/04/11 09:35:27.51 bTGeujWN.net
ァィャー

327:デフォルトの名無しさん
19/05/16 11:35:16.07 14JA99+8.net
すみませんつかぬことをお聞きしますが、
テクスチャをピクセル毎に分解して自由に動かしたいんです。
要はピクセル数分の?ゾリューションをもった板ポリに一ピクセルづつ
テキスチャを割り当てればいいんじゃないかと思ってるんですが、
shader内で書く際にどういった書き方をすればいいかどなたかご指南ただけませんか。
あと考え方が間違ってたら指摘して頂けると助かります。

328:デフォルトの名無しさん
19/05/16 12:03:47.64 Ox4fjiQE.net
テクスチャは一枚でよくね

329:デフォルトの名無しさん
19/05/16 19:02:18.71 1FTKDnmE.net
何がしたいかわからんけどポイントスプライト使ってみるとか

330:デフォルトの名無しさん
19/05/17 07:11:21.55 bam7LHTg.net
>>328
テクスチャは一枚です。
>>329
要はテクスチャを一ピクセル毎に分解して、それをパーティクル状に自由に動かしたいのです。
その前段階として、板ポリにテクスチャのピクセルを一つ一つ割り当てたいのです。

331:デフォルトの名無しさん
19/05/17 07:21:03.82 5vJNf7cS.net
別に1ピクセルだろうが板ポリにUV座標していする一般的なスプライトと同じ実装で良いと思うが

332:デフォルトの名無しさん
19/05/17 10:22:40.73 bam7LHTg.net
ポインスプライト実装でできました。
有難うございました!

333:デフォルトの名無しさん
19/05/25 16:17:49.68 P9kv6fd4.net
行列計算ってのがよくわからないんですが、簡単にどういうことをするのか教えてください
((0,0,0)(0,0,0)(0,0,0))
こういう行列があったとしたら
vector3(10,10,10) += gyouretsu[1]
などとすることで、2番目の列にvector3が代入されるかと思います
これってなんの意味があるんですか?
3dにおいてどういうシチュエーションで必要7日イメージがワキません
godot使用です

334:デフォルトの名無しさん
19/05/25 16:48:26.68 997oQV33.net
逆行列無いから意味無いで

335:デフォルトの名無しさん
19/05/25 16:58:28.00 WTzpeFf8.net
>>333
> 代入されるかと思います
されない
> なんの意味があるんですか?
自分からなんの意味もないコードを見せておいて何言ってんだ?
ここはDirectXスレだ
他のスレをあたれ
どのスレが適切かは自分で考えろ

336:デフォルトの名無しさん
19/05/25 17:24:26.26 MU6iVjMm.net
ブレンドステートオブジェクトのRenderTagetって
RenderTarget[0]以外使うにはどうすればいいですか。

337:デフォルトの名無しさん
19/05/25 18:50:30.35 MU6iVjMm.net
すみません
よく考えたらいらなさそうなのでやっぱりいいです。
時間を取らせてしまったのなら申し訳ありません。

338:デフォルトの名無しさん
19/05/29 21:18:56.08 CfbGvgRn.net
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); // バッファを受け取る変数

339:デフォルトの名無しさん
19/05/29 21:25:35.46 CfbGvgRn.net
ちなみに
ID3D10Texture2D::Mapを呼び出した覚えはないです
GetBufferなら使いました。

340:デフォルトの名無しさん
19/05/30 08:06:03.66 bb+aWtrz.net
4つ目の引数が、0xCCCCCCCC だから!

341:デフォルトの名無しさん
19/05/30 17:04:06.51 FYbqwzZe.net
>>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が呼び出されていたりするのでしょうか。

342:デフォルトの名無しさん
19/06/06 12:19:41.96 hSaNNShT.net
しょーもないゲームを自分で作って周りに見せて喜んでるだけなので
バージョン8を使い続けてるけどヤバイ?急に動かなくなることある?

343:デフォルトの名無しさん
19/06/06 12:21:12.48 vdYhIH7X.net
さすがに9未満は知らんわ

344:デフォルトの名無しさん
19/06/06 12:23:51.62 hSaNNShT.net
>>343 今んとこはWin10でも元気に動いてる。マイクロソフトも非推奨?

345:デフォルトの名無しさん
19/06/11 04:05:17.78 1utxNven.net
DirectX8だとSDKも8のSDKで作ってるの?あとVisual Studioのバージョンは?
まあVC6+DirectX SDKの7で作ったやつがソース変更ナシかほぼナシで
VS2008+DX11でビルドできた覚えがあるから大して意味のある質問ではないかもしれないけど

346:デフォルトの名無しさん
19/06/12 11:03:28.52 zoFa+KX6.net
パーティクルトレイルってやっぱ見てるだけでかっけーってなるんですけど、
実装するにはどういう考え方たしたらいいですか?

347:デフォルトの名無しさん
19/06/12 11:30:40.77 tqvE0DW+.net
うまー
URLリンク(daiki-evilone.hatenablog.com)
URLリンク(www.sawalemontea.com)
URLリンク(docs.unity3d.com)

348:デフォルトの名無しさん
19/06/12 11:38:18.03 zoFa+KX6.net
>>347
有難う
ただパーティクルシステムを基にUnityの機能じゃなくてジオメトリシェーダかなんかで
プログラマブルにやりたいんです。
環境はvvvv、windows10

349:デフォルトの名無しさん
19/06/12 11:50:23.19 tqvE0DW+.net
>実装するにはどういう考え方
が描いてあるから貼った

350:デフォルトの名無しさん
19/06/20 10:08:17.58 MGTUiFfb.net
>>344
もう11以降使ってない奴はマイクロソフトとかじゃなくAMDとか普通にバグあっても
直さない宣言してるからな

351:デフォルトの名無しさん
19/07/13 11:48:07.77 mwaE/2px.net
12でそれなりの描画が実装できたけど、やはり複雑。
ルートシグネチャ、シェーダ、ディスクリプタで器を決めて、頂点、索引、定数、テクスチャをGPUにロード。
ディスクリプタにテクスチャ、定数を入力にbind、描画ターゲットと深度ステンシルを出力にbind。
頂点と索引、シェーダを専用スロットに繋いで、コマンドリストに描画命令をいれる。
リストはあロケータから取り出して、 コマンドキューに入れる。
コマンドキューにシグナルいれて、フェンスで完了を確認する。
コマンドキューはスレッドに一つづつのインスタンスを持たせて、コマンドリストはコマンドキューに複数突っ込んでもよいが、複数のコマンドキューに容れてはならない。
描画ターゲットと深度ステンシルは、たんなるメモリだが、テクスチャとして扱うので、参照保護のためにアクセス前にはバリアを遷移させて状態を明示的に制御する。
マルチレイヤの合成、オフラインサーフェスへの描画、スワップチェインから取り出したバックバッファへの描画、present。
一枚書くだけでもしんどいな

352:デフォルトの名無しさん
19/07/13 11:58:32.38 mwaE/2px.net
字形は字形でFT使っているから、プロセッサメモリにレンダリングしてGPU上のテクスチャと宣言したメモリをマップしてアップロード。
それをパイプラインで扱うからテクスチャを参照する頂点バッファにテクスチャマップさせたポリゴンを容れる。
ウィンドウ処理(2d処理)を3dで扱うためひUV座標も手前で計算。
欲を出して、ウィジェットのパーツを1メッシュで扱えるようにして、1ウィジェットをジオメトリ扱いで管理し始めたら
吐きそうほどの複雑な実装になりました。
行数で30万ステップぐらいか?
セミコロンは、そろそろ100万いけそう

353:デフォルトの名無しさん
19/07/13 13:01:33.24 z78jYeW/.net
それだけの苦労をして得られるパフォーマンスは、
DX11に比べて如何ほどなのだろうか・・・?

354:デフォルトの名無しさん
19/07/22 07:40:47.32 NFxt+0t6.net
一概には言えない。
よく言われる通り、コマンドキューとコマンドリストを複数持って並列に実行させられるから、GPUを無駄なく使うようにしやすい。
200の入力を3回するには、600の計算量となるが、それをシーケンシャルにやれば600時間単位係り、それを並列に計算できるなら3並列で200時間単位にまで落とせるかも知れない。
描画バス、遅延レンダリング(深度バッファシャドウ)なんかは前段の計算が完了する要件があるから並列できない。
ジオメトリやメッシュを描画する部分が適用しやすい。
つまりフレームレートに影響するのは、ポリゴン数と描画ターゲットの解像度。APIセットが計算性能に与える影響は大きくない。
APIセットは、ドライバとハードウェア設計を楽にした上で、オープン規格でプログラムをコーディングしやすくするもの。
12の良いところは、GPUを直接触るような気持ちよさだと思う


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch