Vì sao 30 FPS trên console lại “mượt” hơn trên PC
15/04/23
- 30 FPS – Đã có bao giờ bạn chơi một tựa game trên console (chẳng hạn Final Fantasy VII Remake), và cảm thấy rằng tuy bị giới hạn ở mức 30 FPS, bạn vẫn cảm thấy khung hình đủ mượt để đưa đến một trải nghiệm giải trí tốt.
- Và rồi sau đó, bạn mua lại tựa game này trên PC, khóa FPS (FPS – Khung hình trên mỗi giây) ở mức 30 và dồn hết hiệu suất vào độ phân giải 4K để có trải nghiệm đồ họa cao nhất, thì lại cảm thấy… trò chơi khá “cà giựt”?!
- Chuyện gì đã xảy ra? Tại sao cùng là 30 FPS nhưng lại có sự khác biệt rõ rệt đến như vậy? Chúng ta hay cùng tìm hiểu những nguyên nhân trong bài viết này nhé.
MOTION BLUR
- Yếu tố đầu tiên mà chúng ta sẽ điểm qua, đó là Motion Blur. Đây là hiệu ứng gây mờ được tích hợp dường như là vào mọi trò chơi. Giải thích đơn giản, mỗi khi nhân vật trong game thực hiện các hành động đi chuyển, chiến đấu, hoặc xoay góc nhìn qua lại, màn hình xung quanh nhân vật sẽ bị mờ đi một chút.
- Việc màn hình mờ đi trong lúc hành động và quay qua quay lại đã tạo cảm giác 30 FPS có phần “mượt” hơn bình thường.
- Motion Blur là một tùy chọn trên các game PC, song đa số chúng ta thường tắt chức năng này ngay cả trước khi vào game. Với một số game thủ, việc tắt Motion Blur đi sẽ tiện hơn trong việc chụp màn hình trò chơi (screenshot). Với một số người chơi khác, hiệu ứng Motion Blur khiến họ cảm thấy chóng mặt vì nhìn quá lâu!
- Nguyên nhân dẫn đến sự chóng mặt này là do các game thủ PC phải ngồi khá gần màn hình, điều mà các game thủ console chơi bằng TV hầu như không gặp phải. Đây là một yếu tố mà các nhà phát triển game thực hiện phiên bản console tận dụng triệt để.
ĐỘ TRỄ NHẬP NÚT
- Khi chơi game trên PC, khả năng cao, bạn sẽ sử dụng chuột và bàn phím.Trong khi đó, với console, lựa chọn phổ biến nhất, dĩ nhiên là tay cầm.
- So với chuột và bàn phím, tay cầm có độ trễ nhập nút cao hơn. Kết hợp yếu tố này với 30 FPS và cái chúng ta có là một sự hòa hợp tốt giữa hình ảnh truyền vào não thông qua trực giác và thông tin truyền vào game thông qua xúc giác.
- Trong khi đó, sự nhạy bén của bàn phím và chuột khi đi kèm với 30 FPS sẽ cho ra một sự chênh lệch đáng kể trong giữa hình ảnh của game và hành động của người chơi, dẫn đến cảm giác “cà giựt”.
- Bạn cũng có thể kiểm nghiệm điều này với việc kết nối tay cầm vào dàn PC và khóa mức khung hình ở 30, bạn sẽ cảm thấy 30 FPS bỗng dưng có phần “mượt” hơn!
ỔN ĐỊNH FRAME TIME
- Trước hết, chúng ta cần phải hiểu “Frame time” là gì, và nó liên quan gì đến khái niệm FPS – Khung hình trên giây.
- Thông thường, các phần mềm đo hiệu suất của trò chơi sẽ tính FPS trung bình bằng cách đếm số lượng khung hình có trong 1 giây, cộng lại và chia ra cho một khoảng thời gian nhất định.
- Ví dụ: nếu một trò chơi hiển thị 62, 64, 58 và 56 FPS trong khoảng thời gian bốn giây, thì trò chơi đó sẽ có tốc độ trung bình là 60 khung hình trên mỗi giây, gọi tắt là 60 FPS.
- Nhưng một giây là một khoảng thời gian dài trong trò chơi có nhịp độ cao, và không phải tất cả các khung hình đó đều được kết xuất như nhau, với một số khung hình kết xuất nhanh hơn các khung hình khác. “Frame time” là thời gian trôi qua giữa mỗi khung hình đó.
- Sử dụng 60 FPS làm ví dụ, “Frame time” (về mặt lý thuyết) sẽ là 16,6 mili giây hoặc 1/60 giây. Đây là trường hợp lý tưởng và khó mà cố định.
- Thực tế, các khung hình sẽ thường không cách đều nhau ở mức 16,6 mili giây, có lúc dài, có lúc ngắn. Nếu chênh lệch giữa dài và ngắn của Frame time đủ cao, chuyển động của hình ảnh sẽ bắt đầu bị giật
- Khi ở 60FPS, việc hình ảnh bị giật do sự dao động của Frame time gây ra tương đối khó nhận thấy, tuy nhiên, với độ khung hình 30 FPS, nó sẽ dễ bị phát hiện hơn.
- Điều đáng chú ý, đó là trên PC, sự dao động của Frame time sẽ cao hơn khi so với console, nhưng tại sao lại như vậy?
- Nguyên nhân là do ở một số trò chơi, các nhà phát triển đã tối ưu cho console tốt hơn PC. Đây là điều không quá khó hiểu, bởi vì khi xây dựng trò chơi cho console, họ đã nắm được rõ phần cứng của chiếc máy có những gì, và nếu có khác biệt (chẳng hạn, PS4 vs PS4 Pro) thì họ cũng nắm rõ được khác biệt là gì.
- Trong khi đó, một dàn máy PC có gần như là vô tận sự phối hợp giữa các bộ phận phần cứng, chẳng hạn như CPU, RAM, ổ cứng… và vì thế, việc tối ưu cho PC cũng khó hơn. Kết quả, đó là “Frame time” phần nào kém ổn định hơn.
SHADER COMPILATION
- Shader Compilation chắc hẳn là vấn đề mà độc giả đã nghe qua trong khoảng thời gian gần đây, khi các bản “port” (chuyển hệ máy) game PC mắc phải nó.
- Trong bài viết này, chúng ta cũng sẽ tranh thủ tìm hiểu về Shader Compilation, cũng như cách nó khiến cho 30 FPS của console “mượt” hơn PC.
- “Shader” là các chương trình máy tính giúp xác định các khía cạnh khác nhau của đồ họa được hiển thị. Ví dụ, pixel shader tính toán các thuộc tính của pixel (điểm ảnh). Điều này bao gồm màu sắc, độ sáng, độ phản xạ hoặc độ trong suốt của pixel đó.
- Shader là thứ làm cho GPU hiện đại trở nên linh hoạt, vì các GPU được thiết kế để chạy bất kỳ thứ gì có thể được thể hiện bằng ngôn ngữ lập trình trình Shader. Chúng thay thế công nghệ GPU “đường dẫn chức năng cố định” cũ, nơi các loại phép toán đồ họa mà GPU có thể thực hiện được kết nối cứng vào silicon của nó.
- “Compilation” (biên dịch) là một thuật ngữ dùng để chỉ việc lấy mã (code) được viết bởi một lập trình viên và dịch mã đó sang mã máy (machine code). Mã máy là ngôn ngữ mà bộ xử lý cụ thể dùng để chạy phần mềm có thể hiệu được.
- Ví dụ: Để chương chình của bạn có thể chạy trên CPU Intel hoặc Apple Silicon, bạn sẽ phải biên dịch (compile) nó.
- Điều tương tự cũng cần thiết cho GPU. Mã shader phải được biên dịch để chạy trên mẫu GPU cụ thể được sử dụng. Nếu bạn thay đổi GPU, cập nhật driver (trình điều khiển) hoặc trò chơi, shader phải được biên dịch lại.
- Trong một số trò chơi, việc biên dịch các shader ở dưới nền can thiệp vào quá trình chơi, gây ra hiện tượng giật khung hình.
- Một số nhà phát triển cố gắng tối ưu hóa quá trình biên dịch để nó ảnh hưởng đến trò chơi ít nhất có thể, thông qua quá trình biên dịch trước (shader pre-compilation). Trong khi đó, một số nhà phát triển lại trải rộng quá trình biên dịch shader trong suốt trò chơi, hy vọng rằng vấn đề giựt khung hình sẽ chỉ tồn tại trong thời gian ngắn.
- Trong trường hợp này, bạn sẽ gặp phải tình trạng giật khung hình nhiều nhất khi bắt đầu một màn chơi/khu vực mới.
- Tương tự như Frame time đề cập ở trên, giật khung hình do shader là một vấn đề gần như không tồn tại trên console. Nguyên nhân là vì các nhà phát triển biết chính xác phần cứng của console là gì, để họ có thể biên dịch trước.
REFRESH RATE CỦA MÀN HÌNH
- Yếu tố cuối cùng nhưng không kém phần quan trọng, đó là Refresh Rate (Tốc độ làm mới) của màn hình, cũng như sự tương thích của nó với phần cứng mà chúng ta dùng để chơi game.
- Refresh Rate là thuộc tính của màn hình TV hoặc máy tính. Nó được đo bằng hertz và xác định tần suất hiển thị thông tin hình ảnh của khung hình trên màn hình.
- Để tăng sự mượt mà cho nguồn hình ảnh có tốc độ khung hình thấp, màn hình sẽ “làm mới” khung hình thường xuyên hơn, bằng cách tạo bản sao của một số hình ảnh hoặc tạo chuyển tiếp giả giữa các khung hình với hiệu ứng làm mờ chuyển động (motion blur). Điều này mang lại cảm giác tốc độ khung hình cao hơn, dù thực tế không như vậy.
- Ví dụ: Nếu bạn chơi game ở mức 30 FPS, màn hình 60Hz sẽ hiển thị mỗi khung hình hai lần một giây. 30 FPS hoạt động tốt với 60Hz vì 60 chia hết cho 30.
- Hiện tại, các màn hình máy tính phổ biến nhất thường đi kèm với 3 cấp độ Refresh Rate là 50Hz, 60Hz và 75Hz. Thông thường, các game thủ PC sẽ để mặc định ở mức 75Hz, và vì 75 không phải là bội số của 30, chơi game 30 FPS sẽ có một cảm giác giật nhẹ.
- Đáng chú ý ở đây, đó là khi cắm PS4 vào màn hình máy tính kể trên, chiếc máy chơi game sẽ tự động giới hạn màn hình xuống mức 60Hz, đảm bảo hoạt động tốt nhất cho 30 FPS (hoặc 60 FPS một cách tự nhiên với một số trò).
- Như vậy, chúng ta có thể thấy năm yếu tố kể trên là không mang ảnh hưởng quá lớn, nhưng sự kết hợp của chúng cùng một lúc đã khiến cho 30 FPS trên console cảm thấy “mượt” hơn PC.
- Đây cũng là lí do một số game thủ console đã từng chia sẻ rằng, họ không cảm nhận được sự khác biệt quá lớn giữa 30 FPS và 60 FPS, dẫn đến một số cuộc tranh cãi trên mạng xã hội.