anh sang gama

12
Linear Workflow: Gamma 2.2 trong VRay – Bí quyết thành công ! binlatAugust 26, 2012Kỹ thuật No Comments Linear Workflow: Hướng dẫn đầy đủ LWF – Linear Workflow… rất nhiều người bàn về LWF trên rất nhiều diễn đàn, cũng có nhiều bài hướng dẫn, trùng nhau cũng có và xung đột nhau cũng có. Bài viết này là 1 bài hướng dẫn tổng hợp và đúc kết từ nhiều cách làm và cũng không phải là cách duy nhất hay nhất về LWF như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 tìm hiểu LWF. VẬY LINEAR WORKFLOW LÀ GÌ ? 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à 3dsMax 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 ” nghệ sĩ ” 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.

Upload: luongthua

Post on 05-Aug-2015

870 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Anh Sang Gama

Linear Workflow: Gamma 2.2 trong VRay – Bí quyết thành công !binlatAugust 26, 2012Kỹ thuật No Comments

Linear Workflow: Hướng dẫn đầy đủ

LWF – Linear Workflow… rất nhiều người bàn về LWF trên rất nhiều diễn đàn, cũng có nhiều bài hướng

dẫn, trùng nhau cũng có và xung đột nhau cũng có. Bài viết này là 1 bài hướng dẫn tổng hợp và đúc

kết từ nhiều cách làm và cũng không phải là cách duy nhất hay nhất về LWF như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 tìm hiểu LWF.

VẬY LINEAR WORKFLOW LÀ GÌ ?

  

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à 3dsMax 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 ” nghệ sĩ ” 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.

Page 2: Anh Sang Gama

  

+ 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à

Page 3: Anh Sang Gama

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.

  

Vậy là đã thiết lập xong Gamma 2.2 trong 3dsmax, 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.2×1=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)

Page 4: Anh Sang Gama

  

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.

Page 6: Anh Sang Gama

 

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.

Page 7: Anh Sang Gama

 

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.2×1=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ụngHỏ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

Page 8: Anh Sang Gama

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.

(LÊ ANH TUẤN – WWW.VIETCG.COM – www.hoc3d.vn   biên tập và bổ sung từ David Fleet)

Các thắc mắc thường thấy trong quá trình sử dụngHỏ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.

(LÊ ANH TUẤN – WWW.VIETCG.COM – www.hoc3d.vn   biên tập và bổ sung từ David Fleet)

Các chú giải thêm về lý do các thiết lập và bản chất của vấn đề:

Về lý do tại sao màn hình được thiết kế với gamma 2.2Dưới đây mình xin giải thích vì sao màn hình có gamma = 2.2 và vì sao chúng ta phải thực hiện color

correction:

Hãy giả sử màn hình máy tính của chúng ta là màn hình trắng xám đen, không có sắc, chỉ có cường độ

sáng tối.

Cường độ tối nhất là màu đen, có giá trị là 0,0

Cường độ sáng nhất là mày trắng (trắng tuyệt đối), có giá trị là 1,0

Các giá trị ở giữa 0,0 và 1,0 là các màu xám. Giá trị càng lớn thì càng sáng, ví dụ màu xám 0.6 sẽ sáng

gấp đôi màu xám 0.3

Dải màu đen – xám – trắng ở trên là một dải màu liên tục (hình 1)

  

Hình 1

Tuy nhiên trong máy tính chúng ta không thể thể hiện dải màu này một cách liên tuc mà phải chia ra

các bậc thang (hình 2)

Page 9: Anh Sang Gama

  

Hình 2

Dùng càng nhiều bậc thì sự chuyển màu sẽ càng mịn. Vậy chúng ta cần số lượng bậc vừa đủ để đảm

bảo sự mịn màng này và tránh hiện tượng “vân gỗ” (banding). Nhưng nếu chọn nhiều bậc quá thì sẽ

tốn memory. Ở hình 2, chúng ta có thể nhận thấy hiện tượng “vân gỗ” banding do hình này chỉ dùng

32 bậc màu.

Trên thực tế, người ta dùng 256 bậc để thể hiện dải màu đen-xám-trắng. Các bậc này được đánh số

thự tự 0, 1, 2, 3, …., 255. Tuy nhiên, 256 bậc này được phân bố như thế nào trên dải màu? Cách phân

bố hiển nhiên nhất là phân bố đều: chúng ta cứ việc chia dải mày ra 256 bậc thang đều nhau. Có nghĩa

là:

- Bậc số 0 ứng với giá trị 0,0 (màu đen)

- Bậc số 1 ứng với giá trị 1,0 (màu trắng tuyệt đối)

- Bậc số 128 ứng với giá trị 0,5 (màu xám “giữa”, tiếng Anh gọi là mid-grey)

Đây là cách phân bố linear (tuyến tính). Sở dĩ gọi là tuyến tính (thẳng) là vì nếu vẽ biểu đồ thể hiện giá

trị màu của mỗi bậc thang, chúng ta sẽ có một biểu đồ đường thẳng (Hình 3)

  

Hình 3

Tuy nhiên nếu chỉ dùng 256 bậc và phân bố đều như trên thì không đủ để đảm bảo sự chuyển màu mịn

màng ở những vùng tối (chúng ta có thể phần nào quan sát thấy hiện tượng này ở hình 2, ở đây chúng

ta thấy khu vực sáng có sự chuyển tiếp màu một cách mịn màng hơn khu vực tối)

Tại sao lại như vậy? Tại sao chỉ có vùng tối là bị hiện tượng banding, còn vùng sáng thì vẫn mịn. Lý do

là vì trong điều kiện ánh sáng tối, mắt người nhạy với sự thay đổi ánh sáng hơn. Ví dụ: khi cúp điện vào

Page 10: Anh Sang Gama

ban đêm, nếu thắp 1 ngọn nến lên chúng ta sẽ dễ dàng phát hiện ra ngọn nến đó, vì nó quá nổi bật

giữa màng đêm. Tuy nhiên giữa ban ngày trời sáng, nếu thắp nến thì ánh sáng của ngọn nến ít gây chú

ý hơn. Chính vì vậy mà khi xem phim hay trong rạp cinema, người ta tắt hết đèn đi đển mắt người có

thể nhận biết độ tương phản trên màn hình một cách tốt nhất.

Để tránh hiện tượng banding ở vùng tối, chúng ta có thể dùng nhiều hơn 256 bậc, nhưng làm vậy sẽ

tốn memory. Nếu dùng 256 bậc, thì chúng ta chỉ tốn 1 byte của memory để thể hiện giá trị màu của 1

pixel. 1 byte là rất lý tưởng.

Vậy nếu không tăng số lượng bậc thang lên cao hơn 256, chúng ta có thể thay đổi cách phân bố các

bậc thang. Thay vì chúng ta phân bố đều như trên, thì chúng ta phân bố không đều: ưu tiên nhiều bậc

thang hơn cho vùng tối, và ít bậc thang hơn cho vùng sáng. Cách phân bố này gọi là phân bố gamma,

và được dưa trên phép toán luỹ thừa. Trên thực tế, cách này sẽ cho kết quả dải màu mịn, không bị

banding mà vẫn chỉ dùng 256 bậc thang.

Vậy nếu vẽ biểu đồ thể hiện giá trị màu của mội bậc thang, chúng ta sẽ có kết quả như hình 4.

  

Hình 4

Quan sát biểu đổ trên, chúng ta thấy cách phân bố gamma ưu tiên nhiều bậc thang để thể hiện các giá

trị màu tối hơn là sáng.

Để biết được bậc thứ n có giá trị màu là bao nhiêu trong cách phân bố gamma. Chúng ta trước hết tính

xem là nếu dùng phương án phân bố đều, n sẽ cho giá trị màu là bao nhiêu, sau đó chúng ta luỹ thừa

giá trị màu này lên gamma.

Ví dụ, bậc số 128 sẽ cho giá trị màu 0.5 nếu sử dụng phương án phân bố đều. Khi luỹ thừa lên gamma

= 2.2, chúng ta sẽ có giá trị khoảng 0.22, đây chính là giá trị khi dùng cách phân bố gamma.

Page 11: Anh Sang Gama

Vậy ví dụ như trong photoshop chúng ta tô một pixel với giá trị màu 128, thì pixel đó chỉ phát ra ánh

sáng với cường độ 22% của với mức maximum mà màn hình cho phép. Kết quả này là theo hệ phân bố

gamma 2.2 của màn hình. Nếu giả sử màn hình sử dụng phân bố đều (còn gọi là gamma 1.0), thì màn

hình sẽ phát ra độ sáng là 50% của mức mamximum mà màn hình cho phép.

Giá trị gamma không nhất thiết là 2.2. Vi dụ màn hình của Apple lúc trước hay dùng gamma = 1.8.

Nhưng giờ đây hình cũng chuyển sang dùng 2.2. Và 2.2 được xem là mức gamma chuẩn khi dùng

linear workflow.

Vậy chúng ta đã hiểu bản chất gamma 2.2 của màn hình. Tiếp đến chúng ta xét đến V-Ray.

V-Ray cho kết quả render theo gamma 1.0 (bậc thang phân bố đều). Nghĩa là nếu V-Ray render một

bức hình nội thất mà trong đó bức tường có bậc màu là 150, và sàn nhà có bậc màu la 75 thì đáng lẽ là

khi nhìn vào bức hình render này, mắt chúng ta phải cảm thấy tường sáng gấp đôi sàn nhà (vì 150 lớn

gấp đôi 75), nhưng vì màn hình hiển thị màu ở gamma 2.2, nên 150 sẽ không còn sáng gấp đôi 75 nữa.

Vì vậy chúng ta phải triệt tiêu tính chất gamma 2.2 của màn hình. bằng cách biến hình render từ

gamma 1.0 thành gamma 0.45 trước khi hiển thị. Gamma 0.45 và gamma 2.2 triệt tiêu nhau, cho kết

qua gamma 1.0 mà chúng ta muốn.

Ví dụ: Vray render ra bức tường có giá trị ở bậc 128. Bậc 128 này là bậc ở ngay chính giữa của thang

màu gồm 256 bậc. Vì vậy chúng ta muốn các pixel của bức tường này có giá trị 0.5 khi hiển thị ra màn

hình (tức là các pixel sẽ phát ra độ sáng ở mức 50% so với mức maximum mà màn hình cho phép). Vậy

chúng ta sẽ luỹ thừa 0.5 với gia trị gamma = 0.454545, sẽ được giá trị là 0.73 (ứng với bậc thang số

186 của cách phân bố đều). Khi hiện thị ra màn hình với gamma 2.2, bậc thang số 186 sẽ cho giá trị

màu của pixel là 0.5 (như trong biểu đồ ở hình 4), đây chính là kết quả mà chúng ta muốn.

Vậy chúng ta có thể thấy gamma correction trong V-Ray là để trừ hao cho sự khác biết giữa gamma

1.0 của V-Ray và gamma 2.2 của màn hình máy tính.

Về Việc không cần gamma correct các ảnh map dạng trắng đen (bump, specular, glossiness, alpha)Theo tiêu chuẩn thì các ảnh map trắng đen đều được save ở hệ màu tuyến tính chứ không phải sRGB,

vì vậy nếu correct các ảnh này khi import vào 3ds max thì sẽ sai với ý đồ cua người thiết kế ra các ảnh

này.

Các bạn có thể thử open các hình này trong photoshop, và kiểm tra color profile của nó để thấy là color

profile của nó là Dot Gain (là một profile tuyến tính) chứ không phải là sRGB.

Vì vậy, khi load các ảnh bump hay specular vào trong max, phải dùng override gamma với giá trị 1.0

(hoặc chọn là “use image gamma”)

Dĩ nhiên là nếu người thiết kế thư viên ảnh bump cố ý save các ảnh đó ở sRGB thì vẫn cần phải correct

khi load vào mad. Nhưng theo tiêu chuẩn save ảnh map thì ít ai làm vậy.

Lý dó mà chỉ có diffuse map (và environment map dạng Low dynamic range) phải cần sRGB, là vì

những hình này sẽ đùng để hiển thị truc tiếp ra màn hình, vì vậy cần sRGB để hạn chế banding. Còn

bump, discplainemnt và specular không phải là các ảnh dùng để hiển thị trực tiếp rà màn hình, mà

dùng đề tính toán độ cao thấp, độ phản xạ của bề mắt vật liệu, vì vậy không cần bận tâm đến chuyện

banding

Page 12: Anh Sang Gama

Khi load HDRI bằng công cụ load của VRayHDRI thì nó tự động hiểu là 1.0. Chỉ khi load theo browser

của 3ds max thì mới phải override gamma 1.0 (hoặc chọn là “use image gamma”)

(NGUYỄN PHƯỚC LONG – WWW.VIETCG.COM – www.hoc3d.vn  )