Nanashi-soft○プログラマ専用○DirectX11開発○
Vertex3D hVectorData[TYOUTEN] = {と言うデータがあったとする
{頂点データA},
{頂点データB},
{頂点データC},
}
unsigned short hIndexData[3] = {と,頂点データの順番で表すことができる
0,1,2
}
//インデックスバッファ作成コメントアウトしている定義は,既に生成しているものを使いまわしている為です
// D3D11_BUFFER_DESC hBufferDesc;
hBufferDesc.ByteWidth = sizeof(hIndexData);
hBufferDesc.Usage = D3D11_USAGE_DEFAULT;
hBufferDesc.BindFlags = D3D11_BIND_INDEX_BUFFER;
hBufferDesc.CPUAccessFlags = 0;
hBufferDesc.MiscFlags = 0;
hBufferDesc.StructureByteStride = sizeof(unsigned short);
// D3D11_SUBRESOURCE_DATA hSubResourceData;
hSubResourceData.pSysMem = hIndexData;
hSubResourceData.SysMemPitch = 0;
hSubResourceData.SysMemSlicePitch = 0;
ID3D11Buffer* hpIndexBuffer;
if(FAILED(hpDevice->CreateBuffer(&hBufferDesc, &hSubResourceData, &hpIndexBuffer))){
MessageBoxW(hWnd, L"CreateBuffer Index", L"Err", MB_ICONSTOP);
goto End;
}
//そのインデックスバッファをコンテキストに設定
hpDeviceContext->IASetIndexBuffer(hpIndexBuffer, DXGI_FORMAT_R16_UINT, 0);
hpDeviceContext->Draw(3, 0);↓
hpDeviceContext->DrawIndexed(3, 0, 0);大抵の頂点データには重複するポイントが複数ある為,データ量を減らすことができます