TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
Excel VBA 質問スレ Part53
【マック】Macintoshプログラミング質問箱
D言語は多分コケると思っている人の数→
Go language part 3
Borland Developer Studio 2006 No.13
Excel VBA 質問スレ Part65
Visual Studio 2017 Part5
2ちゃんねる互換P2P匿名掲示板の実装を考える 1
推薦図書/必読書のためのスレッド 83
Prologでまったり Part5

【C++】 DirectX初心者質問スレ Part41 【C】


1 :2018/03/23 〜 最終レス :2020/06/12
回答する人も、質問する人も必ず読んでください

これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ

【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
 「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。

【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。


【C++】 DirectX初心者質問スレ Part40 【C】(c)2ch.sc
https://mevius.2ch.sc/test/read.cgi/tech/1474782237/

>>2リンク

2 :
現在の最新バージョンは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/

3 :
>>1
Direct乙

4 :
>>1
Xおつ

5 :
DirectX9でアニメーションメッシュを描画するのに
HLSLを利用しようと考えています。

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

また、D3DXMESHCONTAINERにもLPD3DXEFFECTINSTANCEというメンバーがいて
シェーダー用に何か用意されているみたいなのですが
これは無視して問題ないですか?

6 :
>>5
使ったことないから知らないけど、
おそらくは、固定機能の挙動を操作するパラメータ値を「エフェクト」と読んでいた筈だから、
固定機能のパラメータを別に設定すれば、そこは省略しても大丈夫だと思う。

ただ、それ以前にDirect3D9を使うことを避けた方が合理だと思う。
アニメーションメッシュ(ボーンアニメーションとかスケルタルアニメーションとか言われるやつ)は、
それを実現するには、入力するモデル(=ジオメトリ、メッシュの集合)に頂点索引と頂点重みを適切に付与してやることを暗黙の大前提とする。
これが整ったモデルがない限り、アニメーションメッシュを描画して、任意にモデルを動かすことはできない。
そして、これが整ったモデルがあるならば、Direct3D9を使う必要もない。

7 :
>>6
回答有り難うございます。

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

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

いろいろあってDirectX9使うしかない状況になっています。すみません。

8 :
NVIDIA産 DXR Tutorial

https://github.com/NVIDIAGameWorks/DxrTutorials

9 :
ついにレイトレーシングをやるときが来たか・・・

10 :
これが期待通りの結果を得られるならば、ライトマップテクスチャを作りやすくなりそうだな

11 :
dx12には興味はないけど
これはちょっと面白そうだよな
今は忙しいんで始めないけど
落ち着いたらやってみたい

12 :
DirectX9でD3DXMESHCONTAINER構造体にpNextMeshContainerというメンバがいて
次のメッシュへのポインターということはわかるのですが、
先頭のメッシュはどうやったらわかるのでしょうか?

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

兄弟から探す、というような決まりがあったりするのでしょうか?

13 :
DaaSって
DirectX as a Service の略?

14 :
NHKでコングラとかいう番組始まった

15 :
数学の初歩的な質問ですみません。

D3DXVECTOR3型の単位ベクトルをD3DXVECTOR4型にする場合、
xyzをコピーして、w要素に1.0fを渡せば良いのでしょうか?
もしくはD3DXVec4Normalizeを再度呼ぶべきでしょうか?

16 :
目的が分からないから答えにくいが
とりあえずw=1にしておいて問題が起きたらw=0にすればいい
正規化は不要

17 :
>>15
まず単位ベクトルとは何なのかちゃんと調べろ

>>16
馬鹿は黙ってろ

18 :
>>15
W=1

19 :
>>15
元が単位ベクトルなら正規化は不要
ラスタライザが正規化に問題を起こすこともあるから、ピクセルシェーだで正規化を必要とすることもある

20 :
シェー

21 :
w=1はおかしいでしょ
w=0だろ元は3次元ベクトルなんだから
お前等大丈夫か?

22 :
位置座標は w=1
向き(法線とかライト方向とか)は w=0

23 :
向きと座標の違いが分からないのかも
アフィン空間で生活しているのかもしれない

24 :
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;の部分などです。
どうすればいいのでしょうか?
よろしくお願いします!!

25 :
>>24
SDK関連のインクルードができてないのでは?
とにかくエラーメッセージ出してくんないと分からない。

26 :
>>25
いろいろいじったりインクルードをやりなおしたりしたのですが、エラーの赤線はなくなりましたが、やはり実行できません。
これがエラーメッセージです ↓ よろしくお願いします

https://youtu.be/olZEyKLDRlw

27 :
ダメだ、こいつは真性のアホだ

28 :
あほというか、これが普通なんだよ。
ここの住人が普通じゃないだけで

29 :
馬鹿には無理

30 :
directwrite始めたいんやが
サンプル落とせないんやがあ!!
ワイどうすればいいんや
馬鹿はR以外でよろしおま

31 :
>>30
暑苦しいな馬鹿はR

昔のサンプルならここにいくつか残ってる
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

32 :
最近、とある字形レンダリングライブラリを使った描画処理を整理したが、
DirectWriteからDirect3Dへの転送が遅い理由がよくわかった。

33 :
>>31
な、なんや・・
優Cやないけ
おかげでゲット出来たわ
ワイがJKならお礼に
ぎゅるんぎゅるんやってやつところやけど
汚いオッサンなんや
堪忍な☆

34 :
>>31
優しくてワロタw

>>32
kwsk

35 :
>>34
単純にパス数(工程数)が多い。
1.字形のラスタライズ
ベクトルフォントからビットマップにラスタライズ。CPU。輝度のみ
2.字形に色を塗る
輝度から色相。CPU
3.GPUのステージんぐに転送
4.ステージングからレイアウトされたテクスチャに変換
5.アルファ合成
完成

普通のモデル、ジオメトリなら一度読み込ませたらテクスチャ転送なんかしない。

36 :
>>35
サンクス!
うわぁ、けっこうCPUに仕事させてんなぁ〜。
もっとGPUにオフロードしてほしいもんだね。

37 :
>>36
より深みを知りたいならこれ
https://postd.cc/inside-the-fastest-font-renderer-in-the-world/

38 :
字形描画を実装した。
雑な実装だが、アホみたいに遅くなった。
初期実装:描画ループで35の全部やったらフレームレートが1fpsを割った。

兎に角、プロセッサからGPUメモリにアクセスするとガッツリと下がる。

39 :
実装方法替えろ

40 :
昔の古いゲーム、メモリの動きを監視してたら
起動するとかなりシステムメモリが消費されるけど
ビデオメモリ使用されてないんですかね?
古いバージョンだとなんか制限あるとかですか?

41 :
>>37
遅くなったが読ませてもらった。
全然理解できなんだw
フォントレンダリングの基礎を知らないとアカンっぽいね。

今のところ、GPUよりもCPU(SMID)でやるほうが良い領域なんだな。

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

43 :
描画のほとんどは、字の計算式だろ

毎フレーム、描画すると遅い

44 :
DirectX9 SDK(June 2010)をインストールするとついてくるDirectX Control panelの64bit版が
設定を変えて保存して閉じても、有効にならず、再度DirectX Control Panelを起動すると
変更が戻っています。32bit版であれば正常に動作します。

ググっても同じ症状の人がおらずお手上げ状態です…

45 :
wow64のじゃなくてsys32のを起動

46 :
DirectInputでタッチパネルは扱えるでしょうか?

47 :
>>46
できますん

https://msdn.microsoft.com/en-us/library/windows/desktop/hh454916.aspx
タッチ系はこのへんを参考

Win7以前でもタッチに対応したいならWM_TOUCHあたりでぐぐる

48 :
ようやくFreeTypeで縁取りを取り出せるようになった。
気づいたことは、最初から太字でデザインされたフォントじゃなければ、見るに耐えない字になる。
NotoSansレギュラーを縁取りしたら、見栄えが悪くなりました。

とりあえず、あれ。縁取りのサンプルでSVGでやるやつは、取り出しかたの考え方を間違えていると思った。
それとベシエprimitiveがほしい。

49 :
いかにもやり方間違ってそう

50 :
やってるのは、16ピクセルだしね
64ピクセルぐらいにすれば、今でも綺麗に縁取りが描ける。

製本、組版はビットマップを好む。
3DCGは速度を求める。パスが欲しい。

51 :
.

52 :
age

53 :
「DXライブラリ」がミドルウェアとしてNintendo Switchに対応、ロイヤリティーフリーで提供開始
https://www.gamer.ne.jp/news/201806080022/

マジか…

54 :
>>53
出世したなぁ…。
使ったことないけど、おめでとさん!

55 :
俺もちょい信頼性の落ちる簡易ラッパーぐらいの印象しかなかったわ
昔からあるよねぇ……祝福しておこう

56 :
dxライブラリーと聞いて、d3dxのライブラリー関数のことだと思ったら別物なのね。

57 :
2つの方向ベクトルがあるとき、
一方をもう一方の向きに一致させるようなピッチ(X軸回転)とヨー(Y軸回転)を導き出すには
どのようなアプローチがあるでしょうか?(ロール(Z軸回転)はなし)

一つは、

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

という手順が考えられますが、もっとエレガントな方法ってあるでしょうか?

58 :
ただの数学じゃねぇか
数学苦手なんか?
アホらしい

59 :
だな

60 :
共同ツール 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/

61 :
DirectXがあれば何でもできる!

62 :
空をも飛べるさ!

63 :
UnityとかBlenderとか最強なんですが

64 :
DirectX/(^o^)\オワタ

65 :
DirectX\(^o^)/ハジマタ

66 :
DirectX11.0で2Dの不思議のダンジョン系ローグライクゲームを作ろうと思うのですが
ヌルヌル快適に動く物を作りたいので、Direct2DとDirect3Dのどちらを使った方が実行速度が速いのか教えてください

67 :
>>66
Direct3D

68 :
>>66
両方使う必要がでる。

69 :
>>66
2D

70 :
>>66
3D

71 :
3Dに+1

72 :
>>66
>"DirectX11.0で2Dの"
って書いてあるじゃん?オーバーレイだけでやるって事?
スーパーファミコンの疑似3Dがやりたいのでしょうか?
オーバーレイの機能って3D?

73 :
2Dの処理するにしても3D使う方が速くね

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

75 :
いや使えるから
アホか

76 :
Direct3Dでやってみようと思います
ありがとうございます

>>72
すみませんよく分かりません
普通のドット絵を特別な演出なしでただ表示するだけです

77 :
>>75
8.1以降だよ。D2Dのシェーダ機能は。

78 :
>>77
正確にはPlatform Updateを当てたWin7からだねえ
shader linkingとかWin10じゃないと使えない部分もあるけど

79 :
LLK

80 :
収賄

81 :
過疎ってるな
やっぱりDirectX/(^o^)\オワタのが原因か

82 :
俺はDirectXしか使え・・・使わない

83 :
https://Qlone.pro/

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

85 :
仕様です

解決策としてZを少しずらす事で対処するのが普通
そういった機能はDirectXにもOpenGLにも既に付いてるよ

86 :
答えてくれてありがとうございます。
言い方間違えました(´つω・`)
Zをいじったり、座標をずらしてみたのですが、結果は同じでした。
16GBもメモリを積んでいる、にもかかわらず、
テクスチャーがトータル5MB分ぐらいしか表示されません。
どう足掻いても、メモリ不足になる、これはどうしてもおかしいなと思うんですよ。
いろいろやり方試したけどできないのです、おそらくVRAMが1GBしかないからなのかな〜?

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

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

沢山pngファイルが読み込めるサンプル作ってくれる人いませんか?
簡単なものでよいので壱万円ぐらいなら払いますじょなもし。(´・ω・`)
http://o.8ch.net/17kug.png

87 :
>>86
まずそっちから上手くいかないコード晒すのが順序ってもんやろ
現状じゃテクスチャ解放忘れてVRAM使い果たしてんじゃね
くらいの予想しかできねえよ

88 :
なんで自分が判ってないのを環境のせいにするんだろうな

89 :
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ってどのくらい詰め込めるものですか?(´・ω・`)
http://o.8ch.net/17kzm.png

90 :
えっと
CreateTexture(n〜10枚ぐらい);
RELEASE();
これを書いてる場所が可笑しい

91 :
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

不明だったところです。
http://o.8ch.net/17l20.png

92 :
レス頂きまして、ありがとうございます。

>これを書いてる場所が可笑しい
場所ですか・・・、これは
便宜上隣り合ってるだけで、実際の記述とは異なります。(´・ω・`)

93 :
RELEASE(&lpTexture[j]);
じゃね?
知らんけど

94 :
自己解決しました。
レスポンスをくださった方々ありがとうございました。
機会がありましたらまたよろぴくぴくぴくです(´・ω・`)
http://o.8ch.net/17l7p.png

95 :
解決法は画像データ(pngデータ)のサイズを半分にしました。

96 :
2のN乗とかか

97 :
DirectX滅亡まで秒読み開始

98 :
DirectXは永久に不滅です!

99 :
ディファードレンダリングについて質問です。
directx11でディファードレンダリングを勉強中なのですが、
最終描画でカラー情報と法線情報をうまく取得できません。
以下の画像のようにテクスチャ一枚一枚に描画されるような感じになってしまいます

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

そのまま取得するだけではだめなのでしょうか?

100 :
Not Found


100〜のスレッドの続きを読む
【JavaScript系】 NILScript 【AutoHotkey風】
【Java】DIコンテナって本当に便利か?
【えっ】Perlに未来はあるのか?【終わり?】
オブジェクト指向ってクソかよPart5
くだすれDelphi(超初心者用)その55
こんなプログラミング言語は嫌だ!
次世代言語12 Go Rust Swift Kotlin TypeScript
JAVAってこんなことも出来ないの?
プログラミングのお題スレ Part15
Tapestryについて語ろうよ!
--------------------
【国航】エアチャイナ・中国国際航空CA011便【PEK】
ニュース番組のオープニングを語ろう【ローカル版86】
製作代行スレッド 12工程目
インターコンチネンタルホテルズ&リゾーツ 14泊目
女優の有村架純さん
【ゲーム】「プレイステーション 5」のロゴマーク公開
酔っぱらいSM談義
FF11やっててイラっとするとき
【ワッチョイ】バイトについて愚痴りたい奴こいよ 20
☆日本インターネット作家連盟2☆
【日産】初代ノート Part73【E11 NOTE】
【岩屋防衛相】ホルムズ海峡「自衛隊派遣考えていない」「対話を通じて緊張が減じるよう努力」
成長期限定☆ユニット 2094時限目
関東弁撲滅運動
40代からのヘアメイク part.29
はすみとしこ「伊藤詩織さん側が敗訴した時のコメントを想定しようw」 [616817505]
加賀楓踊ってみた動画 第4弾!今回はモーニング娘。'17「邪魔しないで Here We Go!」と°C-uteの「アダムとイブのジレンマ」を踊った
2Pカラーの富士男達708体目
世界中の監視カメラが見られるサイトで見つけた興味深いURLを貼っていこうぜ part12
【れにちゃんと】ももいろクローバーZ潜入捜査官15510【タイで遭遇しタイ】
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼