Kiến thức : Kỉ Nguyên Real-time Realistic Graphics

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

Thế nào là Real-time và Real-time Graphic :
Có lẽ các bạn ko ít thì nhiều đã từng nghe về thuật ngữ này. Nói đơn giản dễ hiểu, Real-time có nghĩa là thời gian thực big grin . Như thế nào là thời gian “thực”, “thực” ở đây có nghĩa là nó giống với thực tế, về yếu tố thời gian. Thời gian ngoài đời thực như thế nào thì thời gian trong “Real-time” nó như thế ấy. Nói cách khác, với bất cứ một khoảnh khắc nào ngoài đời thực trôi qua, thì cái yếu tố hay đối tượng mà ta xét “Real-time” nó cũng thay đổi theo, sao cho người quan sát hoặc tiếp nhận ko cảm thấy được cái sự đứt quãng giữa cảm nhận của họ và đối tượng đang xét cheap jumping castles.
Cứ thế, trong đồ họa cũng vậy. Real-time Graphic được hiểu như là việc tạo ra hình ảnh bằng máy tính sao cho quá trình tạo ảnh đó nó thay đổi liên tục theo thời gian, và kịp với cảm nhận của người xem. Để làm được việc này, cốt yếu chỉ là làm sao cho quá trình tạo ra hình ảnh bằng máy tính nó thật nhanh và liên tục, sao cho mắt người xem ko cảm nhận ược sự đứt quãng hay “giật hình” ( còn gọi là Lag ).

Non-real-time Graphic, ưu điểm và hạn chế :
Khác với Real-time, Non-real-time ko có sự ràng buộc về yếu tố thời gian, thời gian thay đổi của đối tượng ta xét nó lâu cỡ nào cũng được. Khi sử dụng trong đồ họa máy tính, cái sự ko bị ràng buộc về thời gian nó sẽ giúp quá trình tính toán được đầu tư nhiều hơn, và do vậy chất lượng của ảnh được tạo ra sẽ cao hơn rất nhiều. Điển hình là trong kĩ thuật Ray-Tracing, bằng cách phát ra các tia từ camera đến các vật thể, từ đó tính toán quỹ đạo và sự fản xạ của các tia sáng đến mắt người xem ( camera ), qua đó dựng nên được ảnh về các vật thể trong không gian 3D. Kĩ thuật này có thể tạo ra những bức ảnh có độ chính xác cực kì cao, tái hiện lại 1 cách chân thực nhất quá trình ánh sáng tương tác để tạo nên ảnh như trong đời thực. Tuy nhiên, việc fát ra hàng triệu tia ( thậm chí hàng tỉ tia ) sẽ gây nên 1 gánh nặng khủng khiếp cho thiết bị tính toán. Và kết quả là, fải mất hàng giờ, thậm chí hàng ngày để tạo nên 1 bức ảnh CG. Do vậy việc ứng dụng thực tế của Ray-tracing cũng như Non-real-time Graphic nó bị hạn chế rất nhiều do đòi hỏi quá cao về fần cứng cũng như thời gian.

Quá trình hiện thực Real-time Graphic :
Truyền thống thì khi sử dụng Non-real-time Graphic ( hoặc là Non-real-time Rendering ), quá trình tính toán và kết xuất hình ảnh sẽ được thực hiện chỉ bởi CPU của máy tính. Qua nhiều thế hệ CPU, từ đơn nhân cho đến đa nhân hiện đại, quá trình Render này vẫn là 1 gánh nặng lớn cho máy tính, dù cho bây giờ có đỡ hơn xưa với sự xuất hiện của Quad-core hoặc Multi-core. Bởi lẽ có quá nhiều thứ fải tính toán và tạo ra, việc Render luôn là 1 cơn ác mộng ko thể loại bỏ với những người làm đồ họa độc lập, ko sở hữu những hệ thống Render Farm khủng như của Holywood .
Với Real-time Graphic ( hoặc Real-time Rendering ), quá trình tính toán và kết xuất ảnh được thực hiện chủ yếu bởi GPU. Khi quá trình Render bắt đầu, GPU sẽ phân tách đối tượng đồ họa ra thành các thành phần đồ họa cơ bản nhất, mà thường là các Triangle. Sau đó việc tính toán, tô bóng, hiển thị lên màn hình..vv.. sẽ được thực hiện trên các Triangle này. Trong các cảnh 3D, số lượng Triangle có thể lên đến hàng triệu, thậm chí hàng tỉ, nhưng vấn đề này ko làm cho GPU chùn bước, vì các GPU có thể xử lý chúng. Nhất là với các thế hệ GPU cao cấp hiện nay có đến hàng trăm lõi xử lý song song. Cứ thế, việc tạo ra các ảnh CG với tốc độ cao đã được giải quyết. Có điều, chất lượng tạo ảnh của phương pháp này lúc ban đầu còn rất thấp, tuy nhiên với sự tiến bộ ko ngừng của các thế hệ card đồ họa-GPU, và sự phát triển vượt bậc của các bộ thư viện đồ họa, chất lượng của các bức ảnh CG Real-time đã và đang tiến dần đến mức độ “State of the Art” ( cấp độ cao nhất của sự phát triển ), thế giới thực ngày càng lộ rõ trên máy tính.
Mình hay dùng từ “ảnh CG” là để nói tổng quát, do các frame ( khung hình ) trong các ứng dụng Real-time 3D thực chất cũng là chỉ là những bức ảnh do máy tính tạo ra giống như ảnh được render = các soft 3D chuyên dụng như 3ds max..

Ưu điểm to lớn của Real-time Graphic và ứng dụng :
Con người luôn mơ ước về 1 thế giới do chính họ tạo ra, cái mà họ có thể thay đổi, tương tác, và làm bất kì điều gì trong nó như thể họ đang sống ngoài đời thực. Với Real-time Graphic, ước mơ đó ngày càng được hiện thực và ko còn là điều gì đó quá xa vời như xưa nữa.
Ưu điểm lớn nhất của Real-time là người dùng có thể tương tác 1 cách liên tục với các vật thể trong các cảnh 3D, tạo ra cảm giác được hòa mình vào 1 thế giới khác. Nó được ứng dụng chủ yếu trong các Video Game, và các soft mô phỏng chuyên dụng khác. Thực ra là khi các bạn chơi game là các bạn đã sử dụng Real-time, từ lâu ròi .

Real-time Realistic Graphic, thế giới thực trên màn hình máy tính :

Như đã nói trên, với sức mạnh của các GPU đứng đầu, cũng như khả năng của các bộ thư viện đồ họa hiện đại ( điển hình như DirectX 11 và OpenGL 4.0 ), thế giới thực mà chúng ta đang sống đang được tái hiện 1 cách hoàn hảo và chân thực nhất. Tất cả kết tinh trong các Game Engine Next-gen, cũng như trong các ứng dụng 3D với khả năg Real-time Rendering. Ta sẽ điểm qua 2 điển hình :

CryEngine 3:
Là 1 game engine, với các kĩ thuật render cao cấp như Dynamic Global Illumination, Deferred Lighting, Subsurface Scattering, Dynamic Soft Shadow, Natural Lighting, Normal Map và Parallax Occlusion Map, High Dynamic Range…Tất cả đều được xử lý và tính toán Real-time, tạo ra các cảnh vật siêu thực mà ta có thể tươg tác được như trong cuộc sống ( tất nhiên là fải có card đồ họa khủng ).

-MachStudio Pro:
Một sự đột phá trong ngành công nghiệp CG, với bộ công cụ này thì quy trình làm việc của các 3D artist sẽ ko còn như xưa, ko còn bị bó buộc bởi khả năng kĩ thuật, thiết bị và thời gian. Nó mở ra 1 cách làm việc phi tuyến tính. Người nghệ sĩ có thể tạo ra các tác phẩm của mình 1 cách mau hơn rất nhiều do tất cả mọi thứ mà họ làm việc và thao tác trên màn hình sẽ được render thời gian thực, hiển thị như thể nó đã được render sau cùng. 3D artist chỉ việc cho các model và animation vào, sau đó thiết lập các thông số render, các hiệu ứng như Global Illumination, Depth Map Shadow, Reflections and Refractions, Subsurface Scattering, Depth of Field, Material creation and manipulation, Displacement Mapping..vv.vv.. Tất cả sẽ thay đổi ngay lập tức ( hoặc sau 1 vài giây ) trên màn hình làm việc khi artist thay đổi 1 thông số nào đó của các thứ trên. Nói chung quá trình Render vốn ngốn hàng giờ, hoặc hàng fút giờ đây đã giảm xuống còn hàng fút và hàng giây, thậm chí là Milisecond.
Ngoài ra, MachStudio Pro còn cộng tác tốt với những soft 3D Full-package đứng đầu hiện nay như 3ds Max, Maya, Sketchup…
Trên hết, yêu cầu phần cứng cho những thứ trên chỉ là 1 card đồ họa có hỗ trợ DirectX 9c với VRAM >= 512Mb, đương nhiên với những card chuyên dụng dành cho CG ( như FireGL, Quadro ) thì sẽ tốt hơn. Giờ đây các artist có thể quên đi những Render Farm đắt tiền để yên tâm hiện thực những sáng tạo của mình .

P/S : Cho những người ko rõ: Render Farm là hệ thống gồm nhiều máy tính cấu hình cao được nối với nhau để cùng render, thường thấy trong các studio làm hoạt hình 3D, CG cinematic…

© 2009 – duyyudus-VIZVA

One Response to Kiến thức : Kỉ Nguyên Real-time Realistic Graphics

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)