Setup Cấu Hình OpenColorIO ACEScg Trên Houdini

Tại Sao Phải Dùng ACEScg Hay OCIO

Dùng cho các hình ảnh đồ họa, việc render ra hình ảnh cuối cùng có không gian màu rộng, màu sắc phong phú, độ sáng linh hoạt thì quá tuyệt, nó làm cho hình ảnh thực hơn. Phần thực này được tạo ra bởi không gian màu ACES cung cấp. Hình ảnh render sẽ nhìn trông giống như mắt người thường nhận thấy về hình ảnh.

Về độ sáng chi tiết Highlights – Bởi vì màu sắc có vùng sáng dynamic range rộng hơn nên cả highlight và shadow sẽ có nhiều chi tiết được ghi nhận hơn. Render thông thường sẽ tối đen hoặc trắng bóc mất chi tiết luôn.

Màu sắc sẽ có gamut rộng hơn rất nhiều nên nhìn sẽ không bị quá tươi tắn, trông sẽ thật hơn vì giờ đây lượng ánh sáng ghi nhận rất rộng, cũng như mắt người thường nhận thấy được.

Thời gian làm việc, được rút ngắn hơn vì quá trình tinh chỉnh để đạt được sự chuẩn xác, hình ảnh trông realistic hơn khi dùng ACES sẽ luôn nhanh hơn so với quá trình tinh chỉnh trên hình ảnh render thông thường. Không cần phải chỉnh từng chi tiết, chỉ cần vận dụng hình ảnh với nguồn sáng và màu sẵn có. Như vậy thì làm việc sẽ vui hơn, cuộc đời tươi tắn hơn, làm xong về nhà không phải chịu áp lực, không ngán đi làm.

so sánh *trái qua phải* của không có ACES bị over expose (quá sáng, mất chi tiết), bên phải là có dùng ACES màu sắc và ánh sáng có chi tiết đầy đủ cho một vụ nổ. Render năm 2020 mà không dùng file trên 10bit với ACES thì nên cập nhật.

Thông Tin Từ Side FX

Với việc Open Color IO ngày càng phổ biến trong thế giới hậu kỳ và làm 3D, việc Side FX cho hỗ trợ chuẩn màu này cũng như các hãng khác đã và đang thực hiện như Autodesk với Maya, Arnold rồi Pixar Renderman, Chaosgroup V-Ray, gần đây thì Redshift cũng đã có thể dùng được, còn các chương trình hậu kỳ như Fusion, Nuke là mặc định đã có sẵn,

Adobe After Effect từ phiên bản 2018 trở đi thì cũng đã có xây dựng sẵn không gian màu này, nhưng nếu bạn đang dùng After Effect phiên bản thấp hơn thì cần phải đi đường vòng một tí, mình sẽ có bài sau về việc cài đặt vào dùng trong After Effect.

Blender cũng đã hỗ trợ cho OCIO từ những phiên bản 2.7x

OpenColorIO (OCIO) is an industry-standard open-source library for managing and translating color spaces.

OCIO is more powerful and flexible than Houdini’s default gamma and lookup table (LUT) support, and is recommended for professional use.

Từ SideFX document

Một hình ảnh sẽ gồm có khoảng sáng (dynamic range) và không gian màu (gamut) khi sử dụng các camera quay phim, trong thế giới 3D thì thường được biết đến với linear color và không gian màu chủ đạo. Thường sRGB rất hạn chết về gamut màu, dẫn đến là màu dễ bị quá tươi, hoặc hạn chế về dynamic range thì màu chỉnh sơ sơ đã nóng sáng cháy trắng bóc, mất chi tiết hình ảnh render.

Nếu muốn tìm hiểu rõ hơn thì các bạn nên xem qua liên kết sau đây về ACES.

Cho dù dùng 10bit màu hay 16 bit màu để thể hiện thị nội tại của hình render đã cháy sáng trắng bóc nên cái lượng data lớn đó cũng chỉ chứa cái cháy sáng đó. Bởi vậy cần phải đổi sang không gian linear color và primaries là ACEScg.  

hình ảnh render với không gian màu hạn chế, nguồn ảnh từ acescolorspace.com
hình ảnh render với không gian màu rộng ACEScg, nguồn ảnh từ acescolorspace.com

Rất dễ dàng nhận thấy việc sử dụng ACEScg sẽ cho ra màu thực hơn, nguồn sáng dịu hơn, không bị mất chi tiết, không gian gamut và dynamic range rộng đã giúp thể hiện được hình ảnh render trông thực hơn.

Qui Trình Làm Việc ACES Như Sau

Qui trình làm việc là tương tự cho mọi phần mềm, chỉ có phần cấu hình ngay tại bản thân phần mềm có thể sẽ khác nhau. Qui trình được diễn tả là “linear hóa” các file đầu vào. Mọi texture (thường là các file đang có không gian màu sRGB) khi đưa vào trong phần mềm 3D sẽ cần được thực hiện linear và cũng như hiển thị color profile là sRGB, điều này giúp rộng hơn không gian màu và hiển thị độ sáng mở rộng hơn khi nhận kết quả render. Quá trình thực hiện đầu vào sẽ chuyển đổi texture sang không gian màu ACEScg.

(Cho là màn hình của bạn đang là loại sRGB, nếu đang dùng đồ tối tân hơn thì bạn sẽ có không gian màu hiển thị theo màn hình, kiểu như các màn hình P3 hay Rec 2020.)

Đây là một minh họa cho qui trình chuyển đổi hình ảnh đầu vào sang ACEScg (linear) sau đó sẽ render và xuất ra.

Tải Về Và Cài Đặt ACEScg

Nếu các render đầu vào sử dụng texture thì việc cần làm chuyển đổi texture đầu vào thành chung luôn dạng linear space và gamut màu là ACEScg, cũng gọi là linear work flow.

hình ảnh minh họa linear workflow, ngoài cùng bên trái (trái qua phải) hình ổn, hình kế tiếp là xuất hình ra sai – tối thui, hình cuối cùng là lúc import hình vào vào không ok.
 
Cũng như vậy giống như trường hơp với các camera máy ảnh có footage được ghi từ nhiều nguồn camera thương hiệu khác nhau. việc khớp màu giống nhau là hoàn toàn rất mất thời gian, vô cùng khó khăn – tốn kém thời gian để cố gắng khớp, rồi đến các phiên bản 3D render được gửi qua cũng sẽ làm công việc càng trở nên lộn xộn.
dễ dàng nhận ra, các hình ảnh sau đây quay từ 4 thương hiệu camera khác nhau.
Mỗi video có một màu khác nhau (nước da mẫu nhìn rõ nhất)

ACEScg ra đời cho anh chị em 3D là để hỗ trợ khi làm animation/vfx sẽ có một workflow đơn giản, mà hiệu quả. (ACES là gì, coi ở đây nếu chưa biết)

Mục tiêu là nhằm khớp được các hệ thống màu khác nhau. Đây là cách setup đơn giản cho Houdini, tải về từ đây: https://github.com/imageworks/OpenColorIO-Configs

Chọn ACES_1.0.1 (hoặc bạn có thể dùng ACES_1.0.3), tải về, còn không tải hết

Có cái thư mục Bake trong đó, có thể xóa đi, nói chung có thể ảnh hưởng phần mềm NUKE khi load profile này, tuy nhiên nếu bạn không dùng NUKE thì không vấn đề gì (mà người ta đã kiểm tra thì thấy NUKE ko vấn đề gì với việc xóa thư mục BAKE đó). Thư mục đó tới 600Mb.

Tạo một thư mục ở C:\ (hoặc nơi lưu hệ điều hành), mở một thư mục tên OpenColorIO rồi chép các thứ mởi tải về vào. Như vậy sẽ có đường dẫn là C:\OpenColorIO

Cài Đặt Vào Houdini

Cách làm rất đơn giản, mở file houdini.env là file cấu hình của Houdini.

  • Đây là vị trí mà file cấu hình sẽ lưu tùy theo mỗi hệ điều hành:
    Linux:  ~/houdiniX.X/houdini.env
    Mac:  ~/Library/Preferences/houdini/X.X/houdini.env
    Windows:   %HOME%/houdiniX.X/houdini.env                                             
    Mở file đó ra với một phần mềm chỉnh sửa văn bản, mình hay dùng Sublime Text 3. Link tải Sublime Text về ở đây. Không dùng Microsoft Word để hiệu chỉnh thông tin nhé.
  • Tạo thêm một dòng ngay bên dưới các dấu #

    OCIO = "C:\OpenColorIO"

    Có dấu ngoặc kép.
  • Thêm thông tin về linear workflow: http://www.sidefx.com/docs/houdini/render/linear.htmlVậy là xong, khởi động Houdini, cách dùng như sau

Cập nhật 29 tháng 09/2020: tui vừa biết cách làm đơn giản, chỉ các bồ làm. 

[Windows OS]Thường trong Houdini gọi “home folder” tức là cái thư mục C:\Users\Administrator\Documents\[Houdini version gì đó ở đây]

Các bồ chép cái folder OpenColorIO vào thẳng thư mục “home folder” đó, setup biến môi trường như phía dưới đây là xong, Houdini tự nhận và chạy.

Setup Dùng ACES Trong Houdini

Ngay chỗ viewport, góc phải có một icon hình con mắt, click phải vào, chọn "Color Correction" sẽ hiển thị ra một trình đơn.

Click chọn chỗ mũi tên chỉ "Open Color IO"

Ngay chỗ chữ ACES bấm vô, nếu nó chưa hiển thị chữ đó, chọn Enable Open Color IO

Giờ phần viewport đã hiển thị màu ACES, tương tự cho MPlay. Khi render ra, cứ đảm bảo ACES thì qua các phần mềm hậu kỳ như Fusion, After Effect sẽ ổn. 

Setup Không Gian Màu Vào Windows / Hệ Điều Hành

Hoàn hảo hóa quá trình cài đặt, là setup cấu hình không gian màu vào windows, giúp các chương trình có liên quan dùng Open Color IO sẽ hiểu và nhận bộ không gian màu ACEScg. Gọi là setup biến môi trường của hệ điều hành.

Convert ACES Cho File Texture Đầu Vào

Có nhiều cách hiện nay dùng ngay trong Houdini, như dùng node VOP, COP, VEX để chuyển đổi file texture đầu vào từ sRGB sang ACEScg (đây là sRGB source trong trường hợp không biết nguồn color profile, source từ internet, source không phải file RAW hay chính bản thân ghi hình).Ngoài các kỹ thuật trên có thể dùng chương trình online để chuyển đổi color profile cho các file, như liên kết trang acescolorspace.com sau đây.

Cập nật 29 tháng 9/2020: Đây là cách làm đơn giản với một file HDRI của tui cho các bồ làm cho dễ. Ngay trong Houdini, dùng chức năng VOP theo chụp màn hình như sau. Dùng [Compositing Networks] của Houdini.

truy cập vào Networks compositing của phần Network view.

Tạo một Image Network, đổi tên cho dễ nhớ. Xong “dive” vào bên trong, tạo một network với các node sau đây. Đầu tiên có [File] để import đầu vào, sau đó là [VOP COP2 Filter] là một VOP network giúp xử lý việc chuyển đổi file image sang định dạng có hỗ trợ OCIO ACES, vả sau đó là export file ra với [ROP FILE OUTPUT]

giao diện compositing các node cần có để bắt đầu convert file sang chuẩn ACES

Sau đó “dive” vào phần network VOP chính là node [VOP COP2 Filter] rồi setup như sau. Là một cái VOP chỉnh các thông số RGB với cái lõi chính là convert bằng node [ocio_transform]. Phần setup của node ocio_transform tui có để thông số cho các bồ thấy. 

Có thể không cần chạy export ra file mà chỉ cần dùng lệnh gọi data của một network node thay cho gọi file trong network của Houdini (link tới tài liệu về việc gọi data của một node), ví dụ tạo một network của compositing ngay trong Geometry Network với setup như trên.

Xong dùng lệnh op:`opfullpath("../cop2net1/convert-OCIO/")` – tuy nhiên cách này sẽ rất chậm vì mỗi lần chạy là pre-cook cái file ra ổ cứng rồi mới bắt đầu build cái scene – tưởng tượng có 20 30 file texture, rất lâu. Tốt nhất build ra một file rồi gọi vào là nhanh nhất.

phương án gọi data của một node bằng lênh op:`opfullpath("../cop2net1/convert-OCIO/")`

Xong rồi cho chạy file ROP OUT PUT và cài vào các vị trí cần nhận file là xong. Trong trường hợp này của tui thì setup cho image base lighting tạo ánh sáng môi trường. Trước khi chuyển đổi sang ACES thì sai màu HDRI bị tối và màu sẫm, khi đã chuyển đổi đúng ACES màu sẽ chi tiết, đầy đủ. Kết quả trước và sau khi có ACES được sử dụng.

Tim van Helsdingen cũng có một video hướng dẫn cách convert texture color profile sang ACEScg.

Một Số Cheet Sheet Artist Cần Biết

Bạn muốn giữ màu y đúc như lúc chưa convert ? chọn: Utility – sRGB – Texture” cho các loại file sau đây:

  • Diffuse
  • SSS
  • Albedo
  • Spec
  • Metallicity

Bạn muốn giữ đúng giá trị số học của từng pixel trên hình, chọn Utility – Raw

  • Bump
  • Normal
  • Displacement

Bạn muốn hình như lúc mở ở Photoshpo ? chọn: Output – sRGB

Cho phần background, hình ảnh hay phần hậu kỳ 

Các Cấu Hình Hiện Có Của OCIO - OpenColorIO

raw
acescg
Utility – sRGB – Texture ( cũng chính là các file texture srgb_texture)
Utility – linear – sRGB ( cũng còn là lin_srgb )

raw có nghĩa là không có thực thi việc chuyển đổi (convert) nào. Đây là loại nên dùng cho các loại map mang tính dữ liệu numeric như displacement, normal map, bump map, mask, roughness, multimatte, cryptomatte

acescg là dạng không gian màu linear với không gian màu chủ đạo (primaries) ACES. Đây là loại cần chuyển đổi cho các map như diffuse, albedo hay SSS mà đã chuyển đổi sang không gian màu ACES.

Utility – sRGB – texture sẽ giúp chuyển đổi các hình ảnh sRGB của bạn sang không gian màu linear và cũng như các không gian màu chủ đạo (primaries) sRGB sang ACES. Điều này rất cần thiết nếu như hình ảnh đầu vào của bạn từ máy chụp hình, máy quay phim. Nếu bạn không chuyển đổi không gian màu chủ đạo, hình ảnh nhìn sẽ sai. Cũng cần biết là khi thực hiện lên convert này, giá trị màu trắng của bạn cũng sẽ bị “nén” xuống.

Utility – linear – sRGB không gian này sẽ chỉ chuyển đổi không gian màu chủ đạo (primaries). Rất cần thiết để chuyển đổi cho hình ảnh texture đang ở không gian linear nhưng có màu chủ đạo là sRGB. Điều này cũng rất tiện nếu bạn đang dùng file HDRI, thường các file này có không gian màu chủ đạo là sRGB.

Nếu bạn không thực hiện việc convert đúng cách, hình ảnh nhìn sẽ trật lất. Nếu cố gắng trình diễn không gian màu chủ đạo sRGB trên không gian màu ACES RTT, mọi hình ảnh sẽ bị quá tươi.

Cần hiểu khi dùng chữ sRGB là đang nói đến phần linear color và cả không gian màu chủ đạo sRGB, tức không gian màu cũ, rất hẹp về linear, rất hẹp màu. Khi nói đến ACES, tức đang nói đến linear color và không gian màu chủ đạo ACES mà sẽ hiển thị qua phần mềm 3D là dạng ACES sRGB (ouput đã nhận transformation, trong Maya là chọn sRGB Output Transform, Houdini là sRGB).

Điều này có nghĩa là so ra cuối cùng thì ngoại trừ data đã render ra là có vùng màu rộng hơn, vùng linear color rộng hơn nhưng vì do dùng màn hình thường nên sẽ dùng sRGB. Ngoại trừ khi bạn có một cái màn hình chỉnh màu quá chuyên nghiệp với sẵn color profile trên đó thì việc hiển thị là do bạn.

Túm lại, chuyển qua làm ACEScg thì hình ảnh của bạng sẽ có gamut màu rộng hơn (primaries, gamut), dynamic range lớn hơn (linear color). 

Một Số Tài Liệu Để Đây Tham Khảo Cho Các Phần Mềm Khác

  • Dùng cho Solid Angle Arnold: https://docs.arnoldrenderer.com/display/A5AFMUG/ACES+Workflow
  • Setup dùng vào Maya: https://answers.arnoldrenderer.com/questions/22630/aces-workflow-with-mtoa-2020-setup-srgb-textures-l.html
  • Setup cho Blender 2.82: https://www.toodee.de/?page_id=1720

Add Your Heading Text Here

Tổng hợp và biên soạn bởi Vũ Phạm (www.rainstormfilm.com)

Follow Vũ Trên Twitter

Vũ là nhà sáng lập, điều hành công ty làm phim quảng cáo và 3D hoạt hình Rainstorm Film. Chuyên môn của Vũ lâu năm kinh nghiệm trong lĩnh vực đạo diễn sản xuất làm phim quảng cáo, phim 3D diễn họa kiến trúc, hậu kỳ, thiết kếhay các hình ảnh phối cảnh kiến trúc 3D

Hiện Vũ đang hứng thú với thiết kế sử dụng Blender kết hợp Houdini tạo hiệu ứng destruction, fluid, magic và lập trình tương tác game trên Unreal Engine 4.

 

Post Author: Vu Pham