ねのぷろ! ~げーむ・ぷろぐらみんぐ・ぶろぐ〜

プログラミングやゲームについてだらだら書きます。https://twitter.com/nenowawon

DirextX11 図形が表示されない -構造体のサイズ

こんにちは。ネノワヲンです。

今日は昨日の画像と立方体を同時に表示させようとしたところ、

f:id:nenowawon:20181112175305p:plain

↑のようになってしまいました・・・。

原因としては、DirectX11のデバイスコンテキストに頂点バッファをセットする際、きちんと頂点の構造体のサイズを渡していないことが原因でした・・・。

普通の図形の頂点データ(座標、色)と画像の図形の頂点データ(座標、色、UV座標)の構造体を別で作っていたのですが、どちらの場合でも画像の構造体のサイズを渡していました。

きちんとそれぞれのサイズを渡すことにより、普通の図形と画像を同時に表示させることができました。

f:id:nenowawon:20181112175654p:plain

次からは、備忘録もかねてここまでに苦戦したことをまったり書いていこうと思います。

DirectX11 UV座標が反映されない

こんにちは。ネノワヲンです。

今回は、最近つまづいたことについて書いていこうと思います。

最近、C++でDirectX11を使ってプログラミングをしています。

f:id:nenowawon:20181110205127j:plain

今回、↑の画像を表示させようと思ったのですが・・・

f:id:nenowawon:20181110205416p:plain

このように、真っ白になってしまいました・・・。

プログラミングの問題かと思い、原因を探っていたのですが、シェーダーの問題でした。

 

原因は、頂点シェーダーのアウトプット構造体と、ピクセルシェーダーのインプット構造体の値が違うことが原因でした。

f:id:nenowawon:20181110210406p:plain

シェーダーを修正して、無事に画像を表示させることができました。

こういったシェーダー関連のバグは、なかなか気づきづらいことが多いので、気を付けていきたいと思います。

また、見ての通り画像が反転しているので、次はその修正をしたいと思います。