Hướng dẫn Open PGL với Intel trong V-Ray

Hotline: 0902405791
Hướng dẫn Open PGL với Intel trong V-Ray

Phân biệt Open PGL và OpenGL

Open PGL và OpenGL là hai công nghệ khác nhau trong lĩnh vực đồ họa máy tính:

1. OpenGL (Open Graphics Library): OpenGL là một tiêu chuẩn lập trình đồ họa 3D và 2D, được sử dụng rộng rãi trong việc hiển thị và kết xuất hình ảnh trên các ứng dụng đồ họa. Nó cung cấp một tập hợp các hàm và giao diện lập trình để tương tác với phần cứng đồ họa và thực hiện các phép biến đổi và tính toán trên đối tượng 3D. OpenGL được hỗ trợ trên nhiều nền tảng và hệ điều hành khác nhau.

2. Open PGL (Intel® Open Path Guiding Library): Open PGL là một thư viện phát triển bởi Intel, nhằm triển khai các phương pháp hướng dẫn dò tia (path guiding) trong quá trình kết xuất hình ảnh. Open PGL cung cấp các công cụ và thuật toán để tăng hiệu suất và chất lượng của quá trình kết xuất thông qua việc hướng dẫn việc lấy mẫu tia sáng trong không gian 3D. Nó tập trung vào cải thiện quá trình kết xuất và tích hợp các phương pháp tiên tiến vào trình kết xuất hình ảnh đồ họa máy tính.

Intel® Open PGL hỗ trợ giao diện lập trình C và giao diện bao bọc C++ để giúp phát triển ứng dụng kết xuất hình ảnh. Thư viện được tối ưu hóa để hoạt động tốt trên các bộ xử lý Intel® mới nhất, sử dụng các tập lệnh SSE, AVX, AVX2 và AVX-512 để tăng hiệu suất tính toán.

Open PGL là một phần của Bộ công cụ Kết xuất Intel® oneAPI và đã được phát hành có bản quyền với Apache 2.0.

 


Path Guiding là gì?

Một trong những kỹ thuật phổ biến nhất để tạo ra những hình ảnh chân thực như ảnh thực tế trong các trình kết xuất hiện đại là phương pháp (unidirectional path tracing) (truy vết đường dẫn một chiều). Trong một mô tả đơn giản về phương pháp này, trình kết xuất truy vết các tia sáng từ vị trí của camera qua các pixel của hình ảnh vào trong cảnh.

Phương pháp ước tính quá trình các tia sáng được truyền tải trong cảnh, xác định giá trị/màu sắc của một pixel. Tại mỗi điểm va chạm của một tia với đối tượng trong cảnh, trình kết xuất tính toán ánh sáng trực tiếp phát ra từ các nguồn sáng(tia tới) và các tia bật từ bề mặt để tính toán ánh sáng toàn cục, phản xạ và khúc xạ.

 

Path_Guiding-1410x800-1.jpg

 

 

Trong một cảnh có chiếu sáng phức tạp và truy vết tia đồng nhất, chỉ có một số tia đến được các khu vực cần thiết và đóng góp giá trị vào tính toán hình ảnh. Điều này dẫn đến một kết quả nhiễu hạt. Hình ảnh kết xuất có thể trông thuyết phục nhưng rất nhiễu. Để giảm nhiễu xuống mức mong muốn, cần có đủ giá trị (Samples) trên mỗi pixel. Nhiễu thường tùy thuộc vào khả năng của trình kết xuất có thể khám phá ra quá trình truyền tải ánh sáng trong cảnh như thế nào, tức là khả năng tìm ra số tia bắn/tiếp xúc vào các vùng của cảnh góp phần đáng kể vào giá trị của một pixel (ví dụ: nguồn sáng hoặc các đối tượng phản xạ ánh sáng trực tiếp hoặc gián tiếp). "Độ khó/phức tạp" của ánh sáng đóng vai trò quan trọng - các cảnh với ánh sáng đồng đều cần ít Samples hơn để giảm mức độ nhiễu mong muốn so với các cảnh có ánh sáng gián tiếp phức tạp như một mảng sáng nhỏ được chiếu sáng bởi ánh sáng mặt trời.

Mặc dù công cụ dò tia rất tốt trong xử lý ánh sáng trực tiếp từ các nguồn sáng trong cảnh, ánh sáng gián tiếp từ bậ lai từ bề mặt sáng có thể cần nhiều Samples hơn để khử nhiễu. Điều này xảy ra bởi vì trình kết xuất không có thông tin về ánh sáng gián tiếp và thường phải dựa vào đặc điểm phản xạ cục bộ của vật liệu để khám phá nó.

 

Path_Guiding-1410x800-2.jpg

 

 

Với Path Guiding, nhiều tia đến được các khu vực có ánh sáng trong cảnh và đóng góp vào tính toán kết quả cuối cùng, dẫn đến một hình ảnh ít nhiễu hơn.

Path Guiding - Hướng dẫn truy vết-dò tia là một phương pháp để cải thiện chất lượng kết xuất bằng cách giúp trình kết xuất vượt qua hạn chế không có bất kỳ thông tin nào về ánh sáng gián tiếp trong cảnh.

Path Guiding ước tính gần đúng về chiếu sáng gián tiếp của cảnh chuẩn bị kết xuất hoặc trực tuyến trong các lần lặp lại kết xuất. Trong quá trình kết xuất, khi cần quyết định hướng bắn tia tiếp theo, thì sự gần đúng của ánh sáng gián tiếp được sử dụng để điều hướng các tia vào các hướng quan trọng (ví dụ: hướng tới các vùng sáng hơn của cảnh). Việc 'dẫn hướng' các tia này giúp giảm nhiễu đáng kể và làm mịn hình ảnh nhanh hơn, đặc biệt là trong các cảnh có ánh sáng phức tạp, chẳng hạn như ánh sáng vòm (Dome Light) trong V-Ray và Corona hoặc chọn tính toán Caustics (tụ quang) khi kết xuất.

 

Tại sao Vray sử dụng Open PGL?

Path Guiding là kết quả của nhiều thập kỷ nghiên cứu. Tuy nhiên, việc áp dụng trong kết xuất chỉ mới bắt đầu gần đây.

Thật không may, không tồn tại phương pháp hướng dẫn đủ mạnh mẽ và hiệu quả để được áp dụng rộng rãi trong toàn ngành. Đây là lý do tại sao Intel đã tạo dự án Intel Open PGL mã nguồn mở để phát triển, cùng với cộng đồng kết xuất, một khung hướng dẫn dò tia đủ mạnh và hiệu quả để sử dụng trong sản xuất hiện nay. Intel đặt mục tiêu làm cho dự án Intel Open PGL trở thành giải pháp hàng đầu cho hướng dẫn truy vết trong cộng đồng kết xuất, giống như Intel® Embree (embree.org - ray tracing/intersection kernels).

Chaos đã chọn triển khai Open PGL vì nó cho thấy kết quả đầy hứa hẹn và cung cấp một API cho phép nó được tích hợp dễ dàng vào các trình kết xuất sản xuất như Corona và V-Ray. Hơn nữa, trải nghiệm trước đây với dự án Embree đã chứng minh những lợi thế rõ ràng của giải pháp dựa vào cộng đồng kết xuất - một thư viện mạnh mẽ và hiệu quả với những người đóng góp từ nhiều ngành khác nhau.

 

Open PGL được phát triển như thế nào

Sebastian Herholz và Addis Dittebrandt, kỹ sư dò tia của Intel, lãnh đạo công việc phát triển chính. Đóng góp được cung cấp từ cộng đồng 3D và bây giờ là cộng đồng Chaos.

 

Chi tiết kỹ thuật và cách thức hoạt động

Open PGL của Intel ước tính sự phân bố ánh sáng của cảnh để hướng dẫn các quyết định lấy mẫu tại điểm giao nhau giữa các tia theo các hướng có tầm quan trọng cao (tức là với ánh sáng gián tiếp mạnh). Sự gần đúng về phân bố ánh sáng của cảnh hoặc được học trực tuyến trong quá trình kết xuất hoặc như khi tích hợp với V-Ray, trong quá trình lặp lại kết xuất trước.

Để thể hiện giá trị gần đúng của phân bố ánh sáng nhiều chiều (nghĩa là trường ánh sáng) của toàn bộ cảnh, trước tiên, miền không gian của cảnh được chia thành các vùng nhỏ hơn, trong đó mỗi vùng lưu trữ giá trị gần đúng của phân bố ánh sáng cục bộ. Các giá trị gần đúng này tương tự như các điểm dò ánh sáng, có giá trị cho các vị trí trong khu vực tương ứng của chúng.

Trong quá trình kết xuất, bất cứ khi nào một hướng mới được lấy mẫu, phân bố ánh sáng tại điểm giao nhau hiện tại sẽ được truy vấn và sử dụng để định hướng các đường dẫn theo các hướng quan trọng có đóng góp cao cho hình ảnh kết xuất. Bằng cách hướng dẫn các đường tương tác với các bề mặt và thể tích, Intel Open PGL tăng chất lượng lấy mẫu trong các tình huống chiếu sáng gián tiếp phức tạp như chiếu sáng khuếch tán nhiều lần dội lại, chiếu sáng đa tán xạ và cả các hiệu ứng tụ quang trực tiếp hoặc gián tiếp.

 

Triển khai OpenPGL trong Vray 6.1

V-Ray 6.1 triển khai phiên bản thử nghiệm ban đầu của Open PGL cho CPU của V-Ray. Hiện tại, các mẫu thử nghiệm được áp dụng với V-Ray’s light cache và có thể tìm thấy tùy chọn path guiding trong phần light cache settings:

 

Path_Guiding-1410x800-3-white.jpg

 

Điều này cho phép path guiding được sử dụng cho cả chế độ hiển thị progressive và bucket sau khi light cache đã được tính toán. Cả phản xạ khuếch tán- diffuse reflections (GI) và phản xạ bóng-glossy reflections đều có thể trở nên chân thực hơn bằng cách dẫn hướng đường đi, cũng như lấy mẫu ánh sáng gián tiếp. Mục đích giảm nhiễu ảnh từ các hiệu ứng như vậy để đạt được thời gian kết xuất nhanh hơn. Path guiding được hỗ trợ cho vật liệu VRayMtl, hiệu ứng khí quyển VRayEnvironmentFog và VRayVolumeGrid.

Bởi vì thư viện hướng dẫn dò tìm tia được tính trong giai đoạn light cache, nên việc tăng các light cache subdiv khiến thời gian hiển thị cuối cùng nhanh hơn do công cụ hướng dẫn có nhiều dữ liệu hơn để làm việc.

 


Kết quả

Path guiding vẫn đang thử nghiệm và đang được phát triển. Như vậy, kết quả phụ thuộc tùy cảnh - trong một số cảnh, nó có thể cải thiện đáng kể thời gian kết xuất trong khi ở những cảnh khác không giúp được gì nhiều. Kết quả tốt nhất mà chúng tôi thấy là trong các trường hợp cảnh được chiếu sáng thông qua ánh sáng gián tiếp. Dưới đây là một số ví dụ về các cảnh trong đó hướng dẫn dò tìm tia cải thiện thời gian kết xuất khá nhiều.

 

Ví dụ 1

 

Path_Guiding-1410x800-4.jpg

 

(Cảnh từ trang Turbosquid: http://www.turbosquid.com/3d-models/scenes-loft-3d-model/685003)

 

Path_Guiding-1410x800-5.jpg

 

Các kết xuất bên dưới cho thấy tác động của các light cache subdivs đối với hiệu quả của hướng dẫn dò tia. Nhiều light cache subdivs cung cấp nhiều mẫu tính toán hơn cho thư viện hướng dẫn dò tia để có thể dẫn hướng các tia tốt hơn trong quá trình kết xuất cuối cùng.

Path_Guiding-1410x800-6-white_new.jpg

Ví dụ 2

 

cathedral-1410x800.jpg

 

Kết xuất với ánh sáng adaptive dome light - path guiding thông qua Open PGL

(Cảnh nhà thờ Sibenik từ Cuộc thi Radiosity: (http://hdri.cgtechniques.com/~sibenik2/)

Trong ví dụ này, thời gian kết xuất đã giảm đi mặc dù ánh sáng phức tạp, hướng dẫn dò tia có tác động lớn hơn nhiều - điều này là do một phần lớn môi trường bị chặn do môi trường bên ngoài cảnh nội thất. Cảnh được đặt để kết xuất với 30 AA subdivs (tối đa 900 mẫu trên mỗi pixel) và ngưỡng nhiễu là 0,03. Hướng dẫn dò tia giúp giảm đáng kể số lượng mẫu cần thiết để đạt được mức độ nhiễu tương tự. Light cache được đặt để sử dụng 3000 subdivs (tức là 9 triệu mẫu hình ảnh).

 

Path_Guiding-1410x800-7.jpg

 

Đối với cảnh này, việc sử dụng giá trị light cache subdivs mặc định là 1000 không thực sự cho phép hướng dẫn dò tia cải thiện kết xuất đáng kể. Tuy nhiên, sử dụng nhiều subdivs hơn dẫn đến đường dẫn tốt hơn vì có nhiều thông tin hơn về cảnh.

Path_Guiding-1410x800-8-white.jpg

Phát triển trong tương lai

Mặc dù việc triển khai ban đầu đã được chứng minh là hữu ích trong một số trường hợp, nhưng sẽ có nhiều công việc khác cần được hoàn thành trong tương lai gần:

Cải thiện hiệu suất của path guiding để nó hữu ích cho nhiều cảnh hơn. Hiện tại, việc sử dụng hướng dẫn dò tia chung cho các cảnh, vì vậy nó không tiện dụng trong các cảnh mà GI/phản xạ không phải là nguồn gây nhiễu chính.

Mở rộng hỗ trợ cho nhiều loại vật liệu hơn, chẳng hạn như vật liệu VRayScannedMtl, vật liệu khúc xạ bóng và các loại khác.

Tiếp tục cải thiện trong quá trình kết xuất progressive để cải thiện đáng kể kết quả.

Kích hoạt tính năng path guiding cho GI brute-force dưới dạng tùy chọn " adaptive prepass".

 

Công nghệ dò tia tiên tiến

Tìm hiểu thêm về phần mềm dò tia tiên tiến khác trong Bộ công cụ kết xuất Intel® oneAPI, bao gồm Intel Embree từng đoạt giải Oscar, Intel® Open Image Denoise (được sử dụng trong The Addams Family 2), Intel® Open Volume Kernel Library, v.v. Tất cả các thư viện đều có sẵn từ Intel và ở dạng mã nguồn mở (GitHub).

Tìm hiểu thêm về Intel® Open PGL tại openpgl.org