25.シンプルサンプル001

今回から具体的にサンプルを作成して、そのソリューションとサンプルのドキュメントを記述する方式でGitHubのアップを開始しました。
サンプルのドキュメントも記述してますので、それぞれのサンプルにおける記述の説明は、ドキュメントに記述するとして、では、このブログはどういったことを記述するか、とちょっと考えました。

結論的には、このブログはあくまでコミット単位で、その間の、主にライブラリ修正とその理由などを記述すればうまくすみわけできるかな、と思っています。
ですので、実際にサンプルを実行してみたい人は、GitHubよりダウンロードして実行してみてください。ドキュメントは、Docmentsディレクトリ内にあります。

この記事は、
コミットweak_ptrからshared_ptr取得方法の修正
から、
コミットSimpleSample001の追加。ライブラリ修正あり
の間の作業です。
GitHubサイト

https://github.com/WiZFramework/BaseCross

を参照して下さい。

また、ブログ記事全体に、Dx12に関する研究、考察がよく出てきます。
Dx12に関する情報は、マイクロソフト社のDirectX-Graphics-Samplesが主な情報源となります。

マイクロソフト社のDirectX-Graphics-SamplesのGitHubサイトは以下になります。

https://github.com/Microsoft/DirectX-Graphics-Samples

ぜひ、興味ある方はダウンロードしてみてDx12研究を始めるといいと思います。

SimpleSample001について

今回のテーマは三角形の描画です。SimpleSample001ディレクトリには、Dx11版、Dx12版のソリューションがありますので参照ください。
実装コードの説明はドキュメントにあります。

実行結果は以下のようになり、これはDx11版もDx12版も変わりません。

2016081701

今回は頂点とカラーを持つ頂点データの、デバイス座標への描画になります。
デバイス座標というのはX方向が-1.0から1.0、Y方向が-1.0から1.0、Z方向が0.0から1.0の範囲内の座標で、GPUのキャンバスの座標と考えるといいかもしれません。
通常は、この座標系で直接描画することはなく、ワールド変換、ビュー変換、射影変換を施して描画します。ただシェーダを扱ったりする場合、デバイス座標を知っておいたほうがいいと思います。

今回のコミットでDeviceResourcesクラスに修正が入りました。どういう修正かというと、MeshResourceクラスのCreateMeshResource関数で、メッシュを作成しているのですが、その関数内に、存在しないクラスのメンバ関数を呼び出そうとしていました。

存在しないクラスってコンパイルが今までよく通っていたね、と思う人もいるかもしれません。
でも、MeshResource::CreateMeshResource関数テンプレート関数なので、実際に呼び出さないと、その関数は実体化しないんです。この手のバグはテンプレートを多用している場合、よく出るので気を付けたほうがいいでしょう。

今回は短いですが、この辺で。
ではまた。次回からもよろしくお願いします。

カテゴリー

ピックアップ記事

  1. 2016092201
    今回は前回のサンプルを少し機能を追加しまして、いろんなオブジェクトを追加しています。FullTuto…
  2. 2016092001
    前回更新から時間がたってしまいましたが、今回はフルバージョンチュートリアル003をアップしました。内…
  3. eyecatch
    前回更新から時間がたってしまいましたが、今回はフルバージョンチュートリアル002で懸案となっていまし…
PAGE TOP