Samsung Galaxy XR đã ra mắt, chạy trên Android XR! Bài đăng trên blog này là một phần trong Tuần lễ giới thiệu Android XR, nơi chúng tôi cung cấp các tài nguyên (bài đăng trên blog, video, mã mẫu và nhiều tài nguyên khác) được thiết kế để giúp bạn tìm hiểu, xây dựng và chuẩn bị ứng dụng cho Android XR.
Tuần này, Samsung đã ra mắt Galaxy XR, được xây dựng với sự hợp tác của Google và Qualcomm. Đây là thời điểm thú vị cho các nhà phát triển và chúng tôi muốn giúp bạn khai thác hiệu suất tốt nhất có thể từ ứng dụng XR.
Mặc dù hiệu suất kém trong các trò chơi và ứng dụng trên thiết bị không phải XR có thể khiến người dùng thất vọng, nhưng trong thế giới XR, hiệu suất không chỉ là tuỳ chọn mà còn là yếu tố cơ bản để ứng dụng của bạn thành công. Nếu bạn không đạt được mục tiêu về tốc độ khung hình trong XR, thì điều này có thể gây ra các vấn đề nghiêm trọng hơn nhiều, chẳng hạn như say sóng.
Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn các biện pháp tối ưu hoá hiệu suất thiết yếu mà bạn cần hiểu để phát triển Android XR. Bạn sẽ tìm hiểu những tính năng mang lại hiệu suất cao nhất, thời điểm sử dụng các tính năng đó và cách các tính năng này phối hợp với nhau để giúp bạn đạt được mục tiêu về tốc độ khung hình.
Đây là những gì chúng tôi đang hướng đến:
- Tối thiểu: 72 khung hình/giây (một phần trong nguyên tắc về chất lượng trò chơi)
- Không bắt buộc: 90 khung hình/giây với ngân sách 11 mili giây cho mỗi khung hình
Để biết thêm thông tin về lý do tại sao việc duy trì tốc độ khung hình cao như vậy lại quan trọng, hãy xem nguyên tắc về hiệu suất của chúng tôi.
Các tính năng hiệu suất dành riêng cho XR
Chúng ta sẽ bắt đầu bằng cách đề cập đến 2 tính năng hiệu suất dành riêng cho XR: Kết xuất tập trung và Lấy mẫu phụ Vulkan.
Kết xuất tập trung
Kết xuất tập trung là một biện pháp tối ưu hoá có 2 chế độ. Chế độ đầu tiên là chế độ tĩnh, kết xuất trung tâm màn hình ở độ phân giải cao hơn và giảm dần độ phân giải khi bạn nhìn ra xa hơn.
Chế độ thứ hai là chế độ theo dõi mắt , kết xuất cụ thể khu vực bạn đang nhìn một cách chi tiết, đồng thời giảm chất lượng hiển thị ở các vùng ngoại vi. Về cơ bản, chế độ này mô phỏng cách hoạt động của thị giác con người – nơi chúng ta chỉ nhìn thấy chi tiết ở khu vực cụ thể mà chúng ta đang tập trung.
Kết xuất tập trung giúp giảm đáng kể khối lượng công việc của GPU mà không làm giảm chất lượng hình ảnh mà người dùng cảm nhận được. Ưu điểm của kết xuất tập trung là người dùng sẽ không nhận thấy chất lượng giảm ở tầm nhìn ngoại vi, nhưng GPU của bạn chắc chắn sẽ nhận thấy hiệu suất được cải thiện.
Hãy tưởng tượng bạn đang xây dựng trải nghiệm bảo tàng với các hiện vật 3D phức tạp. Nếu không có kết xuất tập trung, bạn sẽ khó duy trì 90 khung hình/giây khi cố gắng kết xuất mọi thứ trong "trường nhìn". Với kết xuất tập trung, bạn có thể giữ các chi tiết có nhiều đa giác ở nơi người dùng đang nhìn, nhưng môi trường nền kết xuất ở chất lượng thấp hơn. Người dùng sẽ không nhận thấy sự khác biệt, nhưng bạn sẽ có khoảng trống để thêm chi tiết vào cảnh.
Lấy mẫu phụ Vulkan
Lấy mẫu phụ Vulkan là trợ thủ đắc lực của kết xuất tập trung. Trong khi kết xuất tập trung quyết định kết xuất nội dung gì ở các mức chất lượng khác nhau, thì Lấy mẫu phụ Vulkan xử lý cách kết xuất hiệu quả các mức chất lượng khác nhau bằng cách sử dụng Bản đồ mật độ mảnh.
Khi kết hợp với kết xuất tập trung, Lấy mẫu phụ Vulkan giúp bạn có thêm 0,5 mili giây hiệu suất. Tính năng này cũng giúp làm mượt các cạnh răng cưa trong tầm nhìn ngoại vi, giúp hình ảnh tổng thể rõ nét hơn.
Ví dụ: trong trò chơi mô phỏng chuyến bay, nơi người dùng tập trung vào các thiết bị và nút điều khiển, việc kết hợp kết xuất tập trung với Lấy mẫu phụ Vulkan có nghĩa là các nút điều khiển chi tiết sẽ kết xuất sắc nét, nhưng cấu trúc buồng lái ngoại vi sử dụng ít tài nguyên hơn. 0,5 mili giây bổ sung nghe có vẻ không nhiều, nhưng đó là sự khác biệt giữa việc có chỗ cho một thành phần tương tác bổ sung hoặc bỏ khung hình trong những khoảnh khắc căng thẳng.
Các tính năng GPU cho cảnh phức tạp
Ngoài Kết xuất tập trung và Lấy mẫu phụ Vulkan, còn có một số tính năng GPU giúp giảm căng thẳng không cần thiết thông qua việc tạo nhiều thực thể và loại bỏ thông minh. Các tính năng này đặc biệt hiệu quả đối với các cảnh phức tạp có hình học lặp lại hoặc tắc nghẽn đáng kể.
Trình kết xuất thường trú GPU
Trình kết xuất thường trú GPU tự động sử dụng tính năng tạo nhiều thực thể GPU để giảm số lần gọi vẽ và giải phóng thời gian xử lý của CPU. Vì vậy, thay vì CPU thông báo cho GPU về từng đối tượng riêng lẻ, GPU sẽ nhóm các đối tượng tương tự lại với nhau.
Tính năng này hiệu quả nhất đối với các cảnh lớn có nhiều lưới lặp lại, chẳng hạn như cây trong rừng, đồ nội thất trong toà nhà văn phòng hoặc đạo cụ rải rác trong môi trường.
Hãy hình dung một cảnh rừng có 200 cây sử dụng cùng một lưới cơ sở. Nếu không có Trình kết xuất thường trú GPU, bạn sẽ có 200 lần gọi vẽ chiếm dụng GPU, do đó giải phóng CPU. Khi bạn bật tính năng này, GPU sẽ tạo thực thể một cách thông minh cho những cây đó, giúp giảm số lần gọi vẽ xuống chỉ còn 5 đến 10 lần. Đây là mức tiết kiệm GPU đáng kể mà bạn có thể đầu tư vào logic trò chơi hoặc tính toán vật lý.
Loại bỏ tắc nghẽn GPU
Loại bỏ tắc nghẽn GPU sử dụng GPU thay vì CPU để xác định và bỏ qua việc kết xuất các đối tượng bị ẩn. Tính năng này tự động phát hiện những gì bị tắc nghẽn (ẩn) sau các đối tượng khác, vì vậy bạn sẽ không lãng phí GPU cho những thứ mà người dùng không thể nhìn thấy.
Tính năng này đặc biệt mạnh mẽ trong không gian nội thất có nhiều phòng, môi trường dày đặc hoặc cảnh kiến trúc nơi tường, sàn và các đối tượng tự nhiên chặn tầm nhìn.
Ví dụ: giả sử bạn đang xây dựng trải nghiệm nhà nhiều phòng. Khi người dùng ở trong phòng khách, tại sao lại lãng phí chu kỳ GPU để kết xuất nhà bếp chi tiết hoàn toàn bị ẩn sau bức tường? Tính năng Loại bỏ tắc nghẽn GPU sẽ tự động bỏ qua việc kết xuất các đối tượng bị ẩn đó, giúp bạn có thêm ngân sách hiệu suất cho những gì thực sự hiển thị.
Theo dõi hiệu suất của bạn
Chỉ sử dụng các tính năng này là chưa đủ. Bạn cũng cần đo lường các biện pháp tối ưu hoá để có thể định lượng tác động của chúng và xác minh rằng các thay đổi của bạn thực sự có hiệu quả.
Metrics API
API Chỉ số hiệu suất cung cấp tính năng giám sát theo thời gian thực về mức sử dụng bộ nhớ, hiệu suất CPU và hiệu suất GPU của ứng dụng. API này cung cấp cho bạn dữ liệu toàn diện từ các lớp trình tổng hợp và thời gian chạy, vì vậy bạn có thể thấy chính xác những gì đang xảy ra trong ứng dụng của mình.
Thiết lập đường cơ sở trước khi thực hiện các thay đổi, áp dụng biện pháp tối ưu hoá, đo lường tác động và lặp lại. Phương pháp dựa trên dữ liệu này có nghĩa là bạn biết rằng mình đang thực sự cải thiện hiệu suất thay vì đoán.
Trước khi bật kết xuất tập trung, thời gian kết xuất khung hình GPU có thể là 13 mili giây, vượt quá ngân sách 11 mili giây của bạn. Bật kết xuất tập trung, đo lường lại và hy vọng bạn sẽ thấy thời gian này giảm xuống còn 9 mili giây. Đó là 4 mili giây khoảng trống mà bạn đã có được để thêm chi tiết vào cảnh, cải thiện chất lượng hình ảnh ở nơi khác hoặc chỉ đơn giản là đảm bảo hiệu suất mượt mà hơn trên nhiều nội dung hơn.
Nếu không có các chỉ số này, bạn sẽ tối ưu hoá một cách mù quáng. Metrics API cho bạn biết sự thật về những gì thực sự giúp ích cho trường hợp sử dụng cụ thể của bạn.
Trình gỡ lỗi khung
Trình gỡ lỗi khung là công cụ tích hợp của Unity để hiểu chính xác cách kết xuất cảnh của bạn, từng khung hình. Công cụ này cho bạn thấy trình tự các lần gọi vẽ và cho phép bạn xem từng bước để xác minh rằng các biện pháp tối ưu hoá của bạn đang hoạt động đúng cách.
Bạn muốn xác nhận rằng Trình xử lý hàng loạt SRP đang hoạt động? Tìm các mục "RenderLoopNewBatcher" trong Trình gỡ lỗi khung. Bạn muốn kiểm tra xem Trình kết xuất thường trú GPU có xử lý hàng loạt đúng cách không? Tìm các mục "Nhóm hàng loạt hỗn hợp". Những xác nhận trực quan này giúp bạn hiểu liệu các chế độ cài đặt tối ưu hoá của bạn có thực sự có hiệu lực hay không.
Xem từng bước 50 lần gọi vẽ đầu tiên của cảnh. Nếu bạn thấy các đối tượng tương tự được vẽ riêng lẻ thay vì theo lô, thì điều đó cho biết rằng tính năng tạo nhiều thực thể hoặc xử lý hàng loạt của bạn không hoạt động đúng cách. Trình gỡ lỗi khung giúp bạn thấy ngay các vấn đề này để có thể giải quyết chúng.
Các biện pháp tối ưu hoá bổ sung
Cũng như các biện pháp tối ưu hoá mà chúng tôi đã đề cập ở trên, hướng dẫn đầy đủ về hiệu suất của chúng tôi cũng đề cập đến một số biện pháp tối ưu hoá bổ sung khác. Sau đây là tóm tắt nhanh:
- Chế độ cài đặt URP: Tắt HDR và Xử lý hậu kỳ cho XR di động. Các tính năng này mang lại tác động trực quan tối thiểu so với chi phí hiệu suất trên phần cứng di động, vì vậy bạn sẽ đạt được hiệu suất có thể đo lường được với sự khác biệt trực quan hầu như không đáng kể.
- Trình xử lý hàng loạt SRP: Giảm chi phí CPU cho các cảnh có nhiều vật liệu sử dụng cùng một biến thể shader. Bằng cách giảm thiểu các thay đổi về trạng thái kết xuất giữa các lần gọi vẽ, bạn có thể giảm đáng kể thời gian CPU dành cho việc kết xuất.
- Tốc độ làm mới màn hình: Tự động điều chỉnh giữa 72 khung hình/giây và 90 khung hình/giây dựa trên độ phức tạp của cảnh. Giảm tốc độ khung hình trong các chuỗi phức tạp để duy trì độ ổn định, sau đó tăng tốc độ khung hình trong các khoảnh khắc đơn giản hơn để tương tác siêu mượt mà.
- Kết cấu chiều sâu/độ mờ: Tắt các kết cấu này trừ phi cần thiết cho hiệu ứng chương trình đổ bóng. Các kết cấu này gây ra các thao tác sao chép GPU không cần thiết, lãng phí hiệu suất mà không mang lại lợi ích cho hầu hết các ứng dụng.
- Tỷ lệ kết xuất URP: Chế độ cài đặt này cho phép bạn kết xuất ở độ phân giải giảm để có lợi ích về hiệu suất hoặc tăng tỷ lệ kết xuất để nâng cao chất lượng hình ảnh.
Để biết hướng dẫn từng bước về các biện pháp tối ưu hoá này và nhiều biện pháp tối ưu hoá khác, hãy xem Hướng dẫn đầy đủ về hiệu suất Unity cho Android XR.
Kết luận
Hiệu suất của ứng dụng XR không chỉ là một hộp kiểm kỹ thuật. Đó là sự khác biệt giữa trải nghiệm thoải mái, hấp dẫn và trải nghiệm khiến người dùng cảm thấy khó chịu hoặc không thoải mái. Các biện pháp tối ưu hoá mà chúng tôi đã đề cập là bộ công cụ giúp bạn đạt được các mục tiêu quan trọng về tốc độ khung hình trên các thiết bị XR mới nhất.
Sau đây là lộ trình của bạn:
- Bắt đầu với Kết xuất tập trung và Lấy mẫu phụ Vulkan. Các tính năng dành riêng cho XR này mang lại mức tiết kiệm GPU ngay lập tức và đáng chú ý.
- Thêm Trình kết xuất thường trú GPU và Loại bỏ tắc nghẽn nếu bạn có các cảnh phức tạp có hình học lặp lại hoặc không gian nội thất.
- Theo dõi mọi thứ bằng API Chỉ số hiệu suất để đảm bảo các thay đổi của bạn thực sự giúp ích
- Khám phá các biện pháp tối ưu hoá URP bổ sung để có thêm khoảng trống hiệu suất
Điều quan trọng là bạn phải liên tục đo lường và lặp lại. Không phải biện pháp tối ưu hoá nào cũng mang lại lợi ích như nhau cho mọi dự án, vì vậy hãy sử dụng Metrics API Chỉ số hiệu suất để có ý tưởng rõ ràng về những gì thực sự giúp ích cho trường hợp sử dụng cụ thể của bạn.
Bước tiếp theo: mở rộng kỹ năng
Bạn muốn đi sâu hơn nữa? Hãy tham khảo các nguồn thông tin sau:
- Hướng dẫn hiệu suất Unity cho Android XR – Hướng dẫn đầy đủ từng bước về cách triển khai tất cả các tính năng được đề cập ở đây.
- Bắt đầu sử dụng Unity và Android XR – Thiết lập môi trường phát triển và bắt đầu xây dựng.
- Tài liệu dành cho nhà phát triển Android XR – Hướng dẫn toàn diện cho tất cả các tính năng của Android XR
Tiếp tục đọc
-
Tin tức về sản phẩm
Chúng tôi rất vui mừng thông báo rằng Android XR đã chính thức hỗ trợ Unreal Engine và Godot. Chúng tôi cũng ra mắt các công cụ mới được thiết kế để tăng năng suất và cho phép các tính năng XR mới: Trung tâm công cụ Android XR và Khung tương tác Android XR.
Luke Hopkins, Ryan Bartley • Đọc trong 4 phút
-
Tin tức về sản phẩm
Mỗi năm, Google I/O đều đưa ra các thông báo và tài nguyên mới trên các hệ sinh thái và sản phẩm, bao gồm cả quá trình phát triển Android. Khi quá trình phát triển chuyển sang các công cụ hỗ trợ AI và tác nhân, chúng tôi đã mở rộng các dịch vụ của mình để hỗ trợ bạn tốt hơn, bất kể bạn quyết định xây dựng cho Android như thế nào.
Simona Milanovic • Đọc trong 2 phút
-
Tin tức về sản phẩm
Tại Google I/O ‘26, chúng tôi đã giới thiệu cách những tiến bộ mới nhất trong hệ sinh thái Android có thể giúp bạn nâng cao chất lượng ứng dụng đồng thời tối đa hoá hiệu quả phát triển.
Ataul Munim • Đọc trong 3 phút
Nhận thông tin cập nhật
Nhận thông tin chi tiết mới nhất về quá trình phát triển Android trong hộp thư đến của bạn hằng tuần.