[Keyshot] Tìm hiểu về render caustics cùng GPU trên Keyshot 

Iworld.com.vn gửi tới độc giả bài viết về render caustics trên Keyshot. Bài viết này sẽ đi sâu phân tích về những điểm tạo nên sự khác biệt của đồ họa caustics được tạo từ Keyshot, và lợi ích đạt được từ sự tiên tiến trong công nghệ GPU.

Trước tiên ta hãy cùng tìm hiểu “Caustics” nghĩa là gì nhé. 

Caustics

Định nghĩa về Caustics

Caustics, hay còn gọi là tụ quang, là một trong những hiện tượng ánh sáng đẹp nhất mà tự nhiên mang đến. Caustics được hình thành dưới dạng khúc xạ ánh sáng xuyên qua hoặc phản xạ ngược từ các bề mặt quang phổ. Chẳng hạn như ánh sáng chiếu nét qua một ly rượu cognac, ánh sáng lung linh dưới đáy hồ bơi hoặc thậm chí cả những chùm ánh sáng từ cửa sổ hắt vào môi trường bụi bặm. 

Lịch sử hình thành Caustics

Tác giả bài viết đã trích lại lời chia sẻ của Dr. Henrik Wann Jensen về câu chuyện của chính ông.

“Tôi đã bị mê hoặc hoàn toàn bởi Caustics trong một thời gian dài. Sự nghiệp trong mảng đồ họa máy tính của tôi bắt đầu sau khi tôi tham dự một bài phát biểu chủ đề của Peter Shirley (tại thời điểm đó là giáo sư thỉnh giảng tại đại học Cornell). Người đó đã nói rằng chúng tôi không hiểu về cách tạo caustics, ngoại trừ một vài cảnh đơn giản như caustics trên một mặt phẳng khuếch tán. Tại thời điểm đó tôi còn là một sinh viên, và tôi đang nghiên cứu một thuật toán có tên là Photon mapping (ánh xạ photon) với mục đích chỉ để khám phá, nhưng điều tôi đang làm chính xác là điều mà Peter Shirley đã nói. Tôi không nghĩ rằng nó sẽ hữu ích vào thời điểm đó, nhưng bài phát biểu của anh ấy khiến tôi suy nghĩ khác, và tôi bắt đầu xuất bản các bài báo với trọng tâm là render caustics. Cảnh caustics tôi chọn tại lúc đó là một ly cognac như được thấy trong hình 1. Vài năm sau đó, tôi đã làm việc với Per Christensen và chúng tôi quyết định mở rộng photon mapping để render các volume caustics (có thể hiểu là caustics chất lỏng) như trong hình 2. 

Hình 1: Caustics được hình thành khi ánh sáng được hội tụ qua một ly rượu cognac. Đây là hình ảnh nghiên cứu ban đầu từ năm 1995

Hình 2: Caustics trong môi trường do ánh sáng hội tụ qua một quả cầu thủy tinh gây ra. Hình ảnh nghiên cứu từ năm 1999

Photon mapping hoạt động bằng cách truy vết các photon từ các nguồn sáng vào cảnh và lưu trữ các photon khi chúng tương tác với các bề mặt hoặc chùm khối trong cảnh. Bước thứ hai là render cảnh bằng thuật toán ray tracing (hoặc path tracing) sử dụng các photon để tính toán caustics và các thành phần ánh sáng khác. Thuật toán photon mapping gốc có thể render caustics đẹp và tạo nên sự chiếu sáng bao trùm, nhưng thuật toán này bị giới hạn ở số lượng photon có thể được sử dụng để render một cảnh cho trước. Tôi đã làm việc cùng với nghiên cứu sinh tiến sĩ của mình tại UC San Diego, Toshiya Hachisuka, để khắc phục hạn chế này và dẫn đến sự phát triển tiến bộ hơn của photon mapping.

Hình 3: Một khối phản xạ trên mặt phẳng khuếch tán. Hình ảnh bên trái hiển thị cảnh không có caustics, hình ảnh giữa render cảnh có caustics với phương pháp vật chắn không gian đơn giản và hình ảnh bên phải hiển thị giải pháp ánh sáng toàn diện bao gồm cả caustics và phản xạ của caustics trong khối lập phương.

Photon mapping tiên tiến là thuật toán caustics đầu tiên có khả năng render hiệu ứng chiếu sáng tổng thể và caustics trong các cảnh. Để minh họa, hình 3 cho thấy một khối lập phương phản chiếu đơn giản trên một mặt phẳng khuếch tán được chiếu sáng bởi một chùm sáng. Nếu khối lập phương này được render bằng cách sử dụng kĩ thuật path tracing, nó sẽ trở nên thiếu caustics do ánh sáng phản xạ từ khối lập phương lên mặt phẳng khuếch tán. Các thuật toán tiên tiến hơn như bidirectional path tracing (tạm dịch: dò tia hai chiều), metropolis light transport có thể render hiệu ứng caustics trên mặt phẳng khuếch tán, nhưng không có phương pháp nào trong số này có thể render ra sự phản chiếu của hiệu ứng caustics này lên khối lập phương ( có thể gọi là ánh sáng tương tác theo trình tự phản chiếu- khuếch tán- phản chiếu). Một số “physically based renderer” (tạm dịch: render dựa trên vật lý) hiện tại chỉ có thể hiển thị các hình caustics giống như hình ảnh giữa ở dưới và thiếu khả năng render ra được sự phản xạ của các caustics. Photon mapping tân tiến có ưu điểm ở chỗ có thể render mọi thứ bao gồm cả sự phản xạ như trong hình bên phải trong hình 3. Thuật toán của kĩ thuật photon mapping tân tiến được minh họa trong hình 4.

Hình 4: Photon mapping tân tiến là thuật toán đầu tiên có khả năng chiếu sáng toàn cảnh trong các cảnh phức tạp. Nó hoạt động bằng cách kết hợp nhiều đường truyền sáng, trong đó mỗi đường truyền bao gồm các photon tỏa ra từ nguồn sáng vào cảnh và render ra một ảnh có thể làm bật lên photon map

KeyShot đã sử dụng kĩ thuật photon mapping tân tiến kể từ khi nó được ra đời,và KeyShot đã có tích hợp khả năng render caustics chỉ bằng một cú nhấp chuột kể từ lần phát hành đầu tiên. KeyShot hiện đang sử dụng bản phát triển mới hơn của photon mapping tân tiến để thích ứng [3] để tính toán caustics trên điều kiện chiếu sáng gián tiếp phức tạp. Thuật toán này khá phức tạp và nó đòi hỏi các cấu trúc dữ liệu cũng phức tạp để theo dõi các photon, và thuật toán này chỉ chạy trên CPU.

Caustics trên GPU

Chẳng bao lâu đã đến năm 2018, tôi đã tham dự bài phát biểu NVIDIA, nơi CEO Jensen Huang giới thiệu công nghệ dò tia phần cứng RTX mới. Ông cũng cho mọi người thấy một màn trình bày tương tác của phần cứng mới bao gồm caustics. Sau bài phát biểu, tôi đã nói chuyện với Jacopo Pantaleoni (một nhà khoa học nghiên cứu tại NVIDIA), người nói với tôi rằng anh ta phải thực hiện caustics cho phần trình bày vì Jensen Huang đã yêu cầu nó một cách rõ ràng. Jacopo đã thực hiện một biến thể của ánh xạ photon, biến thể này sử dụng hạt nhân kernel tái tạo dựa trên màn hình để tránh phải xây dựng một cấu trúc dữ liệu phức tạp.

Chiêm ngưỡng kĩ thuật dò tia tương tác (interactive path tracing) và trình diễn caustics tại SIGGRAPH 2018 là một trải nghiệm đã mở rộng tầm mắt tôi và sau khi thảo luận về công nghệ RTX với một số nhà nghiên cứu tại NVIDIA, nghe các cuộc đàm phán của họ, chúng tôi biết rõ chúng tôi cần đưa công nghệ này vào trong KeyShot. Thách thức là làm thế nào để khiến các thuật toán phức tạp trong KeyShot được liên kết đến GPU? Thuật toán của Jacopo hoạt động tốt, nhưng nó không thể xử lý sự hiệu ứng phản xạ của các caustics như trong hình 3. Trong KeyShot 9, cuối cùng chúng tôi đã triển khai một thuật toán photon mapping tiến bộ đầy đủ trên GPU có khả năng tạo ra các hiệu ứng caustics bao gồm cả hình ảnh phản chiếu. Thuật toán photon mapping GPU hiển thị hình ảnh giống như phiên bản CPU, nhưng nó không đạt được độ tinh vi tối ưu.Trong hầu hết các trường hợp, lực xử lý mạnh của GPU RTX bù đắp cho thiếu sót này và tạo ra quá trình render đầy đủ các hiệu ứng caustics trên GPU, mà tốc độ vẫn rất nhanh. Tuy nhiên, chúng tôi đã phải nói với một số khách hàng của mình rằng đối với các hiệu ứng caustics phức tạp, tốt hơn họ nên sử dụng CPU vì nó vẫn sẽ nhanh hơn nhờ các thuật toán tiên tiến được sử dụng.

Caustics cực nhanh trên GPU

KeyShot 9 là phiên bản đầu tiên của KeyShot tận dụng tối đa GPU. Công nghệ RTX cùng với khung lập trình CUDA hoàn thiện giúp mọi thứ có thể được áp dụng các tính năng như ray tracing, photon mapping, đổ bóng… Khi chúng tôi đang phát triển KeyShot 10, chúng tôi đã xem xét kỹ và sâu hơn nữa về việc triển khai GPU và quyết định xem liệu chúng tôi có thể cải thiện việc triển khai photon mapping và hiệu quả nhanh hơn không. Điều này đòi hỏi tôi uống nhiều tách cà phê (cảm ơn Rocket espresso), nhưng cuối cùng chúng tôi đã có thể không chỉ là phù hợp với thuật toán CPU mà còn cả vượt qua nó. Kết quả cuối cùng là một thuật toán caustics có thể xử lý hàng ngàn ánh sáng, nhanh chóng hiển thị các hiệu ứng caustics cực tinh vị ở mắt nhìn gần hơn và chạy cực nhanh trên GPU Ampere NVIDIA RTX mới.

Hình 5: Hiệu ứng caustics từ môi trường và điểm sáng hoàn hảo xuyên qua một ly rượu cognac. Cấu trúc hình ảnh tinh vi trong caustics là do hiệu ứng tessellation (các mảng hình học liên kết liên tục với nhau trên một mặt phẳng) của ly thủy tinh cognac. Cả hình ảnh bên trái và bên phải phía trên đều là ảnh chụp màn hình được chụp sau 10 giây render theo thời gian thực.

Sử dụng thuật toán caustics mới trong KeyShot 10, chúng tôi bắt đầu có được các chi tiết và cấu trúc tinh vi trong hiệu ứng caustics, mà những điều này thường không được nhìn thấy do thời gian được tốn để đạt đến mức chi tiết này. Hình 5 cho thấy cận cảnh caustics từ ly rượu cognac trong hình 1. Bạn thử để ý xem, cấu trúc caustics này mà bạn đang xem được tạo ra bởi thực tế là kính cognac được tạo từ các khối hình tam giác và không phải là một bề mặt nhẵn liên tục. Thông thường, điều này không được nhìn thấy vì mức độ chi tiết này sẽ đòi hỏi một thời gian render thật lâu.

Tuy nhiên, thuật toán caustics mới trong KeyShot 10.2 đã render được chi tiết này chỉ trong 10 giây ở cả chế độ xem ở xa và chế độ xem cận cảnh.

Hình 6: caustics từ chai nước hoa- một mô hình của Will Gibbons với caustics từ môi trường phòng tắm (trái), và một mô hình của Brad Adelmann cho thấy caustics từ môi trường studio.

Hình 7: caustics bao gồm các caustics thể tích do ánh sáng khúc xạ và phản xạ bởi quả cầu thủy tinh và sự phản xạ thủy tinh đa sắc từ các góc khác nhau trong cảnh này. Cảnh của Dries Vervoort.

Hình 6 cho thấy caustics từ chai nước hoa do Will Gibbons và Brad Adelmann cung cấp. Hình 7 cho thấy các caustics trong môi trường thể tích phức tạp do khúc xạ và phản xạ của cả điện môi thông thường và ly thủy tinh đa sắc, gây ra sự tách quang phổ của các chùm tia sáng. Hình 8 cho thấy một ly nước cam không có caustics và một ly với các caustics được hình thành bởi ánh sáng chiếu qua ly vào nước cam. Bạn để ý, làm thế nào mà nước cam trở nên sáng hơn nhiều trong khi vẫn hiển thị mô hình caustics được hình thành do sự khúc xạ ánh sáng qua bề mặt ly. Tất cả các hình ảnh trên đều được render trên GPU và tất cả chúng đều có thể được thao tác một cách tương tác trong KeyShot 10. Hiệu ứng caustics  sẽ tự động cập nhật với bất kỳ thay đổi nào được thực hiện trong cảnh.

Hình 8: Một ly nước cam không có caustics (trái) và một ly với caustics bao gồm hiệu ứng caustics thể tích trong chất lỏng nước trái cây (phải).

“KeyShot 10 đã mở rộng ranh giới của những gì tôi nghĩ là có thể làm với caustics trong một công cụ render,” David Merz, Người sáng lập & Giám đốc Sáng tạo tại Vyzdom. “Tôi đã từng tránh sử dụng caustics hoàn toàn trong các tác phẩm của mình do thời gian render dài, sự nhiễu hạt và các đốm sáng khó chịu xuất hiện. Điều này thật đáng tiếc vì hiện tượng khúc xạ và phản xạ đẹp mắt này là một tín hiệu thị giác quan trọng trong thế giới thực của chúng ta, vì vậy việc đạt đến sự chân thực là rất quan trọng. Với các bản cập nhật mới nhất, tôi đang tạo ra các tác phẩm ấn tượng hơn mà không phải hy sinh thời gian quý báu. Khả năng tạo ra hiệu ứng caustics tuyệt vời chỉ bằng một cú nhấp chuột thật sự là một điều mang lại khoái cảm cho tôi.” Ông tiếp tục, nói rằng “caustics trong KeyShot 10 đã sạc năng lượng cho quy trình làm việc của tôi – đặc biệt là vì nó hoạt động trơn tru trên NVIDIA RTX A6000 – tốc độ cho phép tôi nhanh chóng thực hiện các lần lặp nhỏ và không phải chờ hàng giờ để xem kết quả quyết định của mình. Tôi có được một tác phẩm đẹp mắt và đúng ý mình chỉ trong vài phút.”

Hình 9: Các ví dụ khác nhau về khả năng khúc xạ ánh sáng chính xác của KeyShot thông qua các lăng kính có kích thước và hình dạng khác nhau. Ảnh: David Merz.

Hình 10: caustics được hình dung trong KeyShot thông qua sự khúc xạ ánh sáng qua đáy của một ly whiskey. Ảnh: David Merz

Kết luận

Chúng tôi tin rằng thuật toán caustics dựa trên GPU RTX mới trong KeyShot 10 là một cú thay đổi ngoạn mục cuộc chơi cho bất kỳ ai làm việc với các sản phẩm có chất liệu trong suốt hoặc phản chiếu như nước hoa, đồ trang sức, cho nhà thiết kế ánh sáng và hơn thế nữa. Chúng tôi tự tin rằng đây là thuật toán tốt nhất có sẵn để render caustics trên GPU hoặc CPU và chúng tôi rất hy vọng được nhìn thấy các chất caustics được render đẹp hơn nữa trong tự nhiên.

Tài liệu tham khảo

Đôi nét về Dr. Henrik Wann Jensen

Tiến sĩ Henrik Wann Jensen (M.Sc., Ph.D) là nhà khoa học trưởng tại Luxion, người sáng tạo ra KeyShot, và là giáo sư danh dự tại Khoa Khoa học Máy tính tại Đại học California, San Diego. Nghiên cứu của ông tập trung vào tổng hợp hình ảnh thực tế, chiếu sáng toàn cảnh, render các hiện tượng tự nhiên và các mô hình. Những đóng góp của ông cho đồ họa máy tính bao gồm thuật toán photon mapping , chiếu sáng toàn cảnh và kỹ thuật đi đầu trong  mô phỏng hiệu quả sự tán xạ dưới bề mặt trong vật liệu mờ. Ông là tác giả của “Realistic Image Synthesis using Photon Mapping“, AK Peters 2001. Ông là người nhận được Giải thưởng Viện hàn lâm (Giải thưởng Thành tựu Kỹ thuật) từ Viện Hàn lâm Khoa học và Nghệ thuật Điện ảnh cho nghiên cứu tiên phong trong việc render vật liệu mờ.

Iworld.com.vn hy vọng bạn đọc sẽ thích những thông tin mà bài viết này đem đến. Để đọc thêm nhiều bài viết hay về Keyshot độc giả vui lòng truy cập tại đây.

Biên dịch bởi Ngọc Ly- iworld.com.vn