Tối Ưu Hậu Kỳ với Corona Render Elements
Việc xử lý hậu kỳ là yếu tố then chốt để tạo ra những hình ảnh render đẹp mắt. Và để làm chủ hậu kỳ, bạn không thể bỏ qua Corona Render Elements. Bài viết này sẽ cung cấp cái nhìn tổng quan về Corona Render Elements, dựa trên giáo trình Corona Render của Eke Training, biên soạn bởi Tuấn Eke.
Tổng quan về Corona Render Elements
Corona Render cung cấp hai elements mặc định là beauty và alpha, cùng nhiều elements tùy chọn khác có thể được thêm vào thông qua hộp thoại render trong 3ds Max hoặc file SCN standalone. Việc sử dụng thành thạo các render elements giúp tối ưu hóa việc sử dụng RAM, lên đến 64 bytes/pixel, tương đương khoảng 1GB cho hình ảnh 5000x3000px. Lưu ý rằng một số shading-derived render elements sẽ không hoạt động ở chế độ “Render only elements”.
Phân Tích Beauty Pass
Sáu passes dưới đây là cách đơn giản nhất để tổng hợp hình ảnh cuối cùng từ các passes trong Corona. Bạn cần render tất cả các passes bắt đầu bằng CESSENTIAL và kết hợp chúng bằng phép toán “add” trong không gian màu tuyến tính. Chúng chỉ được tính toán ở chế độ rendering thông thường và trả về màu đen ở chế độ “Render only elements”.
- Cessential_Direct: Tia nảy khuyếch tán chiếu sáng trực tiếp (tia sáng chỉ nảy một lần trước khi đến camera).
- Cessential_Indirect: Tia nảy khuyếch tán chiếu sáng gián tiếp (tia sáng nảy từ hai lần trở lên trước khi đến camera).
- Cessential_Reflect: Tia phản chiếu đến camera (cả trực tiếp và gián tiếp), bao gồm phản xạ bóng hoàn toàn và một phần.
- Cessential_Refract: Tia khúc xạ đến camera (cả trực tiếp và gián tiếp), bao gồm khúc xạ hoàn toàn và một phần.
- Cessential_Translucency: Ánh sáng trong mờ (cả trực tiếp và gián tiếp).
- Cessential_Emission: Tia sáng chiếu trực tiếp đến camera, không có tia nảy (ví dụ: từ nguồn sáng chiếu trực tiếp).
Phân tích Cessential Volumetrics trong Corona Render
Geometry Render Passes
Các Geometry render passes chứa thông tin hình học bổ sung, hữu ích cho việc masking, mô phỏng DOF/motion blur, khử nhiễu, và debug khung cảnh.
- CGeometry_NormalsDotProduct: Giá trị góc lệch giữa tia tới và pháp tuyến bề mặt. Màu trắng biểu thị bề mặt đối diện trực tiếp hướng nhìn, màu đen biểu thị bề mặt quay lưng lại.
- CGeometry_NormalsGeometry: Vector pháp tuyến bề mặt theo giá trị màu (RGB = (XYZ+)/2), tính toán trực tiếp từ khối hình học, không bao gồm bump mapping hay smoothing groups.
- CGeometry_NormalsShading: Vector pháp tuyến bề mặt theo giá trị màu (RGB = (XYZ+)/2), bao gồm hiệu ứng bump mapping và smoothing groups.
- CGeometry_UvwCoords: Tọa độ mapping bề mặt cho kênh được chọn, giúp kiểm tra tính gián đoạn của mapping.
- CGeometry_WorldPosition: Giá trị vector XYZ theo hệ tọa độ world của bề mặt theo giá trị màu RGB.
- CGeometry_ZDepth: Kênh z-buffer với giá trị depths min (trắng) và max (đen) tùy chỉnh.
CTexmap trong Corona Render
Masking Render Passes
Các Masking render passes dùng để mask các thành phần riêng lẻ của khung cảnh trong hậu kỳ. Chúng được render cả ở chế độ “Render elements only”.
- CMasking_ID: Gán màu ngẫu nhiên cho mỗi pixel theo các chế độ: Primitive ID (mỗi primitive trong mesh có màu khác nhau), Material ID (mỗi vật liệu có màu khác nhau), Instance ID (mỗi chi tiết trong khung cảnh có màu khác nhau).
- CMasking_Mask: Tạo rules tùy chỉnh để thêm/xóa chi tiết vào/ra khỏi mask, dựa trên material gbuffer ID, object gbuffer ID, hoặc chọn trực tiếp.
CMasking WireColor trong Corona Render
Shading Render Passes
Một số shading-related passes yêu cầu full rendering và không hoạt động ở chế độ “Render only elements”.
Corona Render Elements 1
- CShading_Albedo: (Không yêu cầu shading) Hiển thị albedo (độ phản xạ tổng cộng của bề mặt). Albedo quá cao có thể gây ra hiện tượng washed-out và tăng thời gian render.
- CShading_Alpha: (Yêu cầu shading) Sao lưu built-in alpha channel.
Corona Render Elements 2
- CShading_RawComponent: (Yêu cầu shading) Thành phần màu (diffuse, reflect, refract,…) chia cho CShading_SourceColor (giá trị input texture), thể hiện ánh sáng thô, chưa bao gồm color/texture bề mặt.
- CShading_Shadows: (Yêu cầu shading) Hiển thị shadows (phần năng lượng bị lấy đi bởi shadow ray). Màu trắng ở vùng có bóng đen.
- CShading_SourceColor: (Không yêu cầu shading) Giá trị màu input cho thành phần được chọn (diffuse, reflect, refract,…), đọc từ texture, tuân theo định luật bảo toàn năng lượng.
- CTexmap: (Không yêu cầu shading) Đánh giá texmap trên tất cả bề mặt/môi trường. Ví dụ: tạo pass AO bằng cách thêm CoronaAO texmap.