Kiến thức : Tìm hiểu về High Dynamic Range

[ Bài viết này được đăng lần đầu tiên trên hiephoicgvn.com cách đây 1 năm, bây giờ tôi port nó sang đây, nội dung có thể bị thay đổi chút ít ]

Chắc các bạn ai cũng có lần nghe nói đến High Dynamic Range ròi nhỉ water slides for sale, nhưng chắc cũng có người ko hiểu rõ nó cho lắm, chỉ biết đó là 1 hiệu ứng đồ họa làm đẹp thêm cho các cảnh 3D, vì thế cho nên chúng ta sẽ đi sâu về nó 1 tí

Lướt qa những thứ sẽ đạt được khi dùng HDR :
Trước tiên ta fải biết xem thế nào là HDR, hay là khi có HDR thì hình ảnh sẽ như thế nào. Các bạn xem những tấm ảnh sau đây.

Trong tấm đầu tiên, là 1 cảnh của game Farcry, cảnh ở bên trái có ánh sáng rực rỡ và chói lòa hơn, tạo nên 1 viền sáng mờ ảo bao bọc lấy khe hở nơi ánh sáng từ đó chiếu vào, và át đi fần cạnh của khe hở đó.
Ảnh thứ 2 là hình 1 cái bình trà với bề mặt cực bóng và fản chiếu ánh sáng mạnh, tạo nên 1 qầng sáng rực rỡ ở nơi fản chiếu và át đi 1 fần bề của bình trà.
Ở ảnh 3, có thể thấy rõ sự “rò rỉ” ánh sáng từ bầu trời lên fần rìa của nhân vật, làm cho các đường nét của nhân vật mờ ảo hơn.
Ảnh 4 là cảnh trong 1 cái đền thờ, có thể mới nhìn vô sẽ tháy nó bình thường, nhưng nếu thử chụp cảnh này bằng máy ảnh chỉ với 1 lần chụp duy nhất, kết quả sẽ ko bao giờ được như vậy.
Và trong nhiều game hoặc cảnh fim hiện đại khác, nếu chú ý, ta sẽ thấy khi nhân vật đi từ trong cảnh tối nhìn ra ngoài trời sáng, ta sẽ thấy bầu trời nó sáng rực, nhưng khi bước hẳn ra ngoài trời thì ánh sáng nó tự động dịu lại. Ai chơi game nhiều sẽ thấy các hiệu ứng này rất rõ. Tất cả chúng mang lại 1 cái cảm giác huyền ảo, sinh động cho các cảnh game hoặc fim.

Nguồn gốc của HDR :
Đầu tiên là khái niệm Dynamic Range, các bạn có thể hiểu nó như là tỉ lệ giữa 2 giá trị bé nhất và lớn nhất có thể của 1 “lượng có thể thay đổi” nào đó. Đôi khi cũng có thể xem nó như là độ tương fản. Và trong ngành CG, giá trị này biểu trưng cho cái phạm vi “hiển thị” hoặc “thu nhận” ánh sáng của 1 thiết bị nào đó như máy ảnh, màn hình, máy chiếu, thậm chí là mắt của con người vv… Vì thế High Dynamic Range hay Low Dynamic Range ( LDR ) cơ bản nó được dùng để miêu tả khả năng hiển thị chân thực của các thiết bị CG.

Đi sâu 1 tí, mắt người có thể cảm nhận cảnh vật với 1 độ tương fản động rất cao là 1.000.000:1. Điều này có được là do mắt chúng ta có thể điều chỉnh được độ mở của con ngươi, từ đó điều chỉnh được lượng ánh sáng đi vào mắt, bởi vậy cho nên chúng ta có thể cảm nhận được các màu rất đen hoặc rất sáng. Và tất nhiên là mắt cũng có thể cảm nhận được cảnh vật với độ tương fản tĩnh rất cao là 10.000:1, cao hơn hầu hết các thiết bị hình ảnh hiện nay. Gi chú : Độ tương fản tĩnh là tỉ lệ giữa giá trị màu tối nhất và sáng nhất mà thiết bị có thể hiển thị hoặc thu nhận trong cùng 1 điều kiện ánh sáng , với trường hợp của mắt đó là mức độ nhìn cảnh vật sáng nhất và tối nhất trong cùng 1 độ giãn của con ngươi. Đối với các thiết bị như màn hình hoặc máy chiếu, độ tương fản của nó rất thấp, vì thế ngừi ta gọi chúng là các thiết bị LDR.

HDR nằm trong giai đoạn Post-process, giai đoạn cúi cùng của quá trình render. Trong CG nói chung, nó được gọi là HDRR ( HDR Rendering ), HDRL ( HDR Ligthing ) hoặc HDRI ( HDR Image ) để nói đến các bức ảnh tạo bằng kĩ thuật HDR. Nó thường đi kèm với Tone Mapping và kết hợp với nhiều kĩ thuật khác nữa như Depth of field, depth fog, motion blur, bloom, cross fade, heat haze, color filter trong Post-process. Trong game, tất cả chúng được gọi chung là Fullscreen Effects.

Tuy nhiên, nổi bật nhất khi đi với HDR là Bloom và Tone Mapping.

Trong những tấm ảnh fía trên đều có sự hiện diện của Bloom ( hay còn gọi là Glow ), 1 số game trong fần setting sẽ có nó như 1 tùy chọn về lượng hình ảnh, nó chính là hiệu ứng viền ánh sáng chói lòa và rực rỡ qanh vùng sáng chính. Trong thực tế, hiệu ứng này được gây ra bởi hiện tượng nhiễu xạ khi 1 luồng ánh sáng mạnh đi qa 1 khe hở của ống kính và đi vào thấu kính, khi đó ảnh nhận được sau thấu kính sẽ ko hoàn hảo như thật và bị hiện tượng “rò rỉ” ánh sáng ra xung qanh vùng sáng chính. Hịu ứng này tháy rõ nhất khi xung qanh vùng sáng chính hầu như ko có ánh sáng hoặc ánh sáng yếu. Trong các ảnh HDR, hiệu ứng này có thể được tạo nên bằng cách dùng fép làm mờ Gaussian Blur lên frame bản sao của frame gốc, frame bản sao này trước đó có thể đã được chỉnh sửa lại để chỉ còn các vùng sáng, sau đó fủ lên frame gốc lại.

Sau khi xem ảnh này ta sẽ nói về Tone Mapping.

Với những thiết bị có khả năg HDR thì nó qá xa tầm với của chúng ta, vậy là Tone Mapping ra đời để tạo ra những hình ảnh HDR có thể hiển thị được 1 cách xấp xỉ trên các thiết bị LDR. Bằng cách ánh xạ tập hợp màu từ HDR sang LDR và giảm độ tương fản từ ảnh gốc HDR, Tone Mapping đã khiến ảnh HDR có thể hiển thị trên LDR mà vẫn giữ được các chi tiết của ảnh. Ở đây cần nói rõ 1 tí, lấy ví dụ 1 cái máy ảnh, khi ta chụp các cảnh có độ tương fản cao như trong tấm ảnh trên. Khi mún chụp rõ cửa sổ, ta thường giảm độ fơi sáng xuống để vùng sáng cửa sổ bớt chói, nhưng cũng vì thế mà các vùng tối sẽ ko hiển thị rõ chi tiết do ko đủ độ fơi sáng cần thiết để bắt lấy lượng ánh sáng nhỏ nhoi từ các vùng tối.

Trường hợp mún chụp rõ trần nhà và tường nhà thì ta fải tăng độ fơi sáng lên, và như vậy cửa sổ sẽ sáng chói 1 màu trắng. Vấn đề ở đây chính là do máy ảnh ko thể cùng 1 lúc chụp được vùng qá tối cũng như qá sáng trong 1 độ fơi sáng nào đó. Vì thế, giải fáp của Tone Mapping là tổng hợp tất cả các bức ảnh chụp trong các điều kiện fơi sáng lại, và tính toán + hòa quyện sao cho ảnh cúi cùng đat được sẽ chứa các fần ảnh ko bị qá ngưỡng của các ảnh đầu vào, kết quả sẽ là ảnh mà ta thấy ở đầu bài. Dân nhiếp ảnh từng có fong trào chơi ảnh HDR kiểu này đấy, ko bik có bác nào trong forum mê nhiếp ảnh ko
Các game dùng HDR theo lối tương fản động, tức là thay đổi các giá trị fơi sáng của camera trong cảnh 3D tùy theo độ sáng môi trường.

Ứng dụng và sự fát triển của HDR :
Như đã nói, HDR ứng dụng nhiều nhất trong game thông qa các bộ Shader Model ( SM ) của DirectX.
Shader Model 1 – cái đầu tiên – xuất hiện trong DirectX 8, lúc này nó chỉ có khả năng tạo ra ánh sáng với độ chính xác 8-bit integer, ngĩa là chỉ tạo được 256 mức độ sáng. Hơn nữa do kiểu dữ liệu số nguyên integer nên nó sẽ ko chính xác với thực tế cho lắm. Đến năm 2002, DX 9 được giới thiệu với SM 2, lúc này độ chính xác của ánh sáng được nâng lên trong fạm vi từ 8-bits tới 24-bits, tuy nhiên vẫn dùng kiểu integer. Năm 2004, DirectX 9c ra đời với SM 3, độ chính xác ánh sáng nâg lên trong khoảng từ 32-bits tới 64-bits, và nhất là nó đã dùng kiểu dữ liệu dấu fẩy động floating-point. Đến thời của DX10 và SM 4, độ chính xác được nâg lên 128-bits. ( muốn bik rõ chi tiết của từng bộ SM thì hãy ngiên cứu SDK của directx )
Trong DX11 hiện nay đã dùng hệ màu RGB16 thay cho RGB8 – mỗi kênh màu 16bit thay vì 8bit như trước, vì thế các hiệu ứng HDR sẽ chân thật hơn bao h` hết, đón chờ 1 ngày mai tươi sáng của kỉ nguyên CG.

© 2009 – duyyudus – VIZVA

Tổng hợp.

One Response to Kiến thức : Tìm hiểu về High Dynamic Range

Leave a Reply

Your email address will not be published. Required fields are marked *

Tags

Archives

  • 2016 (4)
  • 2015 (22)
  • 2014 (39)
  • 2013 (59)
  • 2012 (134)
  • 2011 (240)