Cần nhắc lại, GPU nền Radeon trang bị trong chiếc máy console PS4 Pro có sức mạnh xử lý thô 4.2 Teraflops. Con số này tương đương với sức mạnh xử lý của mẫu card đồ hoạ GTX 1060 phiên bản 6GB, sức mạnh loanh quanh ngưỡng 4.4 Teraflops. Ấy thế nhưng chưa bao giờ chúng ta nói đến chuyện chơi game độ phân giải 4K trên PC bằng GTX 1060, nhưng PS4 Pro đã chứng minh được khả năng của nó trong việc chơi game ngon lành trên TV độ phân giải 4K, dù hầu hết thời gian tốc độ khung hình chỉ dừng lại ở ngưỡng 30 FPS, với một số game multiplayer mới lên được 60 FPS như Call of Duty hay Battlefield V chẳng hạn.
Tương tự như vậy, anh em đôi khi có thể thắc mắc vì sao cỗ máy PS4, sức mạnh xử lý 1.84 teraflops lại tạo ra được những khung hình đẹp như mơ trong Ghost of Tsushima hay The Last Of Us Part II trên màn hình độ phân giải Full HD như vậy.
Để làm được điều này, giải thích một cách ngắn gọn là PS4 Pro và PS4 không render mỗi khung hình của mỗi trò chơi nó xử lý hình ảnh ở độ phân giải gốc, tức là 3840x2160 pixel.
Nếu phải render mỗi khung hình đủ 3840x2160 pixel, một trò chơi hiển thị trên màn hình 4K qua PS4 Pro có khi còn không đạt nổi ngưỡng 10 FPS, giật quá nghỉ chơi. Cái này thuật ngữ gọi là native rendering, phần cứng sẽ phải “vẽ” đủ 8,3 triệu pixel của mỗi khung hình. Tuyệt đại đa số game PC giờ đều phải render như vậy, với một vài tác phẩm khác biệt như Control hay Death Stranding hỗ trợ DLSS, một công cụ tăng độ chi tiết đồ hoạ bằng AI và nhân Tensor trong card đồ hoạ RTX của Nvidia.
Tương tự như vậy, anh em đôi khi có thể thắc mắc vì sao cỗ máy PS4, sức mạnh xử lý 1.84 teraflops lại tạo ra được những khung hình đẹp như mơ trong Ghost of Tsushima hay The Last Of Us Part II trên màn hình độ phân giải Full HD như vậy.
Để làm được điều này, giải thích một cách ngắn gọn là PS4 Pro và PS4 không render mỗi khung hình của mỗi trò chơi nó xử lý hình ảnh ở độ phân giải gốc, tức là 3840x2160 pixel.
Nếu phải render mỗi khung hình đủ 3840x2160 pixel, một trò chơi hiển thị trên màn hình 4K qua PS4 Pro có khi còn không đạt nổi ngưỡng 10 FPS, giật quá nghỉ chơi. Cái này thuật ngữ gọi là native rendering, phần cứng sẽ phải “vẽ” đủ 8,3 triệu pixel của mỗi khung hình. Tuyệt đại đa số game PC giờ đều phải render như vậy, với một vài tác phẩm khác biệt như Control hay Death Stranding hỗ trợ DLSS, một công cụ tăng độ chi tiết đồ hoạ bằng AI và nhân Tensor trong card đồ hoạ RTX của Nvidia.
Quay trở lại với các nhà làm game trên PS4, đặc biệt là những studio con cưng của Sony đều áp dụng một phương pháp giúp phần cứng không phải “è cổ” render từng khung hình nét căng: Checkerboard rendering và upscaling. Sau khi hình ảnh được nâng chất lượng độ phân giải, một công cụ rất đáng đồng tiền bát gạo khác là TAA – Temporal Anti Aliasing sẽ được áp dụng để khử răng cưa và khiến chi tiết vật thể trong game trở nên đẹp nhất trên những chiếc TV độ phân giải cao.
Native rendering và upscale nội suy
Để hiểu rõ nhất về kỹ thuật gọi là checkerboard rendering, đầu tiên phải nhắc đến cơ chế nâng độ phân giải cơ bản nhất hiện giờ: Up-scaling. Anh em có thể mở một file ảnh chất lượng thấp rồi cố gắng nâng độ phân giải của chúng lên gấp đôi trong Photoshop. Những pixel mới trong tấm hình mới không phải tự nhiên xuất hiện một cách thần kỳ, mà được tạo ra và định hình bằng thuật toán nội suy (interpolate) dựa vào những pixel lân cận đã có sẵn.
Về mặt cơ bản, mỗi vật thể tạo ra nhờ công nghệ đồ hoạ máy tính đều là một bộ khung với hàng chục hàng trăm nghìn đa giác kết hợp lại với nhau. Những đường cong hay bề mặt cong được hợp thành từ rất rất nhiều đường thẳng hay đa giác phẳng để tạo ra cảm giác tròn trịa trong mắt người nhìn, nhưng zoom đủ sâu thì sẽ thấy từng đường thẳng của đa giác đó. Lấy ví dụ giả sử chúng ta có 2 khung hình kế tiếp nhau, mô tả một mảnh vỡ văng ra trong một vụ nổ giả tưởng, được CPU vẽ khung nền đa giác như thế này:
Những mô hình mảnh vỡ trong hình trên có độ chính xác rất cao, được vẽ ra từ thuật toán của công cụ 3D. Những vector ấy không có số điểm ảnh trên mỗi đa giác. Nhưng màn hình máy tính hoặc màn hình TV của chúng ta chỉ có độ phân giải hữu hạn số pixel hiển thị hình ảnh. Lấy ví dụ TV Full HD thì màn hình sẽ có 1920 x 1080=2.073.600 điểm ảnh, còn TV 4K sẽ có 3840 x 2160 = 8.294.400 điểm ảnh.
Chi tiết vật thể khi hiển thị trên màn hình cũng sẽ bị trói buộc bởi số lượng pixel mà màn hình có thể hiển thị. Sẽ có điểm ảnh hiển thị một phần của một đa giác lớn, nhưng cũng có điểm ảnh nhồi nhét rất nhiều đa giác trong một vật thể cực nhỏ. Quá trình biến môi trường 3D vẽ bằng máy tính thành hình ảnh 2D hiển thị trên màn hình TV của anh em gọi là rasterization, mô tả dễ hiểu như hình dưới đây:
Quảng cáo
Ở mức độ giải thích dễ hiểu nhất, giá trị của mỗi điểm ảnh được xác định bằng việc sử dụng màu sắc của đa giác nằm ở chính giữa điểm ảnh. Đa giác nào càng gần vị trí chính giữa điểm ảnh thì càng được ưu tiên. Giả sử ba trường hợp nội suy hình ảnh dưới đây:
Trong trường hợp đầu tiên, không có đa giác nào đè lên vị trí trung tâm của điểm ảnh, nên sẽ lấy màu bầu trời nền của cảnh game (skybox) để xác định màu sắc của điểm ảnh. Hai trường hợp còn lại cứ lấy đa giác nào nằm trên để xác định. Kết quả chúng ta sẽ có một sản phẩm trông như thế này:
Sau những bước rasterize cảnh 3D thành hàng triệu pixel 2D hiển thị trên TV, các nhà làm game sẽ chèn nốt giao diện lên và thế là chúng ta có cảnh game hoàn chỉnh. Tốc độ khung hình của máy PC hoặc console chứng tỏ rằng mỗi giây phần cứng chỉ xử lý được chừng đó khung hình, qua tất cả các bước để hiện ra trên màn hình máy tính hoặc TV của anh em.
Quảng cáo
Điều hiển nhiên là, độ phân giải mỗi khung hình phải render càng thấp, thì gánh nặng lên phần cứng càng nhẹ nhàng. Mục tiêu của các hãng game trước đây sẽ là đẩy hình ảnh lên độ phân giải cao nhất mà phần cứng có thể chịu được, trong khi vẫn giữ được chất lượng đồ họa và tốc độ khung hình ổn định. Khi không render native được thì sẽ phải chuyển sang upscale nội suy để hiển thị lên TV hoặc màn hình. Sau khi render, bước upscale hình ảnh sẽ nội suy tiếp những điểm ảnh còn thiếu của một cảnh game dựa trên màu sắc của những điểm ảnh lân cận.
Nhưng như anh em cũng biết, upscale trực tiếp bằng thuật toán nội suy sẽ khiến chất lượng hình ảnh giảm nghiêm trọng. Bản chất thời PS3 và Xbox 360 cũng ứng dụng cách nâng cấp hình ảnh như thế này. Ví dụ Call of Duty Modern Warfare 2 trên Xbox 360 render ở độ phân giải 1024x600 pixel rồi upscale trực tiếp lên màn hình Full HD hoặc 720p, hình ảnh khá nhoè nhoẹt so với bản game trên PC render ở độ phân giải gốc.
Giải pháp được đưa ra rất đơn giản, hãy render game ở độ phân giải cao nhất mà máy console chịu được, có thể giữ vững tốc độ khung hình ở mức ổn định, nghĩa là từ 55 đến 60 FPS. Nhưng như anh em có thể thấy, upscaling cũng chỉ giúp console bớt được một phần gánh nặng, chơi game hình ảnh nhạt nhoà, góc cạnh chi tiết mờ mịt cũng không phải cách hay. Điều đó đưa chúng ta đến với giải pháp mà các nhà phát triển game console nghĩ ra vài năm về trước.
Checkerboard rendering
Câu hỏi được các kỹ sư đồ hoạ đưa ra là, nếu chúng ta giảm một nửa số pixel trong mỗi khung hình game mà máy phải render, thì độ phân giải tối đa mà máy có thể chịu được trong khi vẫn giữ tốc độ khung hình ổn định, giữ chất lượng bề mặt vật thể ổn định là bao nhiêu. Nhờ đó, checkerboard rendering ra đời.
Cách render đồ hoạ này không khác nhiều so với native rendering mà mình mô tả ở trên. Tuy nhiên thay vì vẽ đủ gần 8,3 triệu điểm ảnh khi chơi game trên màn hình độ phân giải 4K, PS4 Pro sẽ chia những hình ảnh 3D do thuật toán của game dùng CPU vẽ ra thành 2 frame hình độc lập, rồi chia chúng thành dạng bàn cờ. Mỗi khung hình, máy sẽ render một nửa số điểm ảnh. Frame thứ nhất render một nửa, frame thứ hai render nửa số điểm ảnh còn lại và chèn những điểm ảnh đã render trong khung hình trước đó trám vào chỗ trống, cứ thế tiếp diễn đến frame n và n+1. Để dễ hiểu thì một ô 2x2 pixel sẽ lần lượt được render hai điểm ảnh chéo nhau, frame sau dùng lại điểm ảnh frame trước render ra.
Bản chất việc render như thế này khiến gánh nặng render áp lên phần cứng PS4 chỉ còn có một nửa. Phần tài nguyên phần cứng còn lại của máy sẽ được dùng để ứng dụng những hiệu ứng đồ họa khác như TAA, đổ bóng, hiệu ứng ánh sáng, hoặc upscale tiếp lên nhờ thuật toán nội suy khi checkerboard rendering không đạt được độ phân giải 4K, cái này mình sẽ nói rõ trong mục tiếp theo. Nhờ đó, GPU có yếu thì vẫn render được game sao cho ấn tượng nhất trên màn hình TV của anh em.
Ví dụ nổi bật nhất của checkerboard rendering 4K trên PS4 Pro là Detroit: Become Human. Trò này trên render ở độ phân giải native 1080p trên PS4, và checkerboard 4K trên PS4 Pro. Trong những cảnh chuyển động, khác biệt giữa vị trí vật thể và góc nhìn của hai khung hình sẽ được giải quyết bằng việc ứng dụng motion blur để làm mượt từng chuyển động của nhân vật, tránh tình trạng giật cục khi thưởng thức game.
Đến đây anh em sẽ thắc mắc, sao checkerboard rendering ngon như thế mà chỉ có PS4 hay Xbox One mới ứng dụng? Tình hình nó là như thế này. Vì render theo dạng bàn cờ, mỗi giây cỡ 30 đến 60 khung hình, nên mắt thường khi anh em chơi game sẽ gần như chẳng quan tâm đến tình trạng gọi là checkerboard artifact. Nhưng nó vẫn tồn tại. Anh em chỉ cần ấn nút chụp screenshot game lúc đang chơi, copy ra máy tính rồi zoom lên, đặc biệt là ở những vị trí tóc hoặc râu của nhân vật, rất dễ thấy khuyết điểm khi máy chơi game render theo kiểu checkerboard:
Câu hỏi tiếp theo là tại sao lại là render từng phần kiểu bàn cờ thay vì chia độ phân giải theo chiều dọc hoặc ngang? Bản thân checkerboard rendering cũng chỉ là một dạng trong những phương pháp “sparse rendering”. Nếu render theo kiểu chia dọc hoặc ngang thì rất dễ gặp hiện tượng rách hình như khi anh em xem những clip dạng interlaced thay vì progressive của truyền hình HD thế hệ cũ trên YouTube, hình ảnh bị kéo từng dải ngang trông như thế này:
Dù gì đi chăng nữa, chơi game mà render được ở độ phân giải native vẫn là ngon nhất. Nhưng khi phần cứng bị giới hạn về sức mạnh, thì PS4 Pro vẫn chứng tỏ cái đầu của các kỹ sư đồ họa đỉnh đến mức nào. Render xong xuôi, thì bây giờ là đến phần thêm mắm muối cho mỗi cảnh game, hoặc trong rất nhiều trường hợp là upscale nội suy tiếp lên độ phân giải mong muốn, ở đây là 4K, 3840x2160 pixel.
Khử răng cưa, upscale nội suy và 1001 những hiệu ứng hình ảnh khác
Hãy lấy ví dụ cái game mình vừa review với anh em, đó là Ghost of Tsushima. Trên PS4 Pro, nếu xuất hình ảnh lên màn hình 4K, phần cứng máy của anh em sẽ render game ở độ phân giải 1800p, nghĩa là 3200x1800 checkerboard (mỗi frame hình render 1600 x 900 = 1.440.000 pixel) rồi upscale nội suy lên 3840x2160 pixel, còn nếu muốn, game sẽ render native ở độ phân giải 1080p, phần cứng vẫn đủ sức chạy game ở tốc độ 30 FPS, thậm chí còn mượt hơn cả 1800p vì GPU không phải xử lý thêm chi tiết đồ họa trong màn chơi.
Đến đây có lẽ anh em đã hiểu vì sao PS4 Pro yếu mà vẫn chơi được game trên màn hình 4K. Render game ở độ phân giải 1600x900 (hoặc thậm chí thấp hơn) mỗi khung hình nó quá dễ với một chiếc card đồ họa như GTX 1060, cũng là sản phẩm có sức mạnh tương đồng với GPU của PS4 Pro. Còn lại đều là những “ma thuật” mà các kỹ sư đồ họa ứng dụng để khắc họa thế giới ảo ấn tượng nhất.
Mỗi nhà phát triển game lại áp dụng những cách khác nhau để game hiển thị tốt nhất trên màn hình 4K. Nhưng trong số đó ấn tượng nhất phải là Naughty Dog và Guerrilla Games. The Last of Us Part II render ở độ phân giải 1440p, rồi upscale và ứng dụng Temporal Anti Aliasing để thế giới hậu thảm họa zombie trông vừa tràn đầy sức sống tự nhiên lại vừa đổ nát hoang tàn theo cách ấn tượng nhất. Thậm chí nếu chơi game bằng PS4 Pro xuất hình ảnh ra màn Full HD, game vẫn mặc định render ở độ phân giải 1440p rồi downsample để từng cành cây ngọn cỏ mịn nhất có thể. Ấy vậy mà toàn bộ game, gần như không gặp trường hợp nào sụt khung hình, ngoại trừ lúc lên thuyền chu du quanh những vùng ngập lụt. Naughty Dog ứng dụng Temporal Anti Aliasing rất xuất sắc, không thể tìm ra điểm nào để chê bai cả:
Còn trong khi đó Horizon Zero Dawn trên PS4 Pro render ở độ phân giải 2160p checkerboard y hệt như Detroit Become Human, và có đôi lúc tốc độ khung hình sụt xuống 28 29 FPS:
Ở thời điểm mình viết bài này, có hai trường hợp rất dễ so sánh chất lượng đồ họa của game trên PS4 Pro và PC, đó là Detroit Become Human và Death Stranding, vì cả hai đều có bản trên cả hai cỗ máy chơi game. Rất dễ thấy so với PC, các nhà phát triển game PS4 phải bỏ rất nhiều thời gian để trau chuốt tác phẩm của họ, phải hạ thấp chất lượng đồ họa ở những cảnh vật phía xa, gọi là giảm chất lượng Level of Details để tối ưu chất lượng hình ảnh của những gì ngay trước mắt anh em (nhân vật, nhà cửa, vũ khí, hiệu ứng cháy nổ,…). Còn với PC, tùy chọn đồ họa của anh em gần như là vô tận, chỉ cần chỉnh theo đúng khả năng của cỗ máy tính chơi game mà thôi.
Ấy nên mới nói, chơi game trên console vẫn có cái sướng khác so với PC. Một trong số đó là việc không phải lo lắng về cấu hình máy hay chỉnh chất lượng đồ họa, vì các hãng game đã làm hết giúp anh em rồi, chỉ việc mua game, tải về và bắt đầu chơi.
Rồi đến thời PS5 thì sao?
So với PS4 Pro, GPU của PS5 mạnh hơn rất nhiều lần, nhưng điều đó không đồng nghĩa với việc checkerboard rendering sẽ biến mất. Với những tiến bộ của công nghệ đồ họa máy tính hiện giờ, cố render game đủ 3840x2160 pixel chưa chắc đã là ý tưởng hay, khi các hãng game hoàn toàn có thể ứng dụng checkerboard để tăng chất lượng đồ họa, giải phóng sức mạnh phần cứng để thực hiện nhiều tác vụ khác như xử lý texture độ phân giải cao, mô hình vật thể ở xa vẫn rõ nét, hay thậm chí là kết hợp cả hai công nghệ ray tracing và screen-space reflection để từng cảnh game chân thực và chi tiết nhất.
Mà đấy, nói đến ray tracing và screen-space reflection cũng nên có một bài viết riêng giải thích vì sao ray tracing lại quan trọng đến thế.
Ấy vậy cho nên, cứ làm cách nào để thế giới game càng chi tiết càng tốt, càng đẹp càng tốt luôn là mục tiêu quan trọng nhất của các hãng game. Còn độ phân giải native, “có hay không có, không quan trọng.” Rồi chúng ta sẽ được chiêm ngưỡng những tác phẩm xuất sắc trên PS5 hiển thị trên màn hình 4K hoặc thậm chí 8K được hiển thị thông qua kỹ thuật checkerboard rendering. Rốt cuộc “native 4K” đôi khi sẽ là một cú lừa không hơn không kém vì mỗi khung hình đâu có render đủ 3840x2160 pixel đâu, bị chia đôi thành bàn cờ đấy chứ?
Nhưng đối với anh em mê chơi game trên console, điều đó có lẽ cũng không phải thứ khiến họ lo lắng. Game càng đẹp thì chơi càng đã tay đã mắt, hãng game ứng dụng công nghệ hình ảnh gì đôi lúc cũng không cần quan tâm.