MCPcopy Create free account
hub / github.com/TheRealMJP/MSAAFilter / InitFromSDKMesh

Method InitFromSDKMesh

SampleFramework11/v1.01/Graphics/Model.cpp:73–116  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

71};
72
73void Mesh::InitFromSDKMesh(ID3D11Device* device, SDKMesh& sdkMesh, uint32 meshIdx, bool generateTangents)
74{
75 const SDKMESH_MESH& sdkMeshData = *sdkMesh.GetMesh(meshIdx);
76
77 uint32 indexSize = 2;
78 indexType = IndexType::Index16Bit;
79 if(sdkMesh.GetIndexType(meshIdx) == IT_32BIT)
80 {
81 indexSize = 4;
82 indexType = IndexType::Index32Bit;
83 }
84
85 vertexStride = sdkMesh.GetVertexStride(meshIdx, 0);
86 numVertices = static_cast<uint32>(sdkMesh.GetNumVertices(meshIdx, 0));
87 numIndices = static_cast<uint32>(sdkMesh.GetNumIndices(meshIdx));
88 const uint32 vbIdx = sdkMeshData.VertexBuffers[0];
89 const uint32 ibIdx = sdkMeshData.IndexBuffer;
90
91 CreateInputElements(sdkMesh.VBElements(0));
92
93 vertices.resize(vertexStride * numVertices, 0);
94 memcpy(vertices.data(), sdkMesh.GetRawVerticesAt(vbIdx), vertexStride * numVertices);
95
96 indices.resize(indexSize * numIndices, 0);
97 memcpy(indices.data(), sdkMesh.GetRawIndicesAt(ibIdx), indexSize * numIndices);
98
99 if(generateTangents)
100 GenerateTangentFrame();
101
102 CreateVertexAndIndexBuffers(device);
103
104 const uint32 numSubsets = sdkMesh.GetNumSubsets(meshIdx);
105 meshParts.resize(numSubsets);
106 for(uint32 i = 0; i < numSubsets; ++i)
107 {
108 const SDKMESH_SUBSET& subset = *sdkMesh.GetSubset(meshIdx, i);
109 MeshPart& part = meshParts[i];
110 part.IndexStart = static_cast<uint32>(subset.IndexStart);
111 part.IndexCount = static_cast<uint32>(subset.IndexCount);
112 part.VertexStart = static_cast<uint32>(subset.VertexStart);
113 part.VertexCount = static_cast<uint32>(subset.VertexCount);
114 part.MaterialIdx = subset.MaterialID;
115 }
116}
117
118void Mesh::InitFromAssimpMesh(ID3D11Device* device, const aiMesh& assimpMesh)
119{

Callers 1

CreateFromSDKMeshFileMethod · 0.80

Calls 10

GetMeshMethod · 0.80
GetIndexTypeMethod · 0.80
GetVertexStrideMethod · 0.80
GetNumVerticesMethod · 0.80
GetNumIndicesMethod · 0.80
VBElementsMethod · 0.80
GetRawVerticesAtMethod · 0.80
GetRawIndicesAtMethod · 0.80
GetNumSubsetsMethod · 0.80
GetSubsetMethod · 0.80

Tested by

no test coverage detected