Nhầm lẫn với việc triển khai PBR


13

Tôi đang khám phá thế giới toán học tuyệt vời và tôi đang đập vào một bức tường lớn bằng PBR và đặt tên nên tôi có một vài câu hỏi: Theo như tôi hiểu thì BRDF mô tả cách một vật liệu phản ứng với ánh sáng (ánh sáng trực tiếp và phản xạ). Nhưng trong "Cook-Torrance" tôi không thấy bất cứ điều gì về phản xạ Tôi không hiểu cách tôi tích hợp nó để tôi chỉ nhận được ánh sáng khuếch tán và phản xạ.

Tôi đã đọc rất nhiều về "thuật ngữ khuếch tán" khác nhau như "Oren-Nayar", đó có phải là một phần của Cook-Torrance giống như một "D" khác trong đề cử DFG không? Liệu nó có thay thế nó mà không tính toán cụ thể?

Tôi đã đọc rất nhiều về "GGX" từ nền tảng nghệ sĩ máy xay của mình Tôi nghĩ rằng đó là thứ gì đó tạo ra sự phản chiếu mờ nhưng có vẻ như tôi đã sai và bây giờ tôi thấy thuật ngữ GGX này trong rất nhiều tình huống khác nhau như ở khía cạnh vi mô bình thường phân phối trong hướng dẫn này

Vì vậy, trong ngắn hạn câu hỏi là: "Oren-Nayar" và "GGX" và "Cook-Torrance" có liên quan với nhau như thế nào (nếu có) và làm cách nào để tích hợp "phản xạ vec3" trong thuật toán đó?

Như tôi đã nói trước đây tôi là người mới học toán nên nếu câu trả lời của bạn là "toán nặng", hãy viết một phiên bản glsl / hlsl của phương trình của bạn, điều đó dễ hiểu hơn cho tôi vì vậy một sự tương đương sẽ giúp tôi rất nhiều

PS: Tôi hiểu câu hỏi của tôi mờ nhưng nó cũng mờ như hiểu biết của tôi về chủ đề này.


1
Một cái gì đó có thể giúp bạn hiểu là "specular" có nghĩa là "gương như". Vì vậy, khi nói về phản xạ gương và khuếch tán, gương có nghĩa là gương giống như phản xạ, điều mà mọi người thường gọi là phản xạ. Khuếch tán chỉ là "những thứ sáng lên". Chúng cũng phản xạ ánh sáng, nhưng chúng phản xạ từ nhiều hướng khác nhau, do đó, kết quả không phải là bất cứ thứ gì bạn có thể nhận ra hình ảnh. Có một thang đo giữa phản xạ gương và khuếch tán trong các vật thể thật, và đây là một phần của Tham số "độ nhám" của điều khiển PBR.
Alan Wolfe

Bạn có thể thử đọc bản gốc của Cook-Torrance: inst.cs.ber siêu.edu / ~ cs294-13 / fa09 / lectures / cookapers.pdf - hãy chắc chắn kiểm tra các tài liệu tham khảo được liệt kê cuối cùng, khi có thể (hầu hết là có sẵn trên mạng). Sẽ mất một chút thời gian, nhưng đó là một cách chắc chắn để hiểu "sâu sắc" những gì đang xảy ra.
lau

Câu trả lời:


11

DFG xuất hiện trong gia đình BRDF dựa trên microfacet. Nó chỉ đơn giản là sản phẩm của ba điều khoản:

  • D: Phân phối microfacet.
  • F: Hệ số fresnel.
  • G: Độ suy giảm hình học giữa các microfacet.

Khi ai đó nói Cook-Torrance, họ thường có nghĩa là BRDF microfacet trong đó phân phối (D) là Beckmann, mà tôi nghĩ là những gì mà bài báo Cook-Torrance ban đầu nói về.

GGX thực sự chỉ là một bản phân phối khác (thuật ngữ D). GTR là một số khác. Các tên thường được sử dụng như một phím tắt có nghĩa là BRDF sử dụng phân phối đó.

Bây giờ tất cả các giả định này phản xạ gương (hoặc khúc xạ) trên các microfacet, do đó thuật ngữ fresnel. Nếu bạn có một ý tưởng tương tự nhưng sử dụng các microfacet khuếch tán (lambertian), bạn sẽ nhận được BRDF Oren-Nayar. Tôi nghĩ rằng người ta dựa trên sự phân phối gaussian của các microfacet nhưng tôi không quen thuộc với các chi tiết.


được rồi, điều đó rõ ràng hơn một chút nhưng nó vẫn không giải thích tôi phải làm gì với "vec3 ReflColour" mà tôi nhận được từ việc phóng lại một tia trong raytracing / diễu hành hoặc sử dụng SSR / cubemap. Nó giống như các phương trình chỉ tính đến một điểm sáng / đèn chiếu nhưng không có ý tưởng cho đèn khu vực hoặc phản xạ. Dường như "đặc điểm" chỉ liên quan đến "chấm trắng" thay vì phản chiếu vì điều đó không có ý nghĩa = /
newin

@newin Trong mô hình PBR, specular và Reflection là các tên khác nhau cho cùng một thứ. Đó là một điểm nổi bật nhất định khi tia sáng chiếu vào, ánh sáng phản chiếu khi chiếu vào vật thể khác (hoặc môi trường). Đối với sự phản chiếu của bạn, nó phụ thuộc vào cách tạo ra tia. Bạn đang lấy mẫu ánh sáng trực tiếp? Đèn khu vực? Tích hợp BRDF chống lại và bản đồ môi trường? Hãy thử đọc Truy tìm đường dẫn lũy tiến với Lấy mẫu ánh sáng rõ ràng , có một câu trả lời dài có thể làm sáng tỏ một vài điều về quy trình.
Olivier

Vì vậy, nếu tôi hiểu chính xác rằng "vec3 ReflColour" nên được coi là một ánh sáng và nếu tôi muốn tạo ra lưới phát sáng, tôi chỉ nên đặt một giá trị> 1 trong suất phản chiếu và đó có phải là nó không? (Tôi đang cố gắng tích hợp PBR vào các kịch bản khác nhau, đầu tiên là một raymarcher nơi tôi muốn các lưới phát ra ánh sáng, cái còn lại là một công cụ trò chơi sử dụng SSR và có thể sẽ sử dụng các hình khối)
newin

@newin phát ra ánh sáng chỉ được thêm vào trên tất cả mọi thứ khác. Nó không liên quan đến BRDF. Nếu lưới của bạn không làm gì ngoài việc phát ra ánh sáng, bạn thậm chí không cần phải theo dõi bất kỳ tia nào nữa từ nó. Một suất phản chiếu lớn sẽ khuếch đại ánh sáng (sai về mặt vật lý), không tạo ra nó.
Olivier
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.