Sản phẩm bán chạy nhất

    Ray Tracing là gì? Tìm hiểu cách hoạt động của Ray Tracing

    Mới đây, NVIDIA đã công bố một loạt card đồ họa thế hệ mới dựa trên vi kiến trúc Turing. Đặc điểm nổi bật trong đợt ra mắt của vi kiến trúc lần này là kỹ thuật dò tia (Ray Tracing) được áp dụng. Vậy chính xác thì công nghệ dựng hình dò tia là gì, và nó khác biệt như thế nào với các công nghệ kiết xuất đồ họa hiện tại? Chúng ta cùng tìm hiểu bên dưới.

    Ray Tracing là gì?

    Ray Tracing là một kĩ thuật dựng (render) ánh sáng bằng cách truy theo các tia sáng (trace có nghĩa là đuổi theo, ray là các tia sáng). Bạn có thể tưởng tượng kĩ thuật này giống như cách bạn nhìn lên mặt trời, theo dõi các tia sáng của nó chiếu đi đâu, chiếu vào vật thể nào và cách nó đánh sáng lên những vật xung quanh. Ray tracing dựng lại quy trình đó nhưng trong môi trường số.

    Nói cách khác, ray tracing theo dõi các ánh sáng được hấp thụ, phản chiếu, tán xạ và phân tán bởi từng đối tượng trong môi trường, và nó không chỉ áp dụng với một luồng sáng từ mặt trời mà với mọi nguồn sáng khác nhauy (ví dụ: 2 cái bóng đèn trong căn phòng trong game, ánh lửa bập bùng của lò sưởi trong game, nguồn sáng nhân tạo được cố định khi dựng hình 3D...).

    Hiện nay kiến trúc Turing cùng với Ray Tracing vẫn đang là một dấu chấm hỏi lớn, được kì vọng là bước ngoặt mang tính cách mạng của thị trường GPU, những sản phẩm như vậy có khả năng diện kiến trong đa số PC ở tương lai hay không, hay giá cao ngút trời khiến ít ai có thể sở hữu và sử dụng?

    Rất khó để trả lời, vì mặc dù đã có những bài viết, những bài review cho 2 dòng GeForce RTX 2080 FE và GeForce RTX 2080 Ti FE, chúng ta vẫn phải đợi, thậm chí là cả những tựa game hỗ trợ công nghệ cao của card, ở đây là ray tracing. Bên cạnh đó, dòng card đồ họa chuyên nghiệp Quadro cũng được trang bị công nghệ mới này: Quadro RXT 8000, Quadro RXT 6000, Quadro RXT 5000, Quadro RXT 4000.

    Cách hoạt động của Ray Tracing

    Mục tiêu của ray tracing là tạo ra hiệu ứng chiếu sáng thực hơn, đổ bóng tự nhiên hơn, và dòng RTX của NVIDIA đã đạt được những kết quả ấn tượng, ít nhất là trong các màn demo ở lễ ra mắt. Một căn phòng bằng gỗ có cửa sổ đang mở sẽ sáng gần như đều cả phòng khi dùng phương pháp chiếu sáng truyền thống, còn khi bật ray tracing, những nơi có ánh sáng trực tiếp chiếu vào sẽ sáng hơn so với những góc khuất của phòng. NVIDIA cũng cho thấy cách mà ngọn lửa trong Battlefield V có thể ám vào người của nhân vật trong game và cháy xém cửa xe hơi rất thực.

    Ánh sáng không chỉ ảnh hưởng tới việc chiếu sáng, nó còn ảnh hưởng tới màu sắc, độ sâu, đổ bóng nữa. Nên khi việc chiếu sáng được giả lập sát với đời thực thì những yếu tố còn lại cũng được làm tốt theo. Những mảng đổ bóng trong game hiện tại nhìn khá gắt và rõ ràng, thiếu đi cái chuyển nhẹ nhẹ giữa những mảng sáng tối, và ray tracing chính là mảnh ghép giúp việc này trở thành hiện thực.

    Thuật Toán Cho Ray Tracing 

    Tạo ra một bản mô phỏng thế giới thực là một công việc rất phức tạp. Nó bao gồm nhiều yếu tố, như một số lượng vô hạn các chùm ánh sáng, phản chiếu các bề mặt, truyền qua các đối tượng, tất cả đều dựa trên các đặc tính phân tử của từng đối tượng, đấy là chưa kể đến trọng lực và tương tác vật lý. Việc mô phỏng thứ mang tính chất "vô hạn" như vậy nhưng lại chỉ sử dụng tài nguyên hữu hạn của máy tính hiện tại là hoàn toàn không cân xứng và bất khả thi.

    Ta gọi một hướng giải quyết cho vấn đề nêu trên là "rasterization", thay vì giải quyết vô hạn các hạt photon, việc xử lý bắt đầu bằng những hình đa giác. Càng nhiều đa giác tức tốc độ xử lý càng nhanh, và rasterization ở đây để biến hàng triệu đa giác kia thành một hình ảnh cụ thể.

    Nói ngắn gọn, nó tạo ra một bản mẫu 2D và tái hiện chúng trên thế giới 3D đã dựng sẵn. Trong đó, những hình ảnh 2D được tạo nên từ đa giác có thể bao phủ toàn màn hình khi nhìn gần, nhưng có thể chỉ bao phủ một vài pixel khi nhìn xa, từ đó tạo nên các điểm ảnh, kết cấu và nguyên tắc ánh sáng. Tất nhiên một kỹ thuật thì không thể bao quát được toàn bộ công việc.

    Các kỹ thuật khác nhau như bộ đệm Z (bộ đệm thứ cấp theo dõi độ sâu của mỗi pixel) giúp tăng tốc quá trình, tạo ra một công cụ giúp hàng triệu đa giác đã tạo ra có thể thấy, có thể sắp xếp và xử lý hiệu quả nhất có thể. Điều này có thể yêu cầu hàng triệu, thậm chí hàng tỷ phép tính cho mỗi khung hình mà chỉ GPU hiện đại với tốc độ xử lý teraflops mới có thể xử lý được.

    Ray tracing, tiếp cận vấn đề nêu trên khác với Rasterization, về mặt lịch sử, nó đã tồn tại trong khoảng 50 năm nay. Turner Whitted hiện đang làm việc cho NVIDIA, trong quá khứ đã phác thảo cách tính toán theo dõi đệ quy, đem lại hình ảnh ấn tượng bao gồm bóng, ánh phản xạ và nhiều thứ hơn nữa. Tất nhiên, nó sẽ phức tạp hơn rasterization cực kỳ nhiều.

    Ray tracing liên quan đến việc dò hướng đi của một tia (thường là tia sáng) khi chiếu nó vào thế giới 3D. Giả sử muốn xây dựng một vật thể, việc đầu tiên là xác định các tia sáng theo dõi đa giác tạo nên vật thể đó, sau đó tính đến các nguồn ánh sáng có thể tác động, đặc tính của đa giác như vật liệu, bề mặt phẳng hay cong, nói ngắn gọn là thêm bớt tia sáng.

    Quá trình này sau đó được lặp lại cho bất kỳ nguồn ánh sáng nào khác, bao gồm cả ánh sáng phản chiếu từ các vật thể có trong khung cảnh. Nó phức tạp đến nỗi, cần nhiều công thức để có thể dò được tia, cho cả các bề mặt trong suốt, bán trong suốt, ví dụ như: thủy tinh hoặc nước. Tất cả mọi thứ phải có giới hạn phản chiếu nhân tạo, vì dù là tia đi chăng nữa cũng không thể dò được toàn bộ vô hạn số photon kia.

    Thuật toán cho ray tracing được sử dụng phổ biến nhất, theo NVIDIA, đó là BVH Traversal: Bounding Volume Hierarchy Traversal giúp tăng tốc quá trình bằng cách khoanh vùng các đối tượng để xử lý, nói một cách khác là "chia để trị".

     

    Bạn có thể tham khảo mô hình con thỏ của NVIDIA sử dụng thuật toán BVH, chúng khoanh vùng từng cấp, chia các bộ phận vào từng khối hộp, nhỏ hơn và nhỏ hơn cho đến khi thuật toán có kết quả là một danh sách ngắn các đa giác, rồi sau đó mới đến công việc của ray tracing.

    Tuy nhiên khối lượng công việc phải đảm nhận khi thực hiện công việc này bằng phần mềm trên CPU hoặc GPU là quá cao. Một giải pháp thay thế là lõi RT, mỗi lõi RT đều có sẵn thuật toán cấu trúc BVH, giúp nó có khả năng xử lý công việc nhanh hơn gấp 10 lần so với lõi CUDA.

    Ngoài ra, cũng phải nói đến việc có bao nhiêu tia sáng dò trên một pixel, chỉ một tia thôi cũng dẫn đến hàng chục, hàng trăm phép tính, nhưng càng nhiều tia theo dõi thì công việc sẽ nhẹ đi, năng suất lại cao hơn. Các công ty như Pixar, cũng sử dụng công nghệ ray tracing để tạo ra hình hoạt.

    Một bộ phim dài 90 phút với tốc độ khung hình là 60 FPS cần đến 324,000 hình ảnh, mỗi hình ảnh lại mất vài giờ tính toán các tia đang theo dõi từng pixel một. NVIDIA sẽ làm như thế nào để đạt hiệu quả tương đương với thời gian thực như vậy? Ở trên đã đề cập đến sự xuất hiện của lõi RT, nhưng nếu như thế vẫn không đủ, câu trả lời là lõi Tensor chỉ có ở riêng kiến trúc Turing. Ví dụ đơn giản thôi, lấy khối lượng công việc là FP16, lõi Tensor đạt 114 TFLOPS trong khi FP32 thì CUDA chỉ có 14,2 TFLOPS.

    Nhưng tại sao lõi Tensor mới đủ trong việc ray tracing? Đó là AI và khả năng tự học, nói cách khác đó là tính năng Deep Learning Super Sampling cho phép trò chơi hiển thị ở độ phân giải thấp hơn mà không cần AA, sau đó lõi Tensor sẽ kế thừa và tác động đến khung hình, khử răng cưa để đem lại độ phân giải cao hơn.

    Lời kết, những tên tuổi lớn trong ngành render đã bước chân vào ray tracing như Epic, UE, Unity 3D, EA Frostbite. Thậm chí Microsoft còn tạo ra hẳn DirectX Ray dành riêng cho ray tracing. Với RTX, đây thực sự là một bước nhảy lớn trong ngành đồ họa máy tính, tất nhiên việc nó vẫn chưa hoàn thiện và việc trong vòng mười năm tới để có thể đặt RTX 2080 Ti tại thị trường như một dòng mainstream là hoàn toàn có thể.

    Công nghệ Ray Tracing trên dòng card đồ họa mới nhất của NVIDIA

    Công nghệ đồ họa hiện tại của NVIDIA và hầu như toàn bộ ngành công nghiệp là mô phỏng ánh sáng và hành vi của ánh sáng trong một khung cảnh nhất định, theo cách đơn giản hơn, gọi là Rasterization (kỹ thuật raster). Giống như một họa sĩ vẽ tranh, các đối tượng được hiển thị từng lớp, từ sau ra trước, vì vậy các đối tượng ở phía trước sẽ che khuất các đối tượng phía sau.

    Khác biệt về hiển thị giữa kỹ thuật Raster thông thường (trái) và kỹ thuật dò tia (phải).

    Tuy vậy, cách làm này sẽ gặp khó khăn khi dựng hình việc phản chiếu, bởi vì kỹ thuật raster sẽ không theo dõi và dựng hình được ánh sáng. Nó thường được sử dụng trong các khung cảnh thời gian thực bởi vì phần cứng hiện tại không đáp ứng đủ nhu cầu mô phỏng chuyển động của các khung cảnh phức tạp, ví dụ trong trò chơi điện tử hoặc hình ảnh động 3D.

    Trong khi đó, kỹ thuật dò tia dựng lại hành vi của ánh sáng khi nó đi tới các bề mặt, các vật liệu và các đối tượng chuyển động.

    Ánh sáng khi đi qua một khung cảnh có thể được kiết xuất và hiển thị phức tạp hơn. Với kỹ thuật dò tia, bạn có thể mô phỏng cách các tia sáng tương tác với những vật thể, tạo ra các hiệu ứng phản xạ, khúc xạ và tán xạ chân thực trong thời gian thực. Kỹ thuật dò tia thậm chí có thể phát hiện và hiển thị các kính khúc xạ, gương phản chiếu, hình dung ra nguồn gốc của ánh sáng trong khung cảnh và thậm chí cả màu sắc của ánh sáng sau khi đi qua đối tượng.

    Trên thực tế, kỹ thuật này đã được sử dụng trong thực tế, với những bộ phim như Monsters University của Pixar, Iron Man của Marvel. Nhưng đó là khi nó được sử dụng bởi những người dùng chuyên nghiệp, nhưng giờ nó đã được đưa tới với những người dùng phổ thông – một điều tưởng chừng không thể trước đây.

    Đây xứng đáng được gọi là một kỳ công của NVIDIA bởi vì công nghệ dò tia đòi hỏi một lượng sức mạnh điện toán khổng lồ. CEO của NVIDIA, ông Jensen Huang cho biết, đây là "bước nhảy vọt lớn nhất mà chúng tôi từng làm trong một thế hệ (card GPU)."

    Cách giải quyết vấn đề của NVIDIA là sử dụng kiến trúc Turing mới trong các GPU vừa ra mắt. Kiến trúc này được thiết kế để giải quyết vấn đề về xử lý. Các lõi dò tia chuyên dụng còn được trang bị thêm nhân Tensor Core, có khả năng sử dụng AI để suy luận phần hình ảnh "thời gian thực" – vấn đề cần nhiều sức mạnh tính toán nhất của kỹ thuật này. Vì vậy, các GPU có khả năng mô phỏng nhanh gấp 6 lần so với nền tảng Pascal trước đây (trên GTX 1080Ti).

    Đây thật sự là một bước nhảy lớn về công nghệ đồ họa và thật phấn khích khi bạn nghĩ đến việc các studio và các cá nhân giờ đây sẽ có thể mở rộng việc sử dụng kỹ thuật dò tia này để ứng dụng trong hoạt hình, trò chơi và mô phỏng khoa học.

    Cho dù hiện tại NVIDIA mới chỉ sản xuất các GPU mới này dành cho máy tính để bàn, rất có thể các laptop với công nghệ dò tia sẽ bắt đầu ra mắt thị trường trong năm tới – một khoảng thời gian chờ đợi không quá dài. Trên thực tế, một số trò chơi sắp ra mắt như Metro: Exodus đã có sẵn bản demo NVIDIA RTX để trình diễn khả năng dò tia theo thời gian thực của mình.

    Tổng hợp từ: Genk.vn

     

    Copyright © 2010 CÔNG TY TNHH DỊCH VỤ VÀ CÔNG NGHỆ HOÀNG HÀ. GPKD Số: 0107406972 Do Sở Kế Hoạch Và Đầu Tư Thành Phố Hà Nội Cấp