Hướng dẫn dành riêng cho nền tảng
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Unreal Engine
Là nhà phát triển ứng dụng AR, bạn muốn kết hợp liền mạch giữa thực tế và ảo cho người dùng. Khi đặt một đối tượng ảo vào cảnh, người dùng muốn đối tượng đó trông giống như thuộc về thế giới thực. Nếu đang xây dựng một ứng dụng để người dùng mua sắm đồ nội thất, bạn muốn họ tự tin rằng chiếc ghế bành họ sắp mua sẽ phù hợp với không gian của họ.
Depth API (API Chiều sâu) giúp camera trên thiết bị hiểu được kích thước và hình dạng của các đối tượng thực trong một cảnh. Công nghệ này tạo ra hình ảnh độ sâu hoặc bản đồ độ sâu, nhờ đó thêm một lớp thực tế vào ứng dụng của bạn. Bạn có thể sử dụng thông tin do hình ảnh độ sâu cung cấp để mang lại trải nghiệm sống động và chân thực cho người dùng.
Các trường hợp sử dụng để phát triển bằng Depth API
Depth API có thể hỗ trợ tính năng che khuất đối tượng, cải thiện khả năng đắm chìm và các hoạt động tương tác mới giúp nâng cao tính chân thực của trải nghiệm thực tế tăng cường. Sau đây là một số cách bạn có thể sử dụng tính năng này trong dự án của mình. Để xem ví dụ về tính năng Độ sâu trong hành động, hãy khám phá các cảnh mẫu trong Phòng thí nghiệm về độ sâu của ARCore. Phòng thí nghiệm này trình bày nhiều cách để truy cập vào dữ liệu độ sâu. Ứng dụng Unity này là nguồn mở trên GitHub.
Bật tính năng che khuất
Tính năng che khuất (occlusion) hoặc kết xuất chính xác một vật thể ảo phía sau các vật thể trong thế giới thực là yếu tố quan trọng nhất để mang lại trải nghiệm thực tế tăng cường sống động. Hãy xem xét một An ảo mà người dùng có thể muốn đặt vào một cảnh có một chiếc rương bên cạnh cửa ra vào. Được kết xuất mà không bị che khuất, An sẽ chồng lên một cách không thực tế với cạnh của thân cây. Nếu sử dụng chiều sâu của một cảnh và nắm được khoảng cách của An ảo so với môi trường xung quanh (như thân cây gỗ), bạn có thể kết xuất chính xác An khi bị che khuất, khiến cho nó trông chân thực hơn nhiều trong môi trường xung quanh.
Biến đổi khung cảnh
Cho người dùng thấy một thế giới mới, sống động bằng cách kết xuất những bông tuyết ảo đặt trên cánh tay và gối trên ghế đi-văng hoặc để phòng khách của họ trong sương mù. Bạn có thể sử dụng Độ sâu để tạo một cảnh trong đó ánh sáng ảo tương tác, ẩn sau và chiếu lại các đối tượng thực.
Khoảng cách và độ sâu trường
Bạn cần cho thấy một vật thể ở xa? Bạn có thể sử dụng tính năng đo khoảng cách và thêm hiệu ứng độ sâu trường ảnh, chẳng hạn như làm mờ nền hoặc nền trước của một cảnh, bằng Depth API.
Cho phép người dùng tương tác với các đối tượng AR
Cho phép người dùng "chạm" vào thế giới thông qua ứng dụng của bạn bằng cách cho phép nội dung ảo tương tác với thế giới thực thông qua các hiệu ứng va chạm và vật lý. Để các vật thể ảo vượt qua các chướng ngại vật trong thế giới thực hoặc để các viên bi sơn ảo bắn vào và bắn tung tóe lên một cây trong thế giới thực. Khi kết hợp va chạm dựa trên chiều sâu với vật lý trò chơi, bạn có thể tạo ra trải nghiệm sống động.
Cải thiện kiểm thử lượt nhấn
Chiều sâu có thể được dùng để cải thiện kết quả kiểm tra lượt truy cập. Kiểm thử va chạm trên mặt phẳng chỉ hoạt động trên các bề mặt phẳng có hoạ tiết, trong khi kiểm thử va chạm theo chiều sâu chi tiết hơn và hoạt động ngay cả trên các khu vực không phải là mặt phẳng và có hoạ tiết thấp. Lý do là các thử nghiệm nhấn sâu sử dụng thông tin độ sâu từ cảnh để xác định chính xác độ sâu và hướng của một điểm.
Trong ví dụ sau, Andy màu xanh lục đại diện cho các thử nghiệm nhấn tiêu chuẩn trên mặt phẳng và Andy màu đỏ đại diện cho các thử nghiệm nhấn theo chiều sâu.
Khả năng tương thích với thiết bị
Depth API chỉ được hỗ trợ trên các thiết bị có sức mạnh xử lý để hỗ trợ chiều sâu và bạn phải bật API này theo cách thủ công trong ARCore, như mô tả trong phần Bật chiều sâu.
Một số thiết bị cũng có thể cung cấp cảm biến độ sâu phần cứng, chẳng hạn như cảm biến thời gian bay (ToF). Hãy tham khảo trang Thiết bị được hỗ trợ ARCore để biết danh sách mới nhất về các thiết bị hỗ trợ Depth API và danh sách các thiết bị có cảm biến độ sâu phần cứng được hỗ trợ, chẳng hạn như cảm biến ToF.
Hình ảnh có chiều sâu
API độ sâu sử dụng thuật toán độ sâu từ chuyển động để tạo hình ảnh chiều sâu, mang lại chế độ xem 3D về thế giới. Mỗi pixel trong hình ảnh độ sâu được liên kết với một phép đo khoảng cách của cảnh từ máy ảnh. Thuật toán này chụp nhiều ảnh thiết bị từ nhiều góc độ và so sánh các ảnh đó để ước tính khoảng cách đến từng pixel khi người dùng di chuyển điện thoại. Công nghệ này sử dụng công nghệ học máy một cách có chọn lọc để tăng khả năng xử lý chiều sâu, ngay cả khi người dùng chỉ chuyển động ở mức tối thiểu. API này cũng tận dụng mọi phần cứng bổ sung mà thiết bị của người dùng có thể có. Nếu thiết bị có cảm biến độ sâu chuyên dụng, chẳng hạn như ToF, thì thuật toán sẽ tự động hợp nhất dữ liệu từ tất cả các nguồn có sẵn. Điều này giúp nâng cao hình ảnh độ sâu hiện có và cho phép độ sâu ngay cả khi máy ảnh không di chuyển. Kỹ thuật này cũng mang lại độ sâu tốt hơn trên các bề mặt có ít hoặc không có đặc điểm, chẳng hạn như tường trắng hoặc trong các cảnh động có người hoặc vật thể chuyển động.
Hình ảnh sau đây cho thấy hình ảnh do máy ảnh chụp một hành lang có một chiếc xe đạp trên tường và hình ảnh trực quan của hình ảnh độ sâu được tạo từ hình ảnh do máy ảnh chụp. Các khu vực màu đỏ ở gần máy ảnh hơn và các khu vực màu xanh dương ở xa hơn.
Độ sâu từ chuyển động
Dữ liệu độ sâu sẽ có sẵn khi người dùng di chuyển thiết bị. Thuật toán có thể thu được số liệu ước tính mạnh mẽ và chính xác về độ sâu từ 0 đến 65 mét. Kết quả chính xác nhất sẽ xuất hiện khi thiết bị cách cảnh trong thế giới thực từ nửa mét đến khoảng 5 mét. Những trải nghiệm khuyến khích người dùng di chuyển thiết bị nhiều hơn sẽ mang lại kết quả ngày càng tốt hơn.
Thu thập ảnh độ sâu
Với depth API, bạn có thể truy xuất hình ảnh chiều sâu phù hợp với mọi khung hình của máy ảnh. Hình ảnh độ sâu đã thu được có cùng dấu thời gian và trường nhìn nội tại với máy ảnh. Dữ liệu chiều sâu hợp lệ chỉ có sẵn sau khi người dùng bắt đầu di chuyển thiết bị của họ, vì chiều sâu được thu thập từ chuyển động. Các bề mặt có ít hoặc không có đặc điểm, chẳng hạn như tường trắng, sẽ có liên quan đến chiều sâu không chính xác.
Bước tiếp theo
- Hãy xem Phòng thí nghiệm độ sâu ARCore để tìm hiểu các cách truy cập dữ liệu độ sâu.