Bảo tồn năng lượng cho Blinn-Phong BRDF


7

Tôi đang cố gắng lấy mẫu từ Blinn-Phong BRDF.

Để thử nghiệm, tôi sử dụng một nguồn sáng hình cầu (phát xạ Lambertian) ngồi trên một mặt phẳng hình. Đây là hình ảnh tham khảo sử dụng Phong tiết kiệm năng lượng với số mũ 30000:

Phong

Lưu ý rằng không có năng lượng bị mất. Bây giờ tôi muốn đạt được điều tương tự cho Blinn-Phong .

Đây là nỗ lực của tôi (cùng số mũ, nhưng trên Blinn-Phong BRDF):

Blinn-Phong

Như bạn có thể thấy, một phần năng lượng đáng kể bị mất. Thuật ngữ chuẩn hóa tôi đang sử dụng xuất phát từ đây và làn+12π. Vấn đề là đây là một thuật ngữ bình thường hóa , không phải là một thuật ngữ bảo tồn .

Tôi tin rằng đây là kết quả mong đợi. Thông thường trong đồ họa là làm cho BRDF phản ánh ít hơn lượng năng lượng đầu vào, trái ngược với lượng chính xác, vì điều này thường ít khó khăn hơn. 1, 2

Câu hỏi của tôi:

  1. Có một phiên bản bảo tồn tất cả năng lượng chính xác?
  2. Nếu không, ít nhất ai đó có thể xác nhận điều này được mong đợi không?

NB Tôi khá tự tin rằng đây không phải là vấn đề phát sinh / PDF. Những hình ảnh này được lấy mẫu quan trọng bằng một phương pháp được đưa ra trong sách PBRT pg. 695 - pg. 699. Hơn nữa, một phiên bản lấy mẫu không quan trọng trông rất giống nhau (mặc dù tôi phải sử dụng số mũ thấp hơn để hội tụ đủ nhanh, và nó vẫn mất 10.000 s / p).

1 Điều này có thể được tranh luận từ một đối số bóng / mặt nạ trên microfacets. Thật không may, nó bỏ qua nhiều sự tán xạ. Câu trả lời đúng là một nơi nào đó ở giữa.

2 Thật vậy, tôi phải tự mình rút ra thuật ngữ bảo tồn Phong.

Câu trả lời:


9

Trước hết, đây có lẽ không phải là cách tốt nhất để kiểm tra bảo tồn năng lượng, bởi vì không phải tất cả các khuynh hướng sự cố đều có thể nhìn thấy trong ảnh. Hầu hết môi trường cũng có màu đen, do đó, một BRDF ít "đỉnh" như Lambert sẽ trở nên rất tối mà không có cách nào để biết liệu nó có tiết kiệm năng lượng hay không.

Những gì thường được sử dụng là một "thử nghiệm lò", trong đó bạn đặt một quả cầu vào bản đồ môi trường màu trắng. Khi bạn kết xuất quả cầu này bằng BRDF đáng quan tâm, nó sẽ hòa nhập hoàn hảo vào môi trường nếu BRDF tiết kiệm năng lượng (đảm bảo không có kênh màu nào bị cắt). Bởi vì nó là một hình cầu, bạn sẽ có thể nhìn thấy BRDF ở tất cả các khuynh hướng sự cố. Ngoài ra, hình cầu là lồi, do đó, không có bất kỳ vật thể nào khác trong cảnh, sẽ không có tia phản xạ nào bị che khuất và mọi pixel của hình cầu trong ảnh sẽ là một phần không thể thiếu trên BRDF ở một độ nghiêng khác nhau.

Nếu bạn đã thực hiện bài kiểm tra này, bạn cũng sẽ nhận thấy rằng Phong BRDF của bạn rất có thể không tiết kiệm năng lượng. Thuật ngữ chuẩn hóa thường được sử dụng củan+12π (hoặc là n+22π, tùy thuộc vào người bạn yêu cầu) chỉ giữ ở tỷ lệ bình thường. Ở các độ nghiêng khác, và đặc biệt ở góc chăn thả, có tới một nửa các tia phản xạ sẽ hạ cánh xuống dưới bề mặt và thường bị chấm dứt (vì truyền qua bề mặt phản chiếu không có ý nghĩa).
Thuật ngữ chuẩn hóa chính xác chiếm một phần của thùy Phong được cắt dưới bán cầu là rất khó tính toán. Jim Arvo đã đưa ra một giải pháp dạng đóng cho số mũ nguyên bằng các khoảnh khắc trục kép, được tóm tắt trong Bản tóm tắt chiếu sáng toàn cầu , đoạn 31a) và 31b) (trang 17/18). Các công thức này không thực tế để sử dụng trong trình kết xuất mặc dù và tôi không khuyên bạn nên thực hiện chúng.

Cần phải rõ ràng rằng nếu một mô hình đơn giản như Phong đã khó bình thường hóa này, thì Blinn-Phong thậm chí còn khó khăn hơn. Trước hết,n+12πthuật ngữ chuẩn hóa mà bạn đề cập chỉ đúng nếu bạn sử dụng Blinn-Phong dưới dạng phân phối microfacet bên trong BRDF microfacet đầy đủ (ví dụ: Torrance-Sparrow hoặc Walter). Nếu bạn trực tiếp sử dụng Blinn-Phong BRDF, thì thuật ngữ chuẩn hóa chính xác hơn là(n+2)(n+4)(8π2n/2+n), xuất phát trong bài viết ngắn này của Fabian Giesen (trang thứ hai) và cũng được liệt kê trên trang bạn đề cập. Tuy nhiên, thuật ngữ chuẩn hóa này một lần nữa chỉ đúng với tỷ lệ bình thường và sẽ không chính xác ở các khuynh hướng khác. Từ những gì tôi có thể nói, không có thuật ngữ chuẩn hóa chính xác tồn tại.


Đó thực sự là một thử nghiệm tốt hơn nhiều. Trên thực tế, việc chuẩn hóa Phong tôi thực hiện thực sự dựa trên Bản tóm tắt chiếu sáng toàn cầu 31a. Nó hoạt động thành một bảng 1D mà bạn tính toán trước cho bất kỳ độ phân giải mong muốn nào cho mỗi BRDF. Thuật ngữ chuẩn hóa khác tạo ra kết quả yếu hơn nhiều, như có thể được dự kiến ​​trong trường hợp phản xạ liếc này. Tôi cũng đang cố gắng tự giải quyết - một cách tiếp cận bảng 1D tương tự nên có thể.
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.