Samsung Galaxy XR đã ra mắt, chạy trên Android XR! Bài đăng này trên blog nằm 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.v.) đượ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 thông qua sự hợp tác với Google và Qualcomm. Đây là thời điểm thú vị đối với 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 của mình.
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ể 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à yếu tố 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 tốc độ khung hình mục tiêu trong XR, ứng dụng có thể gây ra những vấn đề nghiêm trọng hơn nhiều, chẳng hạn như say tàu xe.
Trong hướng dẫn này, chúng tôi sẽ giới thiệu cho bạn những điểm tối ưu hoá hiệu suất thiết yếu mà bạn cần hiểu rõ để 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 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à mục tiêu của chúng tôi:
- Tối thiểu: 72 khung hình/giây (nằm trong nguyên tắc về chất lượng phát)
- 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 bạn cần duy trì tốc độ khung hình cao như vậy, 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 tìm hiểu 2 tính năng hiệu suất dành riêng cho thực tế mở rộng: 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 phương pháp tối ưu hoá có hai chế độ. Chế độ đầu tiên là chế độ tĩnh, chế độ này kết xuất 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. Chế độ này kết xuất cụ thể khu vực bạn đang nhìn vào 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, tính năng này bắt chước cách hoạt động của thị giác con người – chúng ta chỉ nhìn thấy chi tiết rõ ràng ở khu vực cụ thể mà chúng ta đang tập trung.
Phương thức 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 tính năng 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 trong 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 một 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ó tính năng kết xuất tập trung, bạn sẽ khó duy trì tốc độ 90 khung hình/giây khi cố gắng kết xuất mọi thứ trong "trường nhìn". Với tính năng 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 xung quanh sẽ 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
Giảm mẫu phụ Vulkan là trợ thủ đắc lực của tính năng kết xuất tập trung. Trong khi tính năng kết xuất tập trung quyết định nội dung cần kết xuất ở các mức chất lượng khác nhau, thì Tính năng lấy mẫu phụ Vulkan sẽ 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 tính năng kết xuất tập trung, tính năng Lấy mẫu phụ của Vulkan sẽ giúp bạn tăng thêm 0,5 mili giây hiệu suất. Công nghệ này cũng giúp làm mịn 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 một 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à chế độ điều khiển, việc kết hợp tính năng kết xuất tập trung với tính năng Lấy mẫu phụ Vulkan có nghĩa là các chế độ đ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ẽ 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 phần tử tương tác bổ sung hoặc giảm 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 tính năng 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 thực thể và loại bỏ thông minh. Những kỹ thuật 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 độ che khuất đáng kể.
Ngăn kéo thường trú của GPU
GPU Resident Drawer tự động sử dụng tính năng tạo thực thể GPU để giảm số lượng hàm 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ẽ gộp các đối tượng tương tự 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 các đạo cụ rải rác trong môi trường.
Hãy tưởng tượng 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ó GPU Resident Drawer, bạn sẽ có 200 lệnh 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ượng lệnh gọi vẽ xuống chỉ còn 5 đến 10. Nhờ đó, bạn có thể tiết kiệm được rất nhiều GPU và đầu tư vào logic chơi trò chơi hoặc tính toán vật lý.
Loại bỏ phần bị che khuất bằng GPU
GPU Occlusion Culling (Loại bỏ vật thể bị che khuất bằng 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ị che khuất (ẩ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 hữu ích 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à vật thể 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 ở phòng khách, tại sao bạn lại lãng phí chu kỳ GPU để kết xuất nhà bếp chi tiết hoàn toàn bị che khuất 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 những đối tượng bị ẩn, giúp bạn có thêm ngân sách hiệu suất cho những đối tượng thực sự hiển thị.
Theo dõi hiệu suất
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 điểm 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ả.
Performance Metrics API
Performance Metrics API cung cấp tính năng giám sát mức sử dụng bộ nhớ, hiệu suất CPU và hiệu suất GPU của ứng dụng theo thời gian thực. Công cụ này cung cấp cho bạn dữ liệu toàn diện từ các lớp trình kết hợp và thời gian chạy, nhờ đó, bạn có thể biết chính xác những gì đang diễn ra trong ứng dụng của mình.
Thiết lập một đường cơ sở trước khi thực hiện các thay đổi, áp dụng một quy trình 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 bạn thực sự đang 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ủa bạn có thể là 13 mili giây, tức là 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ại và hy vọng bạn sẽ thấy thời gian kết xuất 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 nhiều chi tiết hơn vào cảnh, cải thiện chất lượng hình ảnh ở những nơi khác hoặc chỉ cần đảm bảo hiệu suất mượt mà hơn trên nhiều nội dung.
Nếu không có những chỉ số này, bạn sẽ tối ưu hoá mà không biết gì. Performance Metrics API (API Chỉ số hiệu suất) cho bạn biết thông tin chính xác về những yếu tố 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
Frame Debugger là công cụ tích hợp của Unity giúp bạn hiểu chính xác cách cảnh của bạn được kết xuất, từng khung hình. Công cụ này cho bạn thấy trình tự của các lệnh gọi vẽ và cho phép bạn thực hiện từng bước để xác minh rằng các hoạt động 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 SRP Batcher đang hoạt động? Tìm các mục "RenderLoopNewBatcher" trong Trình gỡ lỗi khung hình. Bạn có đang kiểm tra xem GPU Resident Drawer có đang xử lý hàng loạt đúng cách không? Tìm các mục "Hybrid Batch Group" (Nhóm kết hợp theo lô). Những thông tin xác nhận trực quan này giúp bạn biết liệu các chế độ cài đặt tối ưu hoá có thực sự có hiệu lực hay khô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ự được vẽ riêng lẻ thay vì theo lô, thì điều đó cho thấy tính năng tạo thực thể hoặc tạo lô của bạn đang hoạt động không chính xác. Trình gỡ lỗi khung giúp bạn thấy ngay những vấn đề này để có thể giải quyết.
Các điểm tối ưu hoá khác
Ngoài những hoạt động 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ố hoạt động tối ưu hoá bổ sung khác. Sau đây là thông tin tóm tắt về tính năng này:
- Chế độ cài đặt URP: Tắt HDR và Xử lý hậu kỳ cho XR di động. Những 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ể.
- SRP Batcher: Giảm chi phí CPU cho những 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 trong khoảng từ 72 khung hình/giây đến 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ì tính ổn định, sau đó tăng tốc độ khung hình trong các khoảnh khắc đơn giản hơn để có được trải nghiệm tương tác siêu mượt mà.
- Kết cấu có chiều sâu/độ mờ: Tắt các kết cấu này trừ phi bạn cần chúng cho các hiệu ứng chươ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àm giảm hiệu suất mà không mang lại lợi ích cho hầu hết các ứng dụng.
- URP Render Scale (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 thấp hơn để cải thiện 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ề những nội dung tối ưu hoá này và nhiều nội dung 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 thực tế mở rộng không chỉ là một tiêu chí kỹ thuật. Đây là điểm 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. Những điểm tối ưu hoá mà chúng ta đã đề 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 tính năng 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 thực tế mở rộng này giúp tiết kiệm GPU ngay lập tức và đáng kể.
- Thêm GPU Resident Drawer và Occlusion Culling nếu bạn có các cảnh phức tạp với 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 Performance Metrics API để đảm bảo các thay đổi của bạn thực sự hữu ích
- Khám phá các chế độ tối ưu hoá URP bổ sung để có thêm khoảng trần 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 mọi hoạt động tối ưu hoá đều mang lại lợi ích như nhau cho mọi dự án, vì vậy, hãy sử dụng Performance Metrics API để 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 Unity cho Android XR – Hướng dẫn triển khai từng bước đầy đủ cho tất cả các tính năng được đề cập tại đây.
- Làm quen với 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 về mọi tính năng của Android XR
Tiếp tục đọc
-
Tin tức về sản phẩm
Mỗi nhà phát triển đều có quy trình làm việc và nhu cầu riêng về AI. Do đó, 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 để hỗ trợ chức năng AI trong Android Studio
Matthew Warner • Đọc trong 2 phút
-
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 bản 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 một cách hiệu quả hơn, giúp việc tạo ứng dụng Android chất lượng cao trở nên dễ dàng hơn bao giờ hết.
Matt Dyor • Đọc trong 3 phút
-
Tin tức về sản phẩm
Tại Google, chúng tôi cam kết mang những mô hình AI mạnh mẽ nhất đến thẳng các thiết bị Android mà bạn đang dùng. Hôm nay, chúng tôi rất vui mừng thông báo về việc phát hành mô hình nguồn mở tiên tiến mới nhất của mình: Gemma 4.
Caren Chang, David Chou • Đọ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ề hoạt động phát triển trên Android trong hộp thư đến của bạn mỗi tuần.