Shading: Phong vs Gouraud vs Flat


9

Làm thế nào để họ làm việc và sự khác biệt giữa chúng là gì? Trong kịch bản nào bạn nên sử dụng cái nào?

Câu trả lời:


12

Shading phẳng là mô hình tạo bóng đơn giản nhất. Mỗi đa giác được kết xuất có một vectơ bình thường duy nhất; bóng cho toàn bộ đa giác là không đổi trên bề mặt của đa giác. Với số lượng đa giác nhỏ, điều này mang lại cho các bề mặt cong một diện mạo.

Phong shading là tinh vi nhất trong ba phương pháp bạn liệt kê. Mỗi đa giác được kết xuất có một vectơ bình thường trên mỗi đỉnh; tô bóng được thực hiện bằng cách nội suy các vectơ trên bề mặt và tính toán màu cho từng điểm quan tâm. Nội suy các vectơ bình thường cho phép xấp xỉ hợp lý với bề mặt cong trơn tru trong khi sử dụng số lượng đa giác giới hạn.

Bóng bầu dục nằm ở giữa hai: như bóng Phong, mỗi đa giác có một vectơ bình thường trên một đỉnh, nhưng thay vì nội suy các vectơ, màu của mỗi đỉnh được tính toán và sau đó được nội suy trên bề mặt của đa giác.

Trên phần cứng hiện đại, bạn nên sử dụng màu phẳng (nếu tốc độ là tất cả) hoặc bóng Phong (nếu chất lượng là quan trọng). Hoặc bạn có thể sử dụng một shader đường ống lập trình và tránh toàn bộ câu hỏi.


Trên phần cứng hiện đại, tôi không biết về các chế độ Phong dựa trên phần cứng. Ngoài ra, tình cờ, đối với các shader có thể lập trình, mà bây giờ rất phổ biến, mọi người hầu như luôn sử dụng BRDF dựa trên microfacet.
imallett

Quan điểm của tôi là sự gia tăng tốc độ của Bầu so với Phong không đủ để biện minh cho việc mất chất lượng - máy tính hiện đại có thể (hoặc ít nhất là nên) có thể thực hiện cả hai trong thời gian thực.
Đánh dấu

Cách bạn diễn đạt nó, có vẻ như có chức năng Phong cố định, trong khi tôi không tin là có. Một cách riêng biệt, bạn nói rằng bạn nên sử dụng Phong "nếu chất lượng là quan trọng", nhưng Phong thực sự là một mô hình BRDF kém chất lượng. Theo một số biện pháp, thậm chí còn tệ hơn cả Blinn-Phong, đó là thứ mà phần cứng Gouraud shading sử dụng để tạo bóng cho các đỉnh.
imallett
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.