Ởtrong phần 1 của chuỗi bài viết, chúng ta đã tìm hiểu về cách tạo mới và hiệu chỉnh vật liệu đúng cách. Ở phần 2 này, chúng ta sẽ tiếp tục đi vào một yếu tố quan trọng nữa trong Corona Renderer, đó là ánh sáng.
Tương tự cách kiểm tra lỗi noise từ vật liệu, cách đơn giản nhất để kiểm tra bài có bị lỗi ở phần ánh sáng không là render không vật liệu (override material). Nếu thấy xuất hiện nosie nhiều gần các vùng sáng và vùng tối trong cả bài, các mép của bóng đổ, các phần phản quang gián tiếp…, thì khả năng cao thiết lập ánh sáng của bạn đã có vấn đề.
Để thiết lập được kịch bản ánh sáng tốt và tối ưu, trong bài viết này nghĩa là ánh sáng để render nhanh nhất có thể, chúng ta có một số gợi ý như sau.
MỤC LỤC
Quá sáng sẽ render chậm
Không phải lúc nào nguồn sáng càng nhiều mạnh thì render lại càng nhanh và ít nosie. Để làm rõ hơn về vấn đề này, tôi đã làm một thí nghiệm nhỏ.
Trong thí nghiệm về ánh sáng trực tiếp, khung cảnh được đặt trong một Cylinder kín, có ba nguồn sáng phía trên, và một bình trà đặt ở dưới. Trong thí nghiệm về ánh sáng gián tiếp, khung cảnh ở trong một Cylinder hở lồng trong một khối box kín, có ba nguồn sáng ở bên ngoài và thấp hơn Cylinder (ánh sáng gián tiếp phản xạ qua mặt trần của khối box). Tất cả các setting là như nhau, diffuse level của tất cả các vật liệu trong khung cảnh là 0.5.
Trong thí nghiệm, trong cả 2 trường hợp ánh sáng trực tiếp và ánh sáng gián tiếp, khi nguồn sáng thay đổi từ cực nhỏ đến trung bình, thời gian để render được 20 pass không hề thay đổi. Tuy nhiên, khi tăng nguồn sáng mức rất lớn, thời gian render đã lâu hơn gấp đôi và mất nhiều chi tiết. Tôi đã cố gắng phục hồi bằng photoshop, tuy nhiên nó đem lại rất nhiều noise và khiến ảnh bị bệt.
Vậy chúng ta có thể rút ra kết luận: cường độ nguồn sáng quá cao thì tốc độ render sẽ giảm đi đáng kể. Cường độ nguồn sáng quá nhỏ thì tốc độ render tăng lên không đáng kể và bài noise nhiều sau khi hậu kỳ. Sử dụng nguồn sáng có cường độ vừa đủ hoặc dưới mức trung bình một sẽ đem lại kết quả nhanh nhất, ít noise và dễ hậu kỳ nhất. Tức là hãy render ra một bức ảnh hơi tối rồi tăng sáng, nó sẽ nhanh hơn là siêu cháy rồi giảm sáng.
Càng ít nguồn sáng gián tiếp thì càng nhanh
Thay vì chiếu sáng trực tiếp lên vật thể, nguồn sáng gián tiếp được khuếch tán qua một môi trường khác, ví dụ như tấm gương, mảnh rèm, phản quang qua tường, trần, sàn, các vật thể khác…, rồi mới tới vật thể cần chiếu sáng.
Nguồn sáng gián tiếp không phải là một lỗi trong thiết kế, tuy nhiên, nó lại tạo ra nhiều noise và làm quá trình render chậm đi đáng kể. Vì thế, nếu có thể, hãy hạn chế các nguồn sáng gián tiếp bằng cách dùng các kỹ thuật chiếu sáng trực tiếp nhưng vẫn đạt kết quả như gián tiếp.
Kịch bản chiếu sáng càng đơn giản thì càng nhanh.
Tốc độ render phụ thuộc lớn vào kịch bản chiếu sáng. Kịch bản chiếu sáng phức tạp là khi:
- Có rất nhiều nguồn sáng, ví dụ 15, 20 nguồn sáng trở lên.
- Nguồn sáng có hình thù phức tạp, ví dụ 1 ấm trà được gán vật liệu Corona Light.
- Nhiều nguồn sáng gián tiếp tác động lên khung cảnh qua các vật liệu “sáng” như gương, tường trắng.
- Các nguồn sáng tương tác với nhau, ví dụ hai đèn đặt liên tiếp và một đèn được tích tùy chọn occlude other lights.
Với số lượng nguồn sáng, điều này thường bị phụ thuộc bởi thiết kế. Tuy nhiên chúng ta có thể gom một số đèn gần nhau thành chung 1 nguồn sáng để đơn giản hóa kịch bản sáng mà vẫn đạt kết quả tương tự. Ví dụ, thay 4 đèn tròn downlight đặt sát nhau bằng 1 đèn vuông, 5 sphere trong cùng 1 đèn tường thành 1 sphere, tắt Emit Light cho các vật thể phát sáng phức tạp như dây tóc bóng đèn, và thay nguồn sáng đó bằng đèn sphere, giảm bớt các nguồn sáng gián tiếp, tránh đặt các đèn chồng chéo lên nhau.
Ngoài ra, còn có 1 điểm cần chú ý, đó là sử dụng tùy chọn New Light Solver trong bảng Render Setup > Performance. Đây là một công nghệ đang được thử nghiệm ở Corona 3 trở về trước, chúng ta phải bật lên thủ công, ở Corona 4 nó được bật lên mặc định và có tên là Adaptive Light Solver. Khi tích vào tùy chọn này, Corona sẽ xác định đâu là nguồn sáng quan trọng, nguồn sáng chính, và sẽ dành nhiều sức mạnh xử lý cho nó hơn, từ đó tạo ra một bức ảnh ít noise hơn.
Không dùng Light Mix, tốc độ render sẽ nhanh hơn
Dù cực kỳ tiện dụng và dễ dùng khi muốn show nhiều kịch bản sáng khác nhau cho khách hàng, cũng như chỉnh sửa ánh sáng trực tiếp trong lúc render, nhưng Light Mix có làm giảm tốc độ render, kể cả khi có đầy đủ RAM.
Bên cạnh đó, với những file có nhiều đèn, nó chiếm một lượng bộ nhớ đáng kể và có thể gây crash nếu phần cứng không đủ đô. Vì thế, nếu chỉ render 1 view final, hãy cố gắng setting đèn chuẩn ngay trong scene, file sẽ render nhanh hơn.
Dùng Portal Light khi render nội thất có cửa sổ
Lưu ý quan trọng: nội dung này chỉ khả dụng cho Corona Renderer 5 trở xuống, do từ Corona Renderer 6 trở lên một tính năng mới gọi là Adaptive Environment Sampler đã được thêm vào để thay thể Portal Light.
Trong hầu hết tất cả các trường hợp, Portal Light sẽ giúp chúng ta tăng tốc độ render lên đáng kể khi render nội thất hoặc các khung cảnh bên trong nhà với nguồn sáng từ một ô cửa nhỏ. Có thể nói, Portal Light là một yếu tố bắt buộc nếu muốn tối ưu hóa file render của mình nhanh nhất có thể.
Cách tạo Portal Light vô cùng đơn giản, vẽ một tấm plane phẳng không có độ dày, không quan trọng hướng và cũng không quan trọng số lưới (tất nhiên càng ít càng tốt), sau đó tìm và gán vật liệu CoronaPortalMtl cho tấm plane chúng ta vừa tạo. Portal Light hoạt động tốt nhất khi tấm plane được đặt vừa khít hoàn hảo vào ô cửa ở chính xác mép ngoài của ô cửa sổ. Nó có thể được đặt bên ngoài ô cửa và kích thước xê dịch đi một chút, nhưng tuyệt đối không được đặt bên trong ô cửa sổ, vì thậm chí lúc này Portal Light lại trở thành một trong những nguyên nhân gây noise.
Portal Light cần được thêm vào tất cả các ô hở (tức là có ánh sáng môi trường đi vào), không chỉ trong view camera hiện tại mà ở tất cả các ô trong khung cảnh. Tuy nhiên, không phải lúc nào Portal Light cũng đồng nghĩa với nhanh. Portal Light sẽ chỉ giúp render nhanh khi làm đúng cách, nếu sử dụng sai cách thì tốc độ render sẽ tăng lên không đáng kể, và thậm chí có trường hợp còn làm chậm quá trình render đi và tạo ra các lỗi ánh sáng không đáng có.