Basic Loader

Basic Loader

Basic Loader で Shader と Texture をロードします。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プロジェクトの説明

  1. BasicLoader を使うと Shader や Texture を簡単にロードすることが出来ます。
    またテクスチャ画像も JPEG や GIF など、一般的なファイルを使用することが出来ます。
    Create Cube をベースに BasicLoader を使います。
    BasicLoader を組み込もうとすると、次々と関連ファイルが現われて、訳がわからなくなるかも知れません。
    単純なテクスチャのロードは Texture を参照して下さい。
  2. 3DTutorial\Lesson5.Components から次のファイルをプロジェクトに加えて下さい。
    texturedata.bin は使わないので削除して下さい。
    texturedata.bin に代えて earth.jpg をプロジェクトに加えて下さい。
    ファイル名 説明
    BasicLoader.cpp BasicLoader プログラムファイル
    BasicLoader.h BasicLoader ヘッダーファイル
    DDSTextureLoader.cpp BasicLoader に組み込まれている
    DDSTextureLoader.h BasicLoader に組み込まれている
    earth.jpg このページ先頭のテクスチャ画像
  3. pch.h を修正します。
    #pragma once
    
      ・・・
    #include <wincodec.h>		//追加 
    #include "BasicMath.h"		//追加
    
  4. Model.cpp の #include を修正します。
    #include "pch.h"
    #include "Model.h"
    #include "BasicShapes.h"
    #include "BasicLoader.h"
    
  5. Shader は BasicLoader でロードします。
    このとき m_inputLayout が取得出来るので、D3D11_INPUT_ELEMENT_DESC の定義は不要になります。
        BasicLoader^ loader = ref new BasicLoader(m_d3dDevice.Get());
    
        // Vertex Shader の設定
        loader->LoadShader(
            L"SimpleVertexShader.cso", nullptr, 0, &m_vertexShader, &m_inputLayout);
    
        // Pixel Shader の設定
        loader->LoadShader(L"SimplePixelShader.cso", &m_pixelShader);
    
  6. モデルは CreateCube() で生成します。
        // モデルの生成
        BasicShapes^ shapes = ref new BasicShapes(m_d3dDevice.Get());
    
        shapes->CreateCube(&m_vertexBuffer, &m_indexBuffer, nullptr, &m_indexCount);
    
  7. テクスチャは BasicLoader でロードします。
        // テクスチャのロード
        loader->LoadTexture(L"earth.jpg", nullptr, &m_textureView);
    
  8. プロジェクトを起動すると立方体にテクスチャを貼り付けたモデルが回転しながら描画されます。
    説明が足りない所は Lesson5 Components を参照して下さい。
    BasicLoader を使うと、プログラムが随分すっきりするでしょう。
  9. CreateCube() に代えて、CreateSphere() でモデルを生成して下さい。
    自動生成したモデルは、頂点座標と法線ベクトルとテクスチャ座標で構成されています。
    球に地球のマップが貼り付けられて、地球儀のように回転します。
        shapes->CreateSphere(&m_vertexBuffer, &m_indexBuffer, nullptr, &m_indexCount);
    

超初心者のプログラム入門(DirectX Store)