2012-07-10 33 views
5

Thứ tự bản vẽ hình tam giác trong các API 3D có được đảm bảo giống như thứ tự của chúng trong bộ đệm chỉ mục không?Thứ tự bản vẽ hình tam giác trong DirectX/OpenGL

Ví dụ: nếu tôi có hai hình tam giác chồng chéo trong một cuộc gọi vẽ duy nhất và thử nghiệm độ sâu bị tắt, thì tam giác đầu tiên hoặc thứ hai có thể hiển thị cuối cùng không?

Hoặc tôi có cần phải thực hiện các cuộc gọi vẽ riêng biệt để đảm bảo rằng hình tam giác thứ 2 xuất hiện trên đầu tiên của 1 không?

Trả lời

6

Trong OpenGL, thứ tự thực sự được lưu giữ, để thuật toán người vẽ có thể được sử dụng, ví dụ khi kết xuất hình học bán trong suốt.

Direct3D Tôi không biết chắc chắn, nhưng tôi muốn nói điều tương tự cũng áp dụng ở đó.

+0

Cảm ơn! Bạn có liên kết đến một số tài liệu chính thức nói rằng đơn đặt hàng sẽ được giữ nguyên không? Sẽ kiến ​​trúc lát gạch (như Adreno hay Xbox GPU), nơi bản vẽ được thực hiện riêng biệt trong nhiều ô không ảnh hưởng đến điều đó? – kaalus

+1

@kaalus: Tôi có thể xác minh cho việc đặt hàng, mặc dù tôi không thể cho cuộc sống của tôi tìm thấy một tham chiếu trong DX. GL có ít nhất một tham chiếu khi truyền p115 của 4.2 Cấu hình lõi. ốp lát sẽ không ảnh hưởng đến nó. – Bahbar

+1

@Bahbar Thật vậy, nó chỉ được đề cập trong qua. Một cửa hàng được phát hành bởi một shader khi làm việc trên nguyên thủy B có thể hoàn thành trước khi một cửa hàng cho nguyên thủy A, ngay cả khi nguyên thủy A được xác định trước khi nguyên thủy B Điều này áp dụng ngay cả đối với các shader fragment, trong khi các đầu ra shader fragment được ghi vào framebuffer theo thứ tự nguyên thủy, các cửa hàng được thực hiện bởi các invocations fragment fragment thì không. " – kaalus