006.テクスチャ付き四角形のフェード処理(Dx11版)
このサンプルは
SimplSample006というディレクトリに含まれます。
BaseCrossDx11.slnというソリューションを開くと
Dx11版が起動します。
実行結果は以下のような画面が出ます。
図0006a
動画は以下になります。
【共通解説】
Dx12、Dx11両方に共通なのは
シェーダーです。
DxSharedプロジェクト内に
シェーダファイルというフィルタがあり、そこに記述されてます。
今回使用するシェーダは
頂点シェーダとピクセルシェーダです。
VertexPositionTexture型の頂点を持ち、
コンスタントバッファからの入力で、位置を変更させています。
またテクスチャも描画します。
今項のサンプルは前項のサンプルと大きく変わったところはありません。今項は、
ディフューズ色を変更することによって、オブジェクト全体を半透明にする処理をしています。
【Dx11版解説】
BaseCrossDx11.slnを開くと、
BaseCrossDx11というメインプロジェクトがあります。この中の
Character.h/cppが主な記述個所になります。
■初期化■
初期化は
SquareSprite::OnCreate()関数に記述があります。ここでは
メッシュリソースとテクスチャリソースを作成し、スケーリングなど各パラメータを初期化して終了です。
変更する
ディフューズ色のための変数
m_Diffuseと経過時間に
m_TotalTimeに持ちます。
■更新処理■
更新処理は、
SquareSprite::OnUpdate()関数で実装されます。左右に移動しながら、中心からの距離が一定以上になれば逆向きに移動する形です。回転も移動方向に応じて別の回転をかけています。
その際、
m_Diffuseを動的に変更します。
m_Diffuseはシェーダに渡されます。
■描画処理■
前項のサンプルと変わりません。
以上で
Dx11版の実装は終わりです。
【まとめ】
今項のサンプルは
サンプルとして独立させるには、前項の内容と被るところが多く、ちょっともったいないかとは思います。
ポイントは
ディフューズ色を使った半透明化アニメーションというわけですが、もう少しエフェクトなどで使えるサンプルを用意すればよかったかなと思います。ざっと実行だけ確認していただければいいかと思います。