Tuesday, August 21, 2012

HƯỚNG DẪN SỬ DỤNG LINEAR WORKFLOW

hoc 3d huong dan su dung linear workflow | hoc 3d linear workflow | huong dan su dung linear workflow | su dung linear workflow the nao

Đã có rất nhiều người bàn về  Linear Workflow - LWF trên rất nhiều diễn đàn, cũng có nhiều bài hướng dẫn, giống nhau cũng có , xung đột với nhau cũng có. Bài viết này là 1 bài hướng dẫn tổng hợp do Hoc3d.vn đưa ra và đúc kết từ nhiều cách làm và đây cũng không phải là cách duy nhất hay nhất về LWF nhưng chúng tôi tin rằng đây là một bài hướng dẫn có ích và dễ hiểu nhất về LWF mà các bạn từng biết, đặc biệt là các bạn mới học 3d và tìm hiểu về LWF.

VẬY LINEAR WORKFLOW LÀ GÌ ?

hoc 3d linear workflow la gi | huong dan su dung linear workflow | su dung linear workflow the nao


Hãy nhìn 2 bức ảnh trên xem có gì khác nhau ? Thực ra nó chẳng khác gì nhau cả, chỉ khác nhau về cách hiển thị của Monitor thôi ^^.
Vray và 3ds Max xử lí dữ liệu của một bức ảnh trong một môi trường không gian tuyến tính, còn được gọi là Gamma 1.0, nhưng hầu hết các loại màn hình lại mặc định hiển thị cho bạn hình ảnh với Gamma 2.2 (sRGB), mà về cơ bản thì nó làm cho hình ảnh cảm giác bị tối đi mặc dù thực sự không phải chỗ nào cũng tối. Quá trình xử lý này giả định rằng bạn đang xem hình ảnh ở Gamma 1.0 thay vì 2.2, trừ khi bạn khai báo kiểu khác.
Thật không may đây cũng là một vấn đề của 3D, có nghĩa là rất nhiều người học 3d không biết về LWF đã mất nhiều thời gian để dàn dựng một cách thủ công nhằm cố gắng có được kết quả render thực nhất. Những thứ như bổ sung thêm đèn chiếu sáng nhiều hơn, tăng cường độ ánh sáng môi trường / tăng nảy bật GI, thêm một số đèn chiếu sáng xung quanh nhưng tắt bóng đổ vv vv tất cả những điều đó đã làm tăng thời gian tính toán và làm sai lệch ánh sáng thực tế cần có của 1 khung cảnh...Và bây giờ chúng ta đang nghiên cứu để khắc phục những vấn đề đó đây ! ^^
Vậy các bạn đã hình dung được LWF là gì rồi chứ ! Chẳng có gì gọi là đao to búa lớn để tốn nhiều giấy mực, chẳng có gì để phải khư khư giấu nghề. Nói 1 cách dễ hiểu nhất: chẳng quá nó chỉ là cách khai báo để màn hình hiển thị cho đúng mà thôi !

Bước 1: THIẾT LẬP TRONG 3DS MAX

TEXTURES và MATERIALS cũng cần phải được chuyển đổi sang Gamma 2.2. Nên lưu ý rằng bạn có thể dùng LWF mà không cần thiết lập đồng bộ tất cả các thông số, nhưng bạn sẽ rất khổ sở để điều chỉnh chính xác vật liệu bạn cần.
Vào cutomize/preferences/Gamma and LUT. Thay đổi setting như hình dưới.

thiet lap linear workflow trong 3d max | hoc 3d thiet lap linear workflow | huong dan su dung linear workflow | su dung linear workflow the nao


+ Enable Gamma/LUT Correction : Bật tính năng dùng gamma correction trong 3ds Max. Khi bật chức năng này ta mới có thể hiệu chỉnh các giá trị gamma cho ảnh map đầu vào và ảnh render khi save ra.
+ Gamma: 2.2.Gamma correct sẽ sử dụng giá trị này cho ảnh render. Giá trị này không có tác dụng với Vray frame buffer khi chưa kiểm sRGB
+ Affect Color Selectors : Đồng bộ giá trị gamma với bảng màu của 3ds max, các bạn sẽ thấy bảng màu mới có nhiều giá trị xám hơn (hay có thể nói các giá trị cận trắng sẽ nhiều hơn).
+Affect Material Editor : Đồng bộ giá trị gamma với bảng vật liệu của 3dsmax, các bạn sẽ thấy các ô vật liệu có vẻ sáng hơn
+ Input Gamma: 2.2 Gamma mặc định dùng cho ảnh map đầu vào.
+Output gamma): Sau khi gamma correct, ảnh render xong được save thành file vào ổ cứng. Giá trị này set bằng 1.0 khi dùng với VRay frame buffer.

MAP ĐẦU VÀO:

Hầu hết các hình ảnh bạn tìm thấy trên Internet hoặc từ máy ảnh kỹ thuật số của bạn sẽ được chuyển sRGB (gamma 2.2) để dễ dàng hơn trong quá trình giả lập (chuyển đổi ngay từ đầu). Một số tập tin là hữu tuyến tính (như HDRIs) sẽ không yêu cầu điều chỉnh đến 2,2, ảnh normal maps hay displacement cũng vậy vì nó sẽ không làm việc đúng cách. Đối với những loại ảnh này điều tốt nhất là để Gamma theo từng trường hợp khi import vào scene của bạn (xem hình dưới đây). Tức là khi input bạn có thể override tùy ý miễn sao sắc độ ảnh đầu vào theo cảm nhận của bạn là tốt - giá trị override càng cao thì ảnh sẽ càng tối. Đối với thư viện merger vào thì map sẽ tự dịch theo giá trị input.

hoc 3d huong dan su dung linear workflow | hoc 3d linear workflow | huong dan su dung linear workflow | su dung linear workflow the nao


Vậy là đã thiết lập xong Gamma 2.2 trong 3ds max, giờ chúng ta thiết lập trong bảng setting vray và render với VRay Frame Buffer.

Từ bước tiếp theo sẽ chia 2 cách:

BƯỚC 2 (cách 01): SETTING VRAY

Vào VRay’s ‘Color Mapping’ điều chỉnh Gamma thành 2.2 (giá trị này ảnh hưởng tới độ sáng của ảnh ở VRay frame buffer cả khi chưa kích hoạt và đã kích hoạt sRGB. Nó sẽ nhân với giá trị gamma ouput khi ta save ảnh nên 2.2x1=2.2 là kết quả đúng).Kiểm ‘Don’t affect colours (adaption only)’ (Giá trị gamma của color mapping không ảnh hưởng tới màu sắc, chỉ ảnh hướng tới quá trình tính toán khử noise)

thiet lap linear workflow trong 3d max | hoc 3d thiet lap linear workflow | huong dan su dung linear workflow | su dung linear workflow the nao


Bạn có thể dùng bất cứ Type nào trong color mapping khi sử dụng gamma 2.2. Linear trong type chỉ là tên 1 thuật toán tone mapping không phải nguồn gốc tên Linear work flow (LWF)
Tác dụng khi kiểm vào ‘Don’t affect colours (adaption only)’ là Gamma 2.2 sẽ không làm sáng ảnh cuối cùng, tuy nhiên V-Ray sẽ tiến hành tính toán như khi được làm sáng. Hiệu ứng này làm cho Vray tính toán khử noise tốt hơn bởi vì nó tính toán một khung cảnh sáng hơn, do đó các hình ảnh trong tối và ngoài sáng rõ ràng hơn. Nếu không kiểm nó tôi nghĩ rằng nhiều bạn sẽ kêu trời lên " Ôi tại sao dùng 2.2 ảnh lại bạc thế, quay về 1.0 thôi ! ".

Bước 3 (cách 01): VRAY FRAME BUFFER

Những hình ảnh bạn lưu ra vẫn còn ở dạng tuyến tính (Linear) dễ dàng điều chỉnh với VFB.
Vray Frame Buffer không bị ảnh hưởng bởi các thiết lập gamma của 3dsmax ở bước 1 nên ảnh render có thể trông vẫn rất tối.Bạn sẽ phải click vào nút sRGB ở dưới khung hình để cho nó sáng lên đúng với giá trị gamma khai báo trong Gamma ở bước 1. Lưu ý rằng đây chỉ là cách hiển thị chứ ảnh vẫn ở dạng tuyến tính.

hoc 3d vray frame bufer | hoc 3d thiet lap vray frame bufer  | huong dan su dung vray frame bufer  | su dung vray frame bufer  the nao


Như các bạn thấy, hình ảnh đã đươc hiển thị ở Gamma 2.2 và vẫn còn có thể điều chỉnh được với Vray Frame buffer.
Bạn thấy đấy, khung cảnh sáng lên ở mọi góc mà ko cần phải tăng cường đèn cũng như tăng các thông số nảy bật lên 1 cách thái quá khiến khung cảnh không được tự nhiên. Bạn cũng sẽ nhận thấy rằng hình ảnh không rực như trước. Cơ bản là bởi vì khi bạn muốn làm sáng các vùng tối bằng cách bổ sung thêm đèn chiếu sáng nó cũng tăng sáng ở vùng ánh sáng, vì vậy mà nó sẽ bị vượt quá màu trắng tinh khiết (255, 255, 255), tức là bị cháy.

Bước 4 (cách 01): SAVE ẢNH, ĐỊNH DẠNG FILE VÀ RENDERING:
Save ảnh với giá trị override là 2.2
Khi save ảnh tuyến tính, ở định dạng 8 bit sẽ rất tốt ở 1 số dải màu tuy nhiên sẽ không đủ cho toàn bộ bức ảnh. Bất cứ khi nào có thể hãy save nó ở dạng 16 hoặc 32 bit
Đừng bao giờ save ở dạng JPEG với ảnh tuyến tính bởi vì nó sẽ bỏ qua 1 số mã ảnh cần thiết khi dịch gamma.

hoc 3d vray frame bufer | hoc 3d thiet lap vray frame bufer  | huong dan su dung vray frame bufer  | su dung vray frame bufer  the nao


BƯỚC 2 (cách 02): SETTING VRAY

Vào VRay’s ‘Color Mapping’ điều chỉnh Gamma thành 2.2 (giá trị này ảnh hưởng tới độ sáng của ảnh ở VRay frame buffer cả khi chưa kích hoạt và đã kích hoạt sRGB. Nó sẽ nhân với giá trị gamma ouput khi ta save ảnh nên 2.2x1=2.2 là kết quả đúng).Không kiểm ‘Don’t affect colours (adaption only) để giữ nguyên tác dụng của color mapping, bạn có thể sử dụng bất cứ thuật toán color mapping nào mình muốn.

Bước 3 (cách 02): VRAY FRAME BUFFER

Không click vào nút sRGB ở dưới khung hình để ảnh không bị sáng lên vì đã sử dụng gamma 2.2 trong color mapping, nếu kiểm sRGB nữa thì ảnh sẽ bị thừa gamma (2 lần 2.2).

Bước 4 (cách 02): SAVE ẢNH, ĐỊNH DẠNG FILE VÀ RENDERING:

Save ảnh với giá trị override là 1.0

Chú giải bổ sung :
- Ảnh render ra sẽ có gamma = 1.0 và sẽ hiển thị ở gamma = 2.2, do đó bị tối đi (gamma và độ sáng là ngược nhau: gamma lớn hơn 1 sẽ làm hình tối đi và gamma nhỏ hơn 1 sẽ làm hình sáng lên). Vì vậy chúng ta gamma correct bằng cách làm sáng ảnh lên với gamma nghịch đảo của 2.2 (tức là 1 chia 2.2 = 0.45454).
Trong 3ds Max chúng ta khai báo gamma = 2.2 để nói rằng hình render sẽ được hiển thị với màn hình có gamma 2.2. Nhưng giá trị gamma thực sự mà V-Ray dùng để gamma correct ảnh render là 1 / 2.2 = 0.4545

Các thắc mắc thường thấy trong quá trình sử dụng
Hỏi: Dùng gamma 2.2 thì settings ánh sáng và vật liệu có khác gamma 1.0 không ?
Trả lời: Nếu dùng gamma 2.2 thì settings ánh sáng và vật liệu sẽ khác gamma 1.0. Dải màu tối sẽ bị ngắn đi nên cường độ ánh sáng và giá trị vật liệu cũng có xu hướng setting thấp hơn.

Hỏi: Khi sử dụng LWF ta thay đổi type của color mapping sang exponential thì độ sáng có thay đổi không ?
Trả lời: Bạn có thể dùng bất cứ Type color mapping nào với LWF, ko nhất thiết phải dùng Linear. Khi thay đổi TYPE thì ảnh được tone theo cách khác nhau nên sẽ có độ tương phản và rực màu khác nhau. Cụ thể exponential sẽ khống chế các vùng ảnh quá sáng hay quá tối về giá trị dải màu 0-255 để ảnh không bị cháy.

Hỏi: Khi merger object từ thư viện vào thì map sẽ chuyển thành gamma 2.2 hay vẫn giữ gamma 1.0 ?
Trả lời: Khi merger object từ thư viện vào thì map sẽ được correct theo giá trị Gamma input nếu ảnh gốc đã được thiết lập USE SYSTEM GAMMA. Điều này phụ thuộc vào người làm thư viện, nếu ảnh gốc đã được override 1 giá trị gamma nào đó rồi thì nó sẽ được giữ nguyên khi merger.


Chúc các bạn thực hiện thành công . Nếu có gặp bất cứ vấn đề khó khăn nào , hãy liên lạc với chúng tôi, hoặc để lại comment ở bên dưới . Chúng tôi sẽ giải đáp bất kỳ thắc mắc nào cho bạn . Thân !

- Hoc3d.vn-