簡體   English   中英

DirextX 中的拓撲有問題

[英]Having trouble with topologies in DirextX

我試圖在 DirectX 11 中繪制一個四邊形,但我有一些問題:

VERTEX vert[] = {
        {-0.5f, 0.5f, 0.0f,     1.0f, 0.0f, 0.0f},
        {0.5f, -0.5f, 0.0f,     1.0f, 0.0f, 0.0f},
        {-0.5f, -0.5f, 0.0f,    1.0f, 0.0f, 0.0f},

        {0.5f, -0.5f, 0.0f,     0.0f, 0.0f, 0.0f},
        {5.0f, 0.5f, 0.0f,      0.0f, 1.0f, 0.0f},
        {-0.5f, 0.5f, 0.0f,     0.0f, 1.0f, 0.0f}
    };
    //0, 1, 2,
    //2, 3, 0

    vbo->Update(vert);
    vbo->Bind();
    deviceContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP);
    deviceContext->Draw(6, 0);

它繪制了 3 個三角形 - 一個在正確的位置,2 個在錯誤的位置。

由於您明確指定了三角形,因此您應該使用

D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST 

這會將每 3 個頂點視為三角形的一部分>

在三角形帶的情況下,您只需要繪制 4 個頂點,因為繪制將使用以下索引完成:

Triangle 0->1->2
Triangle 1->2->3

在這種情況下要繪制的正確數組是:

{-0.5f, 0.5f, 0.0f,     1.0f, 0.0f, 0.0f},
{0.5f, -0.5f, 0.0f,     1.0f, 0.0f, 0.0f},
{-0.5f, -0.5f, 0.0f,    1.0f, 0.0f, 0.0f},
{5.0f, 0.5f, 0.0f,      0.0f, 1.0f, 0.0f}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM