Sử dụng các hướng dẫn ở đây, tôi đã được quản lý để có được một hình tam giác màu đỏ lên trên màn hình của tôi: http://www.directxtutorial.com/Lesson.aspx?lessonid=9-4-4Vẽ một hình chữ nhật trong Direct X
CUSTOMVERTEX OurVertices[] =
{
{ 0, 0, 0, 1.0f, D3DCOLOR_XRGB(127, 0, 0) },
{ WIDTH, 0, 0, 1.0f, D3DCOLOR_XRGB(127, 0, 0) },
{ 0, 300, 0, 1.0f, D3DCOLOR_XRGB(127, 0, 0) },
{ WIDTH, 300, 0, 1.0f, D3DCOLOR_XRGB(127, 0, 0) }
};
d3dDevice->CreateVertexBuffer(3*sizeof(CUSTOMVERTEX),
0,
CUSTOMFVF,
D3DPOOL_MANAGED,
&vBuffer,
NULL);
VOID* pVoid; // the void* we were talking about
vBuffer->Lock(0, 0, (void**)&pVoid, 0); // locks v_buffer, the buffer we made earlier
memcpy(pVoid, OurVertices, sizeof(OurVertices)); // copy vertices to the vertex buffer
vBuffer->Unlock(); // unlock v_buffer
d3dDevice->SetFVF(CUSTOMFVF);
d3dDevice->SetStreamSource(0, vBuffer, 0, sizeof(CUSTOMVERTEX));
d3dDevice->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 1);
Nhưng bạn có thể thấy rằng tôi thực sự muốn được vẽ một hình chữ nhật.
Tôi đã thay đổi Nguyên thủy để vẽ 2 hình tam giác và mở rộng kích thước bộ đệm thành 4 * kích thước của đỉnh tùy chỉnh nhưng tôi không thể nói rằng tôi hiểu cách lấy từ hình tam giác đến hình chữ nhật của tôi Tôi muốn:
có cách nào tốt hơn về cách vẽ một hình chữ nhật thay vì sử dụng một quad xem xét tôi chỉ muốn sling một số văn bản trên đầu trang của nó một cái gì đó như thế này:
Đúng nếu tôi sai, nhưng bạn nên có bốn đỉnh và bộ đệm chỉ mục chứa các chỉ mục thích hợp cho hai hình tam giác để tạo hình chữ nhật của bạn. – chris
Vì vậy, 4 đỉnh = 4 điểm của một hình vuông và một chỉ số là thứ tự để vẽ chúng? Tôi rõ ràng là hoàn toàn mới với ý tưởng đỉnh này, tôi có thể có một chút bàn tay vượt qua rào cản này không? Hoặc có thể là một ví dụ cụ thể của một hình chữ nhật? – Jimmyt1988
Vì vậy, trong bộ đệm đỉnh, bạn có, ví dụ: '{(-2, 2, 0), (2, 2, 0), (2, 1, 0), (-2, 1, 0)} '(trên cùng bên trái, trên cùng bên phải, dưới cùng bên phải, dưới cùng bên trái) và bộ đệm chỉ mục của bạn có thể chứa' {(0, 1, 3), (3, 1, 2)} '(TL, TR, BL, tiếp theo là BL, TR, BR). Bộ đệm chỉ mục cho biết các đỉnh nào đến theo thứ tự nào. Bạn nên biết liệu nó là CW hay CCW cũng như để tiêu hủy. Bạn phải làm một số bổ sung 'SetIndexBuffer' vv với nó là tốt. Hãy tha thứ cho tôi, vì nó đã được một thời gian kể từ khi tôi đã làm điều đó, và tôi không bao giờ thích những người nhiều như các chức năng lưới premade. – chris