Direct3Dで2D画像を表示する。
2D画像といっても結局ポリゴンなので、すでに作ったQuadを表示する機能から3Dの要素を削っていけばできる。
現在使っている「Simple3D.hlsl」は3D用なので、新たにシェーダーファイルを作らなければならない。
「Simple2D.hlsl」を作成 (プロパティの設定忘れずに)
Simple3D.hlslの中身をそのままコピー
3Dに関する部分(カメラとかライトとか…)を消す
Direct3D::Initialize関数でシェーダーをコンパイルしたり頂点インプットレイアウトを作ったりしている。
これを3D用と2D用に分けなければならない。
「頂点シェーダー」「ピクセルシェーダー」「頂点インプットレイアウト」「ラスタライザ」を入れる変数を構造体にする。
上で作った構造体の配列を用意する(2D用と3D用)
それぞれをコンパイルしたり作成したりする
どっちのシェーダーセットを使うか指定する関数を作る
2D画像を表示するためのSpriteクラスをつくる。
「Spirete.h」「Sprite.cpp」を作成
それぞれ「Quad.h」「Quad.cpp」の中身をコピー(もちろんクラス名はSpriteに変える)
法線やカメラに関する処理を削除
Main.cppで、Spiriteクラスを使用し画像を表示してみる。
デフォルトで画像ファイルと同じサイズで表示されるようにする。
移動量をピクセル単位で指定できるようにする。