Nanashi-soft○プログラマ専用○DirectX11開発○
hpDeviceContext->DrawIndexed(hModelData->getIdxCnt(mdcnt), hModelData->getIdxSta(mdcnt), 0);↓インスタンスを生成して描画に変更
hpDeviceContext->DrawIndexedInstanced(hModelData->getIdxCnt(mdcnt), 1, 0, hModelData->getIdxSta(mdcnt), 0);これで,同じバッファを指定して描画命令を出しても上書きされません
//オブジェのコピーを生成(オブジェ番号が返る)・modeldata.cpp
int cpyObj(int);
//オブジェのコピーを生成(オブジェ番号が返る)あとは,メインプログラムで増やせばいいだけです
int modeldata::cpyObj(int hObjNum){
//次のオブジェ番号を取得
int hObjNumNew = getObjMax();
//指定したオブジェが属するモデルデータを探してコピーする
for(int mdcnt=0; mdcnt < getMaxModelId(); mdcnt++){
if(objNum[mdcnt] == hObjNum){
//モデルデータ保管を生成
int hModelId = newData();
//オブジェ番号をセット
setObjNum(hModelId, hObjNumNew);
//コピーする
drawYes[hModelId] = drawYes[mdcnt];
idxCnt[hModelId] = idxCnt[mdcnt];
idxSta[hModelId] = idxSta[mdcnt];
vctCnt[hModelId] = vctCnt[mdcnt];
texCnt[hModelId] = texCnt[mdcnt];
texSta[hModelId] = texSta[mdcnt];
psNum[hModelId] = psNum[mdcnt];
vctBufNum[hModelId] = vctBufNum[mdcnt];
idxBufNum[hModelId] = idxBufNum[mdcnt];
}
}
return hObjNumNew;
}
//モデルデータを増やす
{
//2番のオブジェを1000コ増やす
for(int i=0; i < 1000; i++){
hModelData->cpyObj(2);
}
}