ねねチャレ 3日目「ポリゴンのレンダリングとUtility」

3日目!

土日と言う事で結構大型アップデートです!

今日の目的

Singletonや例外処理、LogといったUtilityの実装と、 3角ポリゴンのレンダリングです。 Utilityは軽めに、レンダリングの流れを重点的にやっていきたいと思います。

Utility

一部抜粋です。
部分的に黒魔術が使用されてます。ご了承下さい。

github.com

Macro.h

マクロが定義されてます。
アサートやメモリリーク関連などがありますが、黒魔術と称されたマクロもあります。
PROPERTY系です。C#などではおなじみのプロパティですが、C++では使えません。
ですが、Visual studioには擬似的なプロパティが存在するのでそれをマクロ化しています。

Singleton.h

おなじみです。mozc式の実装です。

Debug.h

Log機能が実装されています。

Timer.h

時間経過を計測します。

ポリゴンレンダリング

gist.github.com

大まかな流れはこんな感じです。

リソースの生成 : 38 行目 RenderingResourceSetup関数

今回用意したソースは以下の通りです。

  • 頂点シェーダ : 最低限の行列変換
  • ピクセルシェーダ : 赤色で描画し
  • 頂点レイアウト : positionのみ
  • バッファ : 3頂点
  • コンスタントバッファー : WVPをかけた行列を渡します
レンダリング 156 行目 PolygonRendering関数

今回は以下の手順で行いました。

  • モデル、ビュー、プロジェクション行列更新
  • シェーダーの登録と、コンスタントバッファの更新・割当
  • インプットレイアウト・頂点バッファ・トポロジーを設定
  • レンダリング

まとめ

とりあえず、ポリゴンは描けました。
Utilityもだいぶ入ったので開発も楽になると思います(なって欲しい)。

4日目は「モデル描画」を行う予定です!

進捗!

f:id:himatyu:20180311231742g:plain github.com