Là các cuộc gọi vẽ được thực hiện song song hoặc tuần tự hoặc cả hai?


8

Đây là phần tiếp theo cho một câu hỏi tôi đã trả lời trên GameDev SE. Câu hỏi đơn giản là GlDrawArraysInstactor trong OpenGL song song khi vẽ các thể hiện đó?

Câu trả lời của tôi là trong dòng "GPU có thể thực hiện song song nhiều cuộc gọi rút thăm tùy thuộc vào nhiều thứ, ví dụ nếu hai cuộc gọi rút thăm sử dụng cùng một shader đỉnh." Dưới đây là câu trả lời đầy đủ .

Trong các bình luận, OP đã đề cập, "Tôi nghĩ rằng nó nên được tuần tự. Sau tất cả, một số chế độ hòa trộn phụ thuộc vào chuỗi"

Bây giờ, tôi hơi bối rối. Là câu trả lời của tôi về nó vẫn sẽ song song với họ khi nó có thể hợp lệ? Ai đó có thể làm rõ điều này?

Câu trả lời:


9

Kết quả sẽ như thể nó được thực hiện tuần tự một tam giác tại một thời điểm. Điều này rất quan trọng để mỗi khung hình có tính quyết định. Nếu không, việc vẽ cùng một khung hình nhiều lần có thể tạo ra các kết quả khác nhau và tạo ra một hình ảnh nhấp nháy trên màn hình.

Tuy nhiên điều đó không có nghĩa là song song hóa là không thể . Các đỉnh có thể được tính toán song song. Kết quả của họ sẽ được đặt hàng và cung cấp cho trình tạo điểm ảnh sẽ cung cấp cho giai đoạn đổ bóng mảnh.

Điều tương tự cũng xảy ra với pixel. Thông thường, một nhóm các pixel từ một tam giác có thể được tính toán song song và pha trộn. Sau đó, một tam giác không chồng lấp cũng có thể được điền vào cùng một lúc, tuy nhiên nếu tam giác chồng lên nhau hiện đang bận thì kết quả của trình đổ bóng mảnh phải được đệm cho đến khi các pixel tương ứng của tam giác trước được thực hiện để việc trộn có thể xảy ra theo đúng thứ tự.


Hoàn toàn có thể chạy trình đổ bóng pixel cho các hình tam giác chồng lên nhau cùng một lúc. Tất cả vấn đề là sự pha trộn xảy ra tuần tự. Các shader Pixel có thể khởi động rất nhiều công việc cho đơn vị pha trộn theo bất kỳ thứ tự nào, sau đó có thể sắp xếp lại tất cả các hoạt động pha trộn đó tùy thuộc vào tam giác mà nó xuất phát.
John Calsbeek

Tôi đã thấy các tình huống nhấp nháy xảy ra do nhiều hình tam giác nằm trong cùng một mặt phẳng, nhưng tôi không nhớ nếu điều đó xảy ra trong khi máy ảnh / thế giới / v.v. biến đổi là tĩnh hoặc nếu nó yêu cầu di chuyển và tính toán lại. Đó là một trường hợp cạnh, mặc dù.
JAB

@JAB Nghe có vẻ như bạn đang đề cập đến z- combat . Điều này thường xảy ra do thực tế là ngay cả khi hai nguyên thủy được phân tích đồng phẳng, lượng tử hóa trong bộ nội suy tạo ra một mẫu trong đó có thể nhìn thấy một số pixel từ cả hai nguyên thủy. Mẫu sẽ dịch chuyển, gây nhấp nháy, chỉ khi các đỉnh (hoặc máy ảnh) được di chuyển, nếu không thì mẫu nhiễu phải nhất quán giữa các khung.
MooseBoys

@MooseBoys Chính xác là như vậy, yeah. Đã vài năm kể từ khi tôi làm nhiều với đồ họa 3D.
JAB

Bên cạnh việc chỉ chạy song song nhiều đỉnh và pixel, nhiều cuộc gọi rút thăm sẽ được thực hiện cùng một lúc, nếu có đủ tài nguyên GPU và không có sự phụ thuộc giữa các cuộc gọi rút thăm.
Nathan Reed
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.