Khối lượng tuyên truyền ánh sáng: Lọc bất đẳng hướng dữ liệu âm lượng


9

Tôi đã triển khai thuật toán Khối lượng lan truyền ánh sáng Cascaded (chưa có bóng gián tiếp) để chiếu sáng toàn cầu khuếch tán theo thời gian thực chi tiết tại đâyđây . Nó hoạt động tốt nhưng tôi vẫn đang cố gắng sửa một vật phẩm cụ thể.

Tóm tắt ngắn

Bạn có thể bỏ qua điều này nếu bạn đã biết thuật toán hoạt động như thế nào.

Thuật toán hoạt động bằng cách lưu trữ thông tin chiếu sáng dưới dạng sóng hài hình cầu trong lưới 3D, trong đó ban đầu dữ liệu trong mỗi ô của lưới xuất phát từ việc hiển thị bản đồ bóng mở rộng ( bản đồ bóng phản chiếu) cũng bao gồm màu sắc và thông tin bình thường, bên cạnh độ sâu. Ý tưởng là về cơ bản tất cả các pixel được nhìn thấy bởi một nguồn sáng là nguyên nhân của lần chiếu sáng gián tiếp đầu tiên, vì vậy bạn lưu trữ thông tin cần thiết bên cạnh bộ đệm độ sâu thông thường bạn sử dụng để ánh xạ bóng và lấy mẫu tất cả dữ liệu để khởi tạo lưới 3D . Thông tin trong lưới 3D sau đó được truyền đi lặp lại bằng cách (cho mỗi lần lặp) truyền thông tin trong một ô tới tất cả 6 hàng xóm trực tiếp của nó (trên, dưới, trái, phải, trên, dưới). Để chiếu sáng cảnh bằng cách sử dụng thông tin trong lưới, bạn áp dụng chế độ toàn màn hình cho cảnh của mình và với mỗi pixel rasterized, bạn có vị trí không gian thế giới của bề mặt rasterized (ví dụ: từ G-Buffers trong bóng mờ bị trì hoãn), vì vậy bạn biết ô nào của lưới mà một pixel nhất định trên màn hình thuộc về.

Điều này hoạt động tốt với hầu hết các phần, đây là hai hình ảnh không có GI mô phỏng và chỉ là một thuật ngữ môi trường được mã hóa cứng, và bên cạnh đó là một hình ảnh với thuật toán LPV. Chú ý phản xạ màu trên bề mặt, chi tiết độ sâu tốt hơn, vv

nhập mô tả hình ảnh ở đây

Vấn đề

Khi tra cứu các ô trong giai đoạn chiếu sáng, phép nội suy tam tuyến (sử dụng bộ lọc kết cấu phần cứng) được sử dụng để nội suy trơn tru dữ liệu giữa trung tâm của ô, các ô lân cận và tọa độ kết cấu được tra cứu thực tế. Về cơ bản, phép nội suy này bắt chước sự lan truyền thông tin chiếu sáng ở trung tâm của một ô đến các pixel cụ thể xung quanh tâm nơi thông tin được tra cứu. Điều này là cần thiết bởi vì nếu không ánh sáng sẽ trông rất thô và xấu. Tuy nhiên, do phép nội suy tam giác không tính đến hướng truyền ánh sáng của thông tin chiếu sáng được mã hóa trong một tế bào (hãy nhớ rằng, trong sóng hài hình cầu), ánh sáng có thể được truyền không chính xác đến pixel nhìn lên. Ví dụ: nếu bức xạ được mã hóa trong ô chỉ lan truyền về phía (1,0,0) ("

Điều này gây ra hiện tượng chảy máu tường không chính xác khi kích thước ô trong lưới lớn so với các bề mặt trong cảnh (điều này là cần thiết vì bạn cần các tế bào lớn để truyền ánh sáng vào cảnh với càng ít lần lặp lan truyền càng tốt). Đây là những gì nó trông giống như:

nhập mô tả hình ảnh ở đây

Như bạn có thể thấy (từ bóng tối ở phía trên bên phải), cảnh được thắp sáng bởi một nguồn sáng định hướng ở đâu đó phía trên cảnh phía trên bên trái. Và vì chỉ có một tế bào ngăn cách bên ngoài tâm nhĩ và bên trong, ánh sáng chảy qua và bức tường bên trái được chiếu sáng không chính xác.

Câu hỏi thực tế

Tác giả đề xuất một hình thức lọc bất đẳng hướng thủ công để khắc phục điều này. Anh ta đưa ra một độ dốc bức xạ (tôi giả sử các hệ số SH được lấy mẫu từ ô hiện tại) theo hướng của bề mặt n bình thường như:

nhập mô tả hình ảnh ở đây

Và tiểu bang

Do đó, bằng cách so sánh đạo hàm hướng rạng rỡ với hướng rạng rỡ thực tế, có thể tính được liệu phân phối rạng rỡ có bắt đầu xa hơn nội suy tam giác của nó đối với điểm này hay không.

Những câu hỏi của tôi):

Trong phương trình, hàm c (x) dường như là các hệ số SH tại điểm (x). Vì vậy, độ dốc bức xạ dường như được tính như một đạo hàm số thông thường khi chênh lệch trọng số của các hệ số SH tại các điểm x - (n / 2) và x + (n / 2). Tuy nhiên, c (x) trong bối cảnh của tôi là gì? Hiện tại tôi đang giả sử rằng c (x) đề cập đến các hệ số được nội suy theo tam tuyến tại vị trí bề mặt (x), nhưng tôi không chắc chắn gì cả, vì tôi không biết làm thế nào để cung cấp cho bạn thêm thông tin về hướng phân phối các hệ số SH.

Và độ dốc đó được sử dụng như thế nào để thay đổi cách chiếu sáng lấy mẫu từ ô được áp dụng cho các bề mặt, chính xác? Tác giả chỉ viết "so sánh đạo hàm hướng rạng rỡ với hướng rạng rỡ thực tế", nhưng điều này khá mơ hồ.

Ông đề cập đến việc sử dụng "sơ đồ khác biệt trung tâm" và tham chiếu các slide này cho sự khác biệt trung tâm của các hệ số SH, và cũng tham khảo bài viết này cho thấy các dẫn xuất của gradient, nhưng ngay bây giờ tôi không thể rút ra bất kỳ kết luận hữu ích nào từ chúng.

Câu trả lời:


4

Sự khác biệt trung tâm đã được giới thiệu bởi một bài báo AMD khi họ thực hiện một số bản demo với pha lê bay trong áo dài, từ bộ nhớ.

Các cchức năng doesnt phải là cái gì chính xác, chỉ cần một ý tưởng về, ví dụ như, rạng rỡ, vì vậy chỉ cần đánh giá SH sử dụng hiện tại bình thường của bạn.

Sau đó, những gì bạn làm với điều đó, là bạn hạ giọng, sử dụng một yếu tố thực nghiệm, sự rạng rỡ sử dụng sự khác biệt này. Nhưng chỉ làm bạn xuống dốc nếu vi sai ngụ ý dòng ánh sáng đi xa khỏi mức bình thường hiện tại của bạn.

Về cơ bản, ý tưởng là để phát hiện thực tế rằng nếu bạn đi theo hướng trái ngược với bình thường của bức tường của bạn, dòng ánh sáng đang giảm dần, bởi vì nó lan truyền trong không khí (ở phía bên kia). Nhưng nếu bạn thăm dò một chút trước mặt bình thường của bạn, bạn sẽ thấy thông lượng giảm đột ngột, điều đó có nghĩa là tế bào bạn đang lấy mẫu bây giờ thực sự là một rò rỉ.

Tôi đã thấy rằng nó hoạt động trong 70% các trường hợp, nhưng nếu áp dụng một cách bất cẩn, nó có thể tạo ra các hiệu ứng lỗ đen rất lạ, hoặc dịch chuyển màu sắc (hồng, xanh lá cây ...) trên các khu vực rất tối có rò rỉ ánh sáng khác. Điều này là do bạn có 3 LPV cho mỗi màu, sự khác biệt trung tâm có xu hướng cho kết quả khác nhau. Nếu bạn có khả năng, hãy thử sử dụng độ sáng màu xám để đánh giá bộ giảm chấn khác biệt trung tâm và sử dụng hệ số khử chung cho tất cả các kênh màu sau này.

Nếu không có hack này, thông thường bạn sẽ không nhận được nhiều sự rạng rỡ, bởi vì thông thường bạn sử dụng để đánh giá SH trái ngược với hướng thông lượng. Tuy nhiên, như bạn nhận thấy, SH 2 băng tần được sử dụng trong LPV trên thực tế là không đủ và có một thành phần DC mạnh mang lại sự rò rỉ mạnh mẽ này. Đây là lý do tại sao LPV không thực tế đối với hình học không được kiểm soát chặt chẽ bởi nghệ sĩ nhận biết LPV, điều này sẽ cung cấp cho mọi bức tường một độ dày tối thiểu để giảm rò rỉ.

Ngoài ra, một số công ty (như enix vuông) sử dụng các bức tường chặn được thiết kế thủ công để tiêu diệt các rò rỉ, như khối lượng hình học sẽ cung cấp cho bạn. (âm lượng hình học giúp giảm rò rỉ, nhưng dự phòng RSM để khử độc cảnh là quá một phần trong hầu hết các trường hợp và tạo ra răng cưa ở cấp độ tế bào LPV, khiến cho rò rỉ trông thậm chí còn tệ hơn vì chúng thay đổi cường độ một cách kỳ lạ).

Bạn chỉ có thể giảm bớt và cố gắng giảm thiểu các vấn đề bằng cách cung cấp cho LPV một từ cuối cùng ít mạnh hơn trên ánh sáng gián tiếp cuối cùng, sử dụng một thuật ngữ không đổi có trọng số (0,5?) Và LPV có thể đóng góp cho 0,5 còn lại của gián tiếp ánh sáng. Cũng cố gắng thực hiện khối lượng hình học, nó sẽ làm giảm vấn đề. Và cuối cùng là sự khác biệt trung tâm.


như một sự cải thiện hơn 50% môi trường xung quanh không đổi, một kỹ thuật gọi là "BRDF xung quanh" (bởi tri-Ace) có thể được sử dụng.
v.oddou
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.