こんにちは、私は本当に困っています。現在、Frank d Luna http://www.d3dcoder.net/d3d11.htmによる DirectX11 を使用した DirectX11 チュートリアル Shapes example in 3d game programming を行っています。最初の立方体とは別に配置できる 2 つ目の立方体を作成し、プロジェクトをビルドすると、両方の立方体が消えてしまいました。問題はジオメトリ ジェネレーターにあると思います。
助けてください :(
void ShapesApp::BuildGeometryBuffers()
{ GeometryGenerator::MeshData ボックス;
//added
GeometryGenerator::MeshData boxtwo;
GeometryGenerator::MeshData grid;
GeometryGenerator::MeshData sphere;
GeometryGenerator::MeshData cylinder;
GeometryGenerator geoGen;
geoGen.CreateBox(1.0f, 1.0f, 1.0f, box);
geoGen.CreateBox(1.0f, 1.0f, 1.0f, boxtwo);
geoGen.CreateGrid(20.0f, 30.0f, 60, 40, grid);
geoGen.CreateSphere(0.5f, 20, 20, sphere);
//geoGen.CreateGeosphere(0.5f, 2, sphere);
geoGen.CreateCylinder(0.5f, 0.3f, 3.0f, 20, 20, cylinder);
// Cache the vertex offsets to each object in the concatenated vertex buffer.
//added
mBoxVertexOffset = 0;
mBoxtwoVertexOffset = box.Vertices.size();
mGridVertexOffset = mBoxtwoVertexOffset + boxtwo.Vertices.size();
mSphereVertexOffset = mGridVertexOffset + grid.Vertices.size();
mCylinderVertexOffset = mSphereVertexOffset + sphere.Vertices.size();
// Cache the index count of each object.
mBoxIndexCount = box.Indices.size();
//added
mBoxtwoIndexCount = boxtwo.Indices.size();
mGridIndexCount = grid.Indices.size();
mSphereIndexCount = sphere.Indices.size();
mCylinderIndexCount = cylinder.Indices.size();
// Cache the starting index for each object in the concatenated index buffer.
mBoxIndexOffset = 0;
//added
mBoxtwoIndexOffset = mBoxIndexCount;
mGridIndexOffset = mBoxtwoIndexOffset + mBoxtwoIndexCount;
mSphereIndexOffset = mGridIndexOffset + mGridIndexCount;
mCylinderIndexOffset = mSphereIndexOffset + mSphereIndexCount;
UINT totalVertexCount =
box.Vertices.size() +
//added
boxtwo.Vertices.size() +
grid.Vertices.size() +
sphere.Vertices.size() +
cylinder.Vertices.size();
UINT totalIndexCount =
mBoxIndexCount +
//added
mBoxtwoIndexCount +
mGridIndexCount +
mSphereIndexCount +
mCylinderIndexCount;