DX11: индексированный чертеж не производит визуального вывода

Для нашего студенческого проекта я работал с OBJ-загрузчиком, чтобы импортировать модели в наше приложение. Он загружается без проблем, и его отрисовка работает без индекса (модель явно отображается неправильно, потому что я не использую буфер индекса). DeviceContext->DrawIndexed ничего не показывает на экране.

Без индексированного рисунка

С индексированным рисунком

Метод создания буфера:

void ObjectLoader::CreateBuffers()
{
    //Index buffer
    D3D11_BUFFER_DESC iBufferDesc;
    memset(&iBufferDesc, 0, sizeof(iBufferDesc));
    iBufferDesc.BindFlags = D3D11_BIND_INDEX_BUFFER;
    iBufferDesc.Usage = D3D11_USAGE_DEFAULT;
    iBufferDesc.ByteWidth = sizeof(DWORD);

    D3D11_SUBRESOURCE_DATA indexData;
    indexData.pSysMem = &ind;
    pDevice->CreateBuffer(&iBufferDesc, &indexData, &pIndexBuffer);


    //Vertex buffer
    D3D11_BUFFER_DESC bufferDesc;
    memset(&bufferDesc, 0, sizeof(bufferDesc));
    bufferDesc.BindFlags = D3D11_BIND_VERTEX_BUFFER;
    bufferDesc.Usage = D3D11_USAGE_DEFAULT;
    bufferDesc.ByteWidth = sizeof(TriangleVertex) * this->NumberOfVerts();

    D3D11_SUBRESOURCE_DATA data;
    data.pSysMem = tva;
    pDevice->CreateBuffer(&bufferDesc, &data, &pVertexBuffer);
}

Метод рисования:

void ObjectLoader::Draw()
{
    if (pDevice == nullptr)
        return;

    UINT32 vertexSize = sizeof(float) * 5;
    UINT32 offset = 0;

    pDeviceContext->IASetVertexBuffers(0, 1, &pVertexBuffer, &vertexSize, &offset);
    pDeviceContext->IASetIndexBuffer(this->pIndexBuffer, DXGI_FORMAT_R32_UINT, 0);
    pDeviceContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);

    pDeviceContext->DrawIndexed(vIndex.size(),0 , 0);

    //pDeviceContext->Draw(this->NumberOfVerts(), 0);

}

Что, черт возьми, мне не хватает? Я посмотрел несколько книг по индексированному рисунку, и это кажется довольно простым. Сначала я думал, что порядок намотки был изменен, но я проверил это, просто изменив массив индексов; тот же результат.

Если вам нужно больше кода, дайте мне знать, но я чувствую, что этого должно быть достаточно.

Заранее спасибо!

Редактировать: ОТ: Я так и не понял, как заставить мой код правильно отформатировать, поэтому извиняюсь за это, не стесняйтесь делиться тем, как это делается.

0 ответов

Другие вопросы по тегам