Anonymous
Почему мой код выводит две диагональные линии на одной стороне куба? Я путаю некоторые вершины?
Сообщение
Anonymous » 13 окт 2024, 18:47
Я использую топологию TRIANGLESTRIP, пытаясь отобразить каркас куба. Вот вершина, которую я использую:
Код: Выделить всё
g_pImmediateContext->IASetPrimitiveTopology( D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP );
SimpleVertex vertices[] =
{
{ XMFLOAT3(-1.0f, 1.0f, -1.0f), XMFLOAT4(1.0f, 0.0f, 0.0f, 1.0f) }, // 0 Front-bottom-left
{ XMFLOAT3(1.0f, 1.0f, -1.0f), XMFLOAT4(0.0f, 1.0f, 0.0f, 1.0f) }, // 1 Front-bottom-right
{ XMFLOAT3(1.0f, 1.0f, 1.0f), XMFLOAT4(0.0f, 0.0f, 1.0f, 1.0f) }, // 2 Front-top-left
{ XMFLOAT3(-1.0f, 1.0f, 1.0f), XMFLOAT4(1.0f, 1.0f, 0.0f, 1.0f) }, // 3 Front-top-right
{ XMFLOAT3(-1.0f, -1.0f, -1.0f), XMFLOAT4(1.0f, 0.0f, 1.0f, 1.0f) }, // 4 Back-bottom-left
{ XMFLOAT3(1.0f, -1.0f, -1.0f), XMFLOAT4(0.0f, 1.0f, 1.0f, 1.0f) }, // 5 Back-bottom-right
{ XMFLOAT3(1.0f, -1.0f, 1.0f), XMFLOAT4(1.0f, 1.0f, 1.0f, 1.0f) }, // 6 Back-top-left
{ XMFLOAT3(-1.0f, -1.0f, 1.0f), XMFLOAT4(0.5f, 0.5f, 0.5f, 1.0f) } // 7 Back-top-right
};
а это мои показатели:
Код: Выделить всё
WORD indices[] =
{
0,1,3,
3,2,1,
1,5,2,
2,5,6,
5,4,1,
1,0,4,
4,0,3,
3,7,4,
4,5,7,
7,5,6,
6,2,3,
3,7,6
};
Подробнее здесь:
https://stackoverflow.com/questions/790 ... -mixing-up
1728834438
Anonymous
Я использую топологию TRIANGLESTRIP, пытаясь отобразить каркас куба. Вот вершина, которую я использую: [code]g_pImmediateContext->IASetPrimitiveTopology( D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP ); SimpleVertex vertices[] = { { XMFLOAT3(-1.0f, 1.0f, -1.0f), XMFLOAT4(1.0f, 0.0f, 0.0f, 1.0f) }, // 0 Front-bottom-left { XMFLOAT3(1.0f, 1.0f, -1.0f), XMFLOAT4(0.0f, 1.0f, 0.0f, 1.0f) }, // 1 Front-bottom-right { XMFLOAT3(1.0f, 1.0f, 1.0f), XMFLOAT4(0.0f, 0.0f, 1.0f, 1.0f) }, // 2 Front-top-left { XMFLOAT3(-1.0f, 1.0f, 1.0f), XMFLOAT4(1.0f, 1.0f, 0.0f, 1.0f) }, // 3 Front-top-right { XMFLOAT3(-1.0f, -1.0f, -1.0f), XMFLOAT4(1.0f, 0.0f, 1.0f, 1.0f) }, // 4 Back-bottom-left { XMFLOAT3(1.0f, -1.0f, -1.0f), XMFLOAT4(0.0f, 1.0f, 1.0f, 1.0f) }, // 5 Back-bottom-right { XMFLOAT3(1.0f, -1.0f, 1.0f), XMFLOAT4(1.0f, 1.0f, 1.0f, 1.0f) }, // 6 Back-top-left { XMFLOAT3(-1.0f, -1.0f, 1.0f), XMFLOAT4(0.5f, 0.5f, 0.5f, 1.0f) } // 7 Back-top-right }; [/code] а это мои показатели: [code]WORD indices[] = { 0,1,3, 3,2,1, 1,5,2, 2,5,6, 5,4,1, 1,0,4, 4,0,3, 3,7,4, 4,5,7, 7,5,6, 6,2,3, 3,7,6 }; [/code] [img]https://i.sstatic.net/rcVX3xkZ.png[/img] Подробнее здесь: [url]https://stackoverflow.com/questions/79083537/why-does-my-code-output-2-diagonal-lines-on-one-side-of-the-cube-am-i-mixing-up[/url]