void DrawModel() { auto_interface<ID3D10Device> pNativeDevice(_device.GetNativeDevice()); // 立方体の描画 // 定数バッファ�Aを更新 cbChangesEveryFrame* pCBufEveryFrame = static_cast<cbChangesEveryFrame*>(_renderer.GetShaderConstantBuffer(_shader, 1)); // ビュー変換行列 D3DXVECTOR3 eye = D3DXVECTOR3(0.0f, 5.0f, -5.0f); // 視点(カメラの位置) D3DXVECTOR3 at = D3DXVECTOR3(0.0f, 0.0f, 0.0f); // 注視点 D3DXVECTOR3 up = D3DXVECTOR3(0.0f, 1.0f, 0.0f); // カメラの上方向 D3DXMatrixLookAtLH(&pCBufEveryFrame->View, &eye, &at, &up); D3DXMatrixTranspose(&pCBufEveryFrame->View, &pCBufEveryFrame->View); // 点光源座標 D3DXVECTOR3 vLightPos(3.0f, 3.0f, -3.0f); // 光源座標(ワールド座標系) D3DXVec3TransformCoord(&pCBufEveryFrame->Light, &vLightPos, &pCBufEveryFrame->View); // 定数バッファ�Bを更新 cbChangesEveryObject* pCBufEveryObject = static_cast<cbChangesEveryObject*>(_renderer.GetShaderConstantBuffer(_shader, 2)); // ワールド変換行列 static float angle = 0.f; angle += _frameRateController.GetElapsedTime(); D3DXMatrixRotationY(&pCBufEveryObject->World, angle); D3DXMatrixTranspose(&pCBufEveryObject->World, &pCBufEveryObject->World); float* pGlobalColor = reinterpret_cast<float*>(_renderer.GetShaderGlobalVariable(_shader, "color")); pGlobalColor[0] = 1.0f; pGlobalColor[1] = 1.0f; pGlobalColor[2] = 1.0f; pGlobalColor[3] = 1.0f; // *************************************** // IAに頂点バッファを設定 _renderer.SetVertexBuffer(_vertices); // IAにインデックス・バッファを設定 _renderer.SetIndexBuffer(_indices); // IAに入力レイアウト・オブジェクトを設定 _renderer.SetInputLayout(_inputLayout); // IAにプリミティブの種類を設定 pNativeDevice->IASetPrimitiveTopology(D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST); // シェーダをデバイスに適用。 _renderer.SetShader(_shader); _renderer.ApplyShader(); _renderer.SetDefaultRenderTargets(); _renderer.SetDefaultRasterizerState(); _renderer.SetDefaultBlendState(); _renderer.SetDefaultDepthStencilState(); // *************************************** // 頂点バッファのデータをインデックス・バッファを使って描画する pNativeDevice->DrawIndexed( 36, // 描画するインデックス数(頂点数) 0, // インデックス・バッファの最初のインデックスから描画開始 0); // 頂点バッファ内の最初の頂点データから使用開始 }