Samsung Galaxy XR đã ra mắt, chạy Android XR! Bài đăng trên blog này là một phần của Tuần lễ tiêu điểm 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 đạt đượ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 các thiết bị không phải XR có thể gây khó chịu cho người dù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 không đạt được mục tiêu về tốc độ khung hình trong XR, bạn có thể gặp phải 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 hoạt động cùng 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 hướng đến:
- Tối thiểu: 72 khung hình/giây (một phần của 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 về 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 về 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 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ẽ gặp khó khăn trong việc 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ữ những 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 nhiều chi tiết hơn vào cảnh.
Lấy mẫu phụ Vulkan
Lấy mẫu phụ Vulkan là người bạn tốt nhất 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 ở 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 sẽ mang lại cho bạn 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ể trông rõ nét hơn.
Ví dụ: trong chế độ mô phỏng máy bay, nơi người dùng tập trung vào các công cụ 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 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 không có vẻ là nhiều, nhưng đó là sự khác biệt giữa việc có chỗ cho một phần tử 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 của 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 của GPU giúp giảm căng thẳng không cần thiết thông qua việc tạo thực thể và loại bỏ thông minh. Những 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 vẽ thường trú GPU
Trình vẽ thường trú GPU tự động sử dụng tính năng tạo 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ó 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 khắp 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 vẽ thường trú GPU, bạn sẽ có 200 lần gọi vẽ tiêu tốn 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 xuống chỉ còn 5 đến 10 lần gọi vẽ. Đâ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
Tính năng 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 không lãng phí GPU vào 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à đố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 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 Metrics hiệu suất cung cấp tính năng giám sát theo thời gian thực 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 mình đang thực sự cải thiện hiệu suất thay vì đoán.
Trước khi bật tính năng 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. Bật tính năng 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 đã đạt được để thêm nhiều chi tiết hơn vào cảnh, cải thiện chất lượng hình ảnh ở nơi khác hoặc đơ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 một. Công cụ này cho bạn thấy trình tự các hàm gọi vẽ và cho phép bạn thực hiện 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. Kiểm tra xem Trình vẽ thường trú GPU có đang xử lý hàng loạt đúng cách hay 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.
Thực hiện từng bước qua 50 lệnh gọi vẽ đầu tiên của cảnh. Nếu bạn thấy các đối tượng tương tự đang được vẽ riêng lẻ thay vì theo lô, điều đó cho biết rằng tính năng tạo 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 hiển thị ngay các vấn đề này để bạn có thể giải quyết.
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à bản 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 có tác động tối thiểu đến hình ảnh 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 về hình ảnh 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ể chương trình đổ bóng. 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ệnh 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ì sự ổn định, sau đó tăng tốc độ khung hình trong những khoảnh khắc đơn giản hơn để tương tác siêu mượt mà.
- Kết cấu độ sâu/đục: Tắt các kết cấu này trừ phi cần thiết cho hiệu ứng trình đổ bóng. Chúng 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 độ phân giải 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 khác, hãy xem Hướng dẫn đầy đủ về hiệu suất của 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 vẽ 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.
- Giám sát 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ự có hiệu quả
- 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 về hiệu suất của 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
Giờ đây, việc kiểm thử các tương tác trên nhiều thiết bị trở nên dễ dàng hơn bao giờ hết nhờ Trình mô phỏng Android.
Steven Jenkins • 2 phút đọc
-
Tin tức về sản phẩm
Quy trình làm việc và nhu cầu về AI của mỗi nhà phát triển là riêng biệt. Vì vậy, bạn cần có thể chọn cách AI hỗ trợ quá trình phát triển của mình. Vào tháng 1, chúng tôi đã giới thiệu khả năng chọn bất kỳ mô hình AI cục bộ hoặc từ xa nào để cung cấp chức năng AI trong Android Studio
Matthew Warner • 2 phút đọc
-
Tin tức về sản phẩm
Android Studio Panda 3 hiện đã ổn định và sẵn sàng để bạn sử dụng trong quá trình phát hành chính thức. Bản phát hành này giúp bạn kiểm soát và tuỳ chỉnh quy trình làm việc dựa trên AI nhiều hơn nữa, giúp bạn dễ dàng xây dựng các ứng dụng Android chất lượng cao hơn bao giờ hết.
Matt Dyor • 3 phút đọc
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 được gửi đến hộp thư đến của bạn hằng tuần.