Android XR hỗ trợ các ứng dụng được xây dựng bằng OpenXR thông qua việc hỗ trợ quy cách OpenXR 1.1 và một số tiện ích của nhà cung cấp. OpenXR là một tiêu chuẩn mở cho phép bạn tạo ra trải nghiệm sống động và tương tác bằng cách sử dụng một bộ API chung trên nhiều thiết bị XR.
Tính năng
Android XR hỗ trợ các tính năng cho phép bạn tạo ứng dụng khai thác tối đa các chức năng độc đáo của thiết bị XR bằng OpenXR. Các tính năng này bao gồm những tính năng sau.
- Khung Thực thể không gian
- Một nền tảng hợp nhất để hiểu cảnh và suy luận không gian. Cho phép các ứng dụng khám phá, truy vấn và theo dõi các thực thể không gian thực trong môi trường (bao gồm cả mặt phẳng, lưới 3D, hộp giới hạn, hình ảnh, điểm đánh dấu và chú thích), lọc kết quả khám phá bằng ranh giới không gian, truy vấn nguyên mẫu thực thể, tạo neo không gian gắn với thực thể, thực hiện truyền tia thực thể không gian và lưới, đồng thời duy trì các thực thể không gian trong các phiên ứng dụng.
- Vùng chứa không gian
- Một API cửa sổ không gian đa nền tảng (
XR_EXT_spatial_containervàXR_EXT_spatial_container_self_rendering) cho phép các ứng dụng tạo và kết xuất vùng chứa không gian 3D có thể hiển thị (cả có giới hạn và sống động) bằng cách sử dụng chuỗi hoán đổi OpenXR và các lớp thành phần, cho phép người dùng trải nghiệm nhiều vùng chứa không gian cùng một lúc. - Neo không gian địa lý và neo không gian địa lý
- Cho phép các ứng dụng theo dõi tư thế tương đối của Trái Đất bằng cách sử dụng Dịch vụ định vị trực quan (VPS) và GPS của Google, xác thực bằng các dịch vụ của Google Cloud, đồng thời đặt Điểm neo không gian địa lý và Điểm neo bề mặt ở các vĩ độ, kinh độ và độ cao cụ thể.
- Vật phẩm có thể theo dõi
- Hỗ trợ tính năng phát hiện mặt phẳng, tức là khả năng xác định và theo dõi các bề mặt phẳng trong môi trường, cho phép đặt các đối tượng ảo liên quan đến thế giới thực và Điểm neo, tức là các điểm tham chiếu ảo có thể được gắn vào các đối tượng hoặc vị trí trong thế giới thực, nhờ đó nội dung ảo vẫn được định vị và định hướng chính xác ngay cả khi người dùng di chuyển xung quanh.
- Raycasting
- Một kỹ thuật dùng để xác định điểm giao nhau giữa một tia ảo và các đối tượng hoặc lưới thế giới trong cảnh, giúp tạo điều kiện cho các hoạt động tương tác như chọn và thao tác với các phần tử ảo.
- Khả năng lưu trữ dài lâu của điểm neo
- Khả năng lưu và khôi phục các điểm neo trên nhiều phiên, cho phép đặt nội dung ảo một cách nhất quán và ổn định trong môi trường.
- Theo dõi đối tượng
- Khả năng theo dõi chuột, bàn phím và các đối tượng vật lý khác trong thế giới thực.
- Theo dõi hình ảnh và điểm đánh dấu
- Khả năng phát hiện và theo dõi hình ảnh tham khảo phẳng và điểm đánh dấu vật lý (chẳng hạn như AprilTags và điểm đánh dấu ArUco) trong môi trường.
- Theo dõi mã QR
- Khả năng theo dõi Mã QR trong môi trường thực tế và giải mã dữ liệu của mã QR.
- Hoạ tiết chiều sâu
- Tạo bản đồ độ sâu cung cấp thông tin về khoảng cách giữa camera và các đối tượng trong cảnh, giúp tạo ra hiệu ứng che khuất và tương tác chân thực hơn.
- Môi trường thực tế ảo
- Khả năng kết hợp cảnh quay thực tế bằng camera với nội dung ảo, tạo ra trải nghiệm thực tế hỗn hợp, kết hợp liền mạch giữa thế giới thực và thế giới kỹ thuật số.
- Giảm độ sáng tổng thể của chế độ thực tế
- Cho phép các ứng dụng đặt và truy vấn mức độ làm mờ xuyên thấu chung để kết hợp nội dung ảo với môi trường thực tế, đồng thời nhận sự kiện khi mức độ làm mờ thay đổi.
- Làm mờ khung nhìn
- Hiển thị vùng biên được làm mờ do thời gian chạy áp dụng để các ứng dụng có thể bố trí các phần tử trên giao diện người dùng trong vùng an toàn mà không bị ảnh hưởng bởi hiệu ứng làm mờ vùng biên.
- Lưới cảnh
- Khả năng thu nạp lưới 3D của môi trường, có thể dùng cho các tương tác vật lý, che khuất và các tương tác nhận biết thế giới khác.
- Chế độ thực tế của lớp thành phần
- Cho phép cắt lớp bố cục truyền qua đa giác, có thể dùng để đưa các đối tượng trong thế giới thực vào cảnh.
- Theo dõi khuôn mặt
- Khả năng theo dõi các đặc điểm trên khuôn mặt của người dùng từ các nguồn dữ liệu hình ảnh và âm thanh, giúp tạo ra hình đại diện và nhân vật ảo chân thực và biểu cảm hơn.
- Theo dõi ánh mắt
- Cung cấp vị trí và hướng mắt của người dùng, được thiết kế để giúp tư thế mắt của hình đại diện chân thực hơn.
- Theo dõi cử chỉ tay
- Khả năng theo dõi vị trí và chuyển động của tay người dùng.
- Lưới bàn tay
- Cung cấp hình ảnh chính xác về bàn tay của người dùng dưới dạng lưới đa giác thấp. Được tối ưu hoá cho việc phân phối từ nền tảng đến ứng dụng để đảm bảo bạn đạt được hiệu suất tốt nhất có thể. Đây là một giải pháp thay thế cho các tiện ích khác sử dụng tư thế liên kết và trọng số kết hợp.
- Theo dõi cơ thể
- Ước tính vị trí và tỷ lệ khớp cơ thể của người dùng bằng cách sử dụng dữ liệu đầu vào theo dõi đầu và tay.
- Ước tính ánh sáng
- Dùng cho các mô hình chiếu sáng (bao gồm cả ánh sáng có hướng, ánh sáng môi trường xung quanh, ánh sáng hài cầu và ánh sáng bản đồ khối) để phù hợp với điều kiện ánh sáng thực tế của người dùng.
Thiết bị đầu vào được hỗ trợ
Android XR cũng hỗ trợ các thiết bị đầu vào sau đây.
- Tương tác bằng tay
- Nhận dạng các cử chỉ tay cụ thể, chẳng hạn như chụm, vuốt và chỉ, cho phép người dùng tương tác với các đối tượng ảo bằng cử chỉ và chuyển động tay.
- Tương tác bằng ánh mắt
- Khả năng theo dõi chuyển động mắt của người dùng, cho phép họ chọn và tương tác với các đối tượng ảo bằng ánh nhìn.
- Bộ điều khiển chuyển động 6DoF
- Khả năng theo dõi vị trí và chuyển động của bộ điều khiển cùng với các liên kết nút và Dpad để kích hoạt hành động hoặc sự kiện di chuột trong ứng dụng.
- Tương tác bằng chuột
- Khả năng người dùng tương tác với các đối tượng thông qua con trỏ chuột trong không gian 3D
Các tính năng hiệu suất được hỗ trợ
Android XR hỗ trợ các tính năng sau đây liên quan đến hiệu suất.
- Kết xuất hố thị giác theo dõi ánh mắt
- Cho phép ứng dụng chỉ hiển thị nội dung có độ phân giải cao hơn tại tiêu điểm của mắt.
- Bẻ cong không gian
- Sử dụng vectơ vận tốc và thông tin kết cấu chiều sâu để tạo khung hình trung gian, giúp tăng tốc độ khung hình cần thiết một cách hiệu quả để người dùng luôn đắm chìm trong trải nghiệm của bạn
- Tổng hợp khung hình
- Sử dụng vectơ chuyển động và dữ liệu khung hình do ứng dụng cung cấp để tổng hợp các khung hình trung gian, cải thiện độ mượt mà của hình ảnh và tốc độ khung hình.
- Các chỉ số về hiệu suất
- Cung cấp các chỉ số hiệu suất của Android XR trong thời gian chạy của thiết bị XR, trình kết hợp và ứng dụng XR hiện tại. Các chỉ số này bao gồm thời gian kết xuất khung hình của CPU, thời gian kết xuất khung hình của GPU, mức sử dụng GPU, tần số CPU, số khung hình/giây và nhiều chỉ số khác.
Hãy xem phần Tổng quan về tính năng OpenXR để biết danh sách đầy đủ các tính năng và tiện ích được hỗ trợ.
Công cụ được hỗ trợ
Các công cụ sau đây được hỗ trợ cho việc phát triển OpenXR bằng Android XR.
Unity
Android XR hỗ trợ Unity, được xây dựng trên OpenXR, cho phép nhà phát triển tạo ra trải nghiệm bằng Unity 6. Tìm hiểu thêm về cách tạo ứng dụng XR bằng Unity trong phần Tổng quan về Unity.
Unreal Engine
Unreal Engine hỗ trợ Android XR thông qua tiêu chuẩn OpenXR, cho phép bạn sử dụng các công cụ và quy trình làm việc tiêu chuẩn trong Unreal Engine 5. Tìm hiểu thêm về cách xây dựng ứng dụng XR bằng Unreal Engine trong phần Tổng quan về Unreal Engine.
Godot
Godot hỗ trợ Android XR thông qua tính năng tích hợp OpenXR, cho phép bạn xây dựng và xuất ứng dụng XR cho Android bằng quy trình làm việc chuẩn của Godot. Tìm hiểu thêm về cách tạo ứng dụng XR bằng Godot trong phần Tổng quan về Godot.
OpenXR™ và biểu trưng OpenXR là các nhãn hiệu thuộc sở hữu của Khronos Group Inc. và được đăng ký làm nhãn hiệu ở Trung Quốc, Liên minh Châu Âu, Nhật Bản và Vương quốc Anh.