Chỉnh sửa cho tôi nếu tôi sai, nhưng cả hai công việc Shader Geometry và Tessname Shader đều tạo ra các đỉnh trong Đường ống đồ họa. Những gì tôi muốn biết là chúng khác nhau như thế nào và khi nào tôi nên sử dụng cái này hơn cái kia?
Chỉnh sửa cho tôi nếu tôi sai, nhưng cả hai công việc Shader Geometry và Tessname Shader đều tạo ra các đỉnh trong Đường ống đồ họa. Những gì tôi muốn biết là chúng khác nhau như thế nào và khi nào tôi nên sử dụng cái này hơn cái kia?
Câu trả lời:
Trên thực tế không, 'công việc' của trình tạo bóng hình học (GS) là đánh giá nguyên thủy.
Các shader hình học có thể điều khiển, nhưng chúng bị giới hạn bởi a) giới hạn trên trong quá trình về số lượng phần tử đầu ra và b) thực thi trong một shader duy nhất ... tất nhiên là shader kích hoạt vấn đề thứ 2, nhưng các shader hình học tổng thể là hiệu quả hơn trong đánh giá nguyên thủy và / hoặc nội suy giá trị so với khi chúng được xác định.
Để so sánh, các shader tàu (TS) được giới thiệu đặc biệt để thực hiện mật độ hình học để chúng hoạt động tốt, mạnh mẽ với một loạt các thuật toán ngày càng mở rộng, (chúng có ý định chơi chữ) và chúng ít bị giới hạn bởi các bộ đệm giới hạn đầu ra.
Daniel Rákos có một bài viết hay về sự tiến hóa của GS / TS: Lịch sử của việc xử lý phần cứng
Khi nào nên áp dụng mỗi trường hợp là 'sử dụng công cụ phù hợp cho công việc' và đây là cách: Xây dựng một đường ống dẫn thô mà không cần tàu để có được đánh giá chính xác trong VS / GS / FS. Tách riêng phạm vi điều chỉnh chế độ xem hoặc dựa trên cảnh, sau đó chèn TS trước GS để tăng mật độ nguyên thủy sau đó được chuyển cho GS đã được thiết kế của bạn. Nếu bạn muốn thử một TS khác, sau đó xây dựng một giải pháp thay thế và trao đổi nó vào đường ống ... bạn thậm chí có thể sử dụng một GS có bản năng để tự động chọn đúng TS dựa trên các thuộc tính nguyên thủy!