Cách sử dụng subsurface scattering (hiện tượng phân tán lớp dưới bề mặt)? (volumetric absorption và scattering)
Subsurface scattering là gì?
Trong đồ họa máy tính, subsurface scattering là hiệu ứng ánh sáng đi xuyên qua một vật thể và phân tán vào bên trong, tương tác với vùng thể tích trong vật thể (thay đổi màu sắc hoặc cường độ) và ló ra ngoài. Tính chất này rất cần thiết khi rendering các vật liệu như skin, sáp ong hoặc milk.
Cách nó làm việc trong Corona ra sao?
Hiệu ứng SSS trong Corona được xử lý cực kỳ nhanh chóng, dễ dàng thiết lập và khả năng hoạt động với trình rendering tương tác. Không có các phép nội suy, tiền tính toán bổ sung, nhờ đó Corona luôn đem đến chất lượng kết quả xử lý SSS tốt nhất. “Scattering” (như trong sáp ong hoặc skin) và “Volumetrics” (như trong khói hoặc sương mù) trong Corona được thực thi với cùng một thuật toán rendering như nhau.
Trong Corona, 2 loại vật liệu có khả năng tạo hiệu ứng scattering là: vật liệu Corona Material tiêu chuẩn và vật liệu Corona Volume Material. Chúng sử dụng kỹ thuật rendering hoàn toàn tương tự nhau cho hiệu ứng subsurface scattering (hiệu ứng phân tán lớp dưới bề mặt).
Corona Volume là một vật liệu khối đơn giản dùng mô phỏng các chi tiết dạng sương mù mà không cần phải định nghĩa lớp bề mặt (khói, đám mây), trong khi các vật liệu Corona Material tiêu chuẩn dùng trong mô phỏng các vật liệu thông thường, đa chức năng với khả năng phân tán lớp dưới bề mặt (đối với các chi tiết khúc xạ, mờ đục hoặc trong suốt và có định nghĩa lớp bề mặt skin, sáp ong, trái cây, chất lỏng).
Kích hoạt hiệu ứng Scattering
1./ Vật liệu Corona Material tiêu chuẩn:
Để kích hoạt hiệu ứng scattering, trước tiên bạn cần cho phép các tia sáng đi xuyên qua bề mặt vật thể. Để thực hiện điều này, bạn có thể sử dụng các tùy chọn điều khiển về refraction, translucency hoặc opacity. Các vật liệu phân tán (scattering materials) chỉ nên được áp dụng lên các vật thể rắn và là một khối kín. Với các chi tiết cực mảnh, hãy sử dụng tính năng trong mờ (translucency) để thay thế.
Nhìn chung, với các vật liệu khối:
Refraction:
- Nên dùng cho các chi tiết có định nghĩa lớp bề mặt và có thông số khúc xạ IOR phù hợp như các chất lỏng (nước cam, sữa tươi) – các vật liệu vừa phân tán và khúc xạ ánh sáng – xem ví dụ 3,6,7 bên dưới
- Bạn cũng có thể sử dụng độ bóng khúc xạ (refraction glossiness) đi cùng với hiệu ứng scattering
- Refraction level=1 và IOR=1 sẽ cho ra cùng kết quả với opacity level=0, nhưng đồng thời nó cho phép cả phản xạ ánh sáng
- Refraction level=1 và IOR=1 sẽ cho ra cùng kết quả với vật liệu Corona Volume Material, nhưng đồng thời nó cho phép cả phản xạ ánh sáng
Translucency:
- Bạn nên dùng cho các chi tiết có định nghĩa lớp bề mặt (như skin hoặc trái cây) và một lớp scattering bên dưới – xem ví dụ 2 bên dưới
- Độ bóng khúc xạ (refraction glossiness) sẽ bị bỏ qua đối với translucency khi refraction không được sử dụng
Opacity:
- Khuyên dùng cho các chi tiết dạng thể tích, không khúc xạ ánh sáng và có một phần lớp bề mặt trong suốt, hoặc các chi tiết không có hình dạng cụ thể như đám mây, khói, sương mù – xem ví dụ 4 bên dưới
- Opacity level = 0 sẽ cho ra cùng kết quả với khi refraction level=1 và IOR=1, nhưng nó không cho phép phản xạ ánh sáng
- Opacity level=0 sẽ cho ra cùng kết quả với vật liệu Corona Volume Material
Sau khi kích hoạt ánh sáng được phân tán bên trong vật thể, bạn có thể đi đến bảng thông số “Volumetric Absorption and Scattering”. Để kích hoạt và xem hiệu ứng phân tán ánh sáng, bạn cần:
1. Thay đổi absorption distance về một giá trị khác 0
2. Chuyển đổi scattering color về một giá trị khác màu đen thuần
Các tùy chọn khác bao gồm:
Absorption color – là màu mà các tia sáng trắng ban đầu đạt được sau khi di chuyển một khoảng cách “distance” được chỉ định
Absorption distance – là khoảng cách mà sau đó các tia sáng trắng ban đầu sẽ đạt được màu chỉ định trong mục “absorption color”
Scattering color – màu của môi trường phân tán
Scattering directionality – tính định hướng cho việc phân tán. Giá trị 0 đồng nghĩa với việc phân tán đẳng hướng (“khuyếch tán – diffuse”). Giá trị dương sẽ phân tán về phía trước, giá trị âm sẽ phân tán về phía sau. Giá trị mặc định 0 là phù hợp cho hầu hết các môi trường phân tán, tuy nhiên với trường hợp đám mây, các giá trị dương sẽ đem đến hiệu ứng bừng sáng (silver lining)
Single bounce only – khi được kích hoạt, chỉ duy nhất một tia nảy (tia chiếu trực tiếp) sẽ được phân tán trong môi trường, kết quả có thể không được hoàn hảo (tối hơn) nhưng đem đến tốc độ rendering nhanh. Hữu ích khi rendering các tia “god rays”.
2./ Corona Volume Material
Vật liệu Corona Volume Material không yêu cầu một thao tác nào đặc biệt để kích hoạt hiệu ứng scattering cả vì nó đã được thiết kế dành riêng cho chúng rồi. Để xem hiệu ứng ánh sáng bị hấp thụ và phân tán trong vật thể, chỉ cần đơn giản là thay đổi giá trị absorption distance về một giá trị khác 0 và màu scattering color về một giá trị khác mày thuần đen. Bạn cũng có thể khiến khối vật liệu bừng sáng hơn bằng cách thay đổi giá trị “emission distance” về một giá trị khác 0. Vật liệu này chỉ nên được dùng cho các chi tiết không có hình dạng cụ thể như khói, đám mây, khối sương mù.
Emission distance – lớp bức xạ từ khối thể tích (hiệu ứng glowing plasma). Điều khiển bằng cách thiết lập giá trị “color” được phát ra từ mỗi giá trị “distance” mà tia sáng di chuyển được trong môi trường. Giá trị càng cao sẽ càng làm giảm cường độ bức xạ.
Single bounce only – khi được kích hoạt, chỉ duy nhất một tia nảy (tia chiếu trực tiếp) sẽ được phân tán trong môi trường, kết quả có thể không được hoàn hảo (tối hơn) nhưng đem đến tốc độ rendering nhanh. Hữu ích khi rendering các tia “god rays”.
3./ Global Volume Material
Để tạo hiệu ứng khối sương mù, bạn có thể sử dụng thiết lập “Global Volume Material” trong Render Setup > Scene > Scene Environment. Tốt nhất là nên dùng nó với vật liệu Corona Volume Material, tuy nhiên nếu sử dụng với vật liệu Corona Material tiêu chuẩn cũng có thể cho ra cùng kết quả.
Các ví dụ
1. Vật liệu “sáp ong”
Refraction level được sử dụng để kích hoạt hiệu ứng scattering vì vật liệu sáp ong không có các lớp bề mặt tách biệt.
2. Vật liệu – “skin”
Translucency được sử dụng để kích hoạt hiệu ứng scattering vì vật liệu skin có lớp diffuse tách biệt phủ lên trên các lớp scattering.
3. Vật liệu – “juice”
Refraction được sử dụng để kích hoạt hiệu ứng scattering bên trong vật liệu lỏng.
4. Vật liệu – “Khói”
Opacity được sử dụng để kích hoạt hiệu ứng scattering. Các chi tiết không được định nghĩa lớp bề mặt.
5. Hiệu ứng phát sáng – “ghost”
Corona Volume Material được sử dụng để kích hoạt sự phát xạ ánh sáng.
6. Juice – khi độ khúc xạ (refraction) được sử dụng.
7. Milk – với hiệu ứng subsurface scattering phảng phất nhẹ
8. Đám mây được tạo ra bằng cách sử dụng một displaced mesh và sử dụng vật liệu Corona Volume Material:
Download khung cảnh đám mây [ tại đây ].
8.A. Directionality = 0
8.B. Directionality = 0,58.C. Directionality = 0,9
8.D. Directionality = -0,5
8.E. Directionality = -0,9
8.F. Directionality = 0,8 đồng thời kích hoạt hiệu ứng “silver lining” khi ánh sáng mặt trời chiếu đến từ đằng sau đám mây.
9. Khối sương mù được tạo ra bằng cách sử dụng vật liệu Corona Volume Material trong mục Global Volume Material slot:
Lưu ý hiệu ứng “god rays” luôn được định hình bên dưới ánh sáng mặt trời.Cùng một khung cảnh được rendered không kèm với vật liệu Global volume material: