Load OpenEXR Nhanh Hơn Trong Nuke Với Multi Part EXR

Bất cứ ai đã từng làm việc trong lĩnh vực hậu kỳ (Post Production) có sử dụng nhiều CGI để thực hiện các tác vụ compositing, render đều rất quen thuộc với tiêu chuẩn file Open EXR.

Thao tác khi render là đặt các sequence render với format EXR, sức mạnh của EXR có chứa nhiều thành phần gọi là các channel hỗ trợ dữ liệu tuỳ ý (arbitrary) mà nếu dùng 3DS Max gọi là Multimatte, Houdini gọi là AOV nếu dùng Arnold để render (Mantra gọi là Image Plane Component), một số ứng dụng 3D khác gọi là Pass, ví dụ như Blender.

Các channel này giúp sức rất mạnh mẽ cho quá trình hậu kỳ, giúp mọi tuỳ chỉnh đều dễ dàng hơn và không giới hạn về tư duy mỹ thuật thông qua kỹ nghệ.

giao diện hậu kỳ trong NUKE đang load rất nhiều channel khác nhau có trong một file EXR
giao diện hậu kỳ trong NUKE đang load rất nhiều channel khác nhau có trong một file EXR

Tuy nhiên có một đặc điểm, số lượng channel trong mỗi file OpenEXR càng nhiều, chương trình hậu kỳ chỉ riêng xử lý việc đọc file EXR đã là một cực hình – rất chậm. Phương pháp này gọi là Multi Channel EXR. Đây có thể nói là phương pháp cũ nếu các bạn hay làm lighting/render chưa biết, gọi là “old school”. Và đừng nói là Fusion, After Effects mà ngay cả Nuke cũng không thể nào lưu loát được với sequence file quá đồ sộ về tư liệu channel.

Với các phương án mới từ 5 năm gần đây, các phần mềm như Nuke, đã rất thành thục với một kỹ nghệ có sẵn trong OpenEXR (EXR 2.0), giúp load file nhanh hơn, đó gọi là Multi-part EXR.

Từ 2014, đã có bài viết về EXR 2.0 hỗ trợ Multi-part image files: https://www.fxguide.com/quicktakes/openexr-2-0-goes-deep/

Multi-part Image Files – With OpenEXR 2.0, files can now contain a number of separate, but related, data parts in one file. Access to any part is independent of the others, pixels from parts that are not required in the current operation don’t need to be accessed, resulting in quicker read times when accessing only a subset of channels. The multipart interface also incorporates support for Stereo images where views are stored in separate parts. This makes stereo OpenEXR 2.0 files significantly faster to work with than the previous multiview support in OpenEXR.

Tạm giải nghĩa như sau, multi layer EXR là một file đơn với format EXR có khả năng chứa nhiều hình. Đầu tiên hết ta có Multi Channel, đây là phương án chứa được rất nhiều các channel khác nhau của một tấm hình, lấy ví dụ như ('R', 'G', 'B', 'A', 'Z', 'Diffuse.R', 'Diffuse.G', 'Diffuse.B', 'Emission.R', 'Emission.G', 'Emission.B', 'GIRaw.R', 'GIRaw.G', 'GIRaw.B') . Ngay từ ngày đầu có sự tồn tại của format EXR, đây là phương thức duy nhất hiện hữu. Giờ hiện nay đã trở nên rất chậm chạp, chậm nhiều hay chậm ít là dựa vào số lượng channel.

Bây giờ một phương án khác tối ưu hơn, nhanh hơn là việc đọc toàn phần cả file EXR có gì bên trong.  Mỗi file EXR giờ đây lưu dữ liệu con bên trong file đơn format EXR đã xuất hiện, để thực hiện việc tạo ra format EXR đó gọi là Muti-part EXR, hình dung đây là rất nhiều tấm hình – part ở đây là đang nói về thành phần của một tấm ảnh, hoặc các tập ảnh con bên trong file EXR chứa, các tập con này chứa ngay bên trong một file format EXR.

Khi các phần mềm compositing thực hiện việc đọc, nó chỉ đọc vào phần (part) chỉ định, giúp cho các thao tác về xử lý đọc sẽ nhanh hơn rất nhiều lần. (hiểu thêm về Open EXR Multi Part do chính các tác giả note ở đây, bao gồm các file Stereo – làm hình ảnh định dạng 3-D chiếu rạp)

nuke read multi part EXR
giao diện nuke ghi ra file EXR multi-part

Đối với Nuke, đây đã là một cách native từ sau 2019, quá trình read một sequence EXR đồ sộ với Multi-part giờ nhanh hơn rất nhiều. Các người dùng sử dụng Fusion, After Effects, Black Magic Da Vinci thì để nhanh nhất là nên tách tất cả layer ra thành các sequence file riêng biệt (EXR per AOV), sẽ giúp đọc nhanh hơn do hiện tại multi-part EXR chưa được hỗ trợ trên các ứng dụng này, cũng như việc đọc file multi channel EXR thì quá đồ sộ và kéo chậm hẳn phần mềm compositing.

Lưu File EXR 2.0 Multi-part Từ Các Phần Mềm 3D

Về các phần mềm render (V-Ray, Arnold, Redshift, Mantra ..), hiện tại không phải phần mềm nào cũng đang hỗ trợ Multi-part EXR, các bồ cần dựa theo tài liệu của render để coi thêm. Như trường hợp của Houdini phiên bản 18, để có thể ghi được file Multi-part EXR, phần biến môi trường cần setup thêm một dòng sau đây:

HOUDINI_OIIO_EXR = 1
Liên kết đến thông tin giải thích: https://bit.ly/2YeZYZv
LOPs Network – KARMA luôn lưu EXR ở chế độ Multi-part

Một số giao diện render 3D hỗ trợ multi-part EXR

Giao diện hỗ trợ EXR 2.0 với multi-part EXR của V-Ray bên trong phần mềm Maya
giao diện v-ray lữu file EXR trên Maya hỗ trợ multi-part exr
giao diện v-ray lữu file EXR trên Maya hỗ trợ multi-part exr
Giao diện Cinema 4D render với Redshift có hỗ trợ Multi-part EXR
giao diện Cinema 4D Redshift 3D hỗ trợ multi-part exr
Tiếp tục cập nhật các render hỗ trợ EXR 2.0:
V-Ray 3.0 có hỗ trợ.
Arnold chưa hỗ trợ.
Redshift 3D có hỗ trợ, nhưng không hoạt động với tile assembly. (*Còn nghi vấn, cập nhật sau)
Render 23 chưa hỗ trợ.
Phần mềm làm roto SilhouetteFX có hỗ trợ.

Post Author: Vu Pham