Hướng dẫn dành riêng cho từng nền tảng
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Unreal Engine
Là một nhà phát triển ứng dụng thực tế tăng cường, bạn muốn kết hợp liền mạch giữa thế giới ảo và thế giới thực 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 tạo một ứng dụng để người dùng mua sắm đồ nội thất, bạn muốn họ tin tưởng rằng chiếc ghế bành mà họ sắp mua sẽ vừa với không gian của họ.
Depth API giúp camera của thiết bị hiểu được kích thước và hình dạng của các vật thể thực trong một cảnh. Công nghệ này tạo ra hình ảnh chiều sâu hoặc bản đồ chiều sâu, nhờ đó tăng thêm một lớp chân thực cho các ứng dụng của bạn. Bạn có thể sử dụng thông tin do hình ảnh chiều sâu cung cấp để mang đến 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 độ chân thực và tạo ra những hoạt động tương tác mới lạ 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 các dự án của riêng mình. Để xem ví dụ về cách hoạt động của API Độ sâu, hãy khám phá các cảnh mẫu trong ARCore Depth Lab. Đây là một ứng dụng minh hoạ 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
Việc che khuất hoặc kết xuất chính xác một đối tượng ảo phía sau các đối tượng trong thế giới thực là điều tối quan trọng đối với trải nghiệm AR sống động. Hãy cân nhắc một Andy ảo mà người dùng có thể muốn đặt vào một cảnh có chứa một chiếc rương bên cạnh cửa. Nếu được kết xuất mà không bị che khuất, Andy sẽ chồng lên mép thân cây một cách không thực tế. Nếu sử dụng chiều sâu của một cảnh và biết được khoảng cách của Andy ảo so với môi trường xung quanh (chẳng hạn như thân cây gỗ), bạn có thể kết xuất Andy một cách chính xác mà không bị che khuất, giúp Andy trông chân thực hơn nhiều trong môi trường xung quanh.

Biến đổi một cảnh
Đưa người dùng vào 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 rơi trên cánh tay và gối của ghế sofa, hoặc tạo ra một màn sương mù trong phòng khách của họ. Bạn có thể sử dụng Độ sâu để tạo một cảnh trong đó các nguồn sáng ảo tương tác, ẩn sau và chiếu sáng lại các đối tượng thực.
Khoảng cách và độ sâu trường ảnh
Bạn cần cho thấy một vật ở 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 thực tế tăng cường
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 va chạm và vật lý. Cho phép các vật thể ảo đi qua các vật cản trong thế giới thực hoặc cho phép các quả bóng sơn ảo bắn trúng và bắn tung toé lên một cái cây trong thế giới thực. Khi kết hợp va chạm dựa trên độ sâu với vật lý trong trò chơi, bạn có thể tạo ra một trải nghiệm sống động.
Cải thiện kiểm thử lượt nhấn
Bạn có thể dùng độ sâu để cải thiện kết quả kiểm tra lượt nhấn. Kiểm thử lượt nhấn vào 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ử lượt nhấn vào độ sâu chi tiết hơn và hoạt động ngay cả trên các khu vực không phẳng và có ít hoạ tiết. Lý do là vì các lượt kiểm tra lượt truy cập theo chiều sâu sử dụng thông tin về chiều sâu trong cảnh để xác định chiều sâu và hướng chính xác của một điểm.
Trong ví dụ sau, các Andy màu xanh lục biểu thị các lượt kiểm tra lượt truy cập vào mặt phẳng tiêu chuẩn và các Andy màu đỏ biểu thị các lượt kiểm tra lượt truy cập 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ó khả năng xử lý để hỗ trợ độ 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 tính năng Độ 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 Các thiết bị được hỗ trợ ARCore để xem 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 chiều sâu
Depth API sử dụng thuật toán chiều sâu từ chuyển động để tạo hình ảnh chiều sâu, mang đến chế độ xem 3D về thế giới. Mỗi pixel trong hình ảnh chiều sâu đều được liên kết với một phép đo về khoảng cách từ cảnh đến camera. Thuật toán này lấy nhiều hình ảnh thiết bị ở các góc khác nhau và so sánh chúng để ướ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 chọn lọc công nghệ học máy để tăng khả năng xử lý độ sâu, ngay cả khi người dùng chỉ cử động rất ít. Ngoài ra, tính năng này còn 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ó một 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 tăng cường hình ảnh chiều sâu hiện có và cho phép tạo chiều sâu ngay cả khi camera không di chuyển. Tính năng này cũng mang lại chiều 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.
Các hình ảnh sau đây cho thấy hình ảnh do camera chụp về một hành lang có xe đạp trên tường và hình ảnh trực quan về hình ảnh chiều sâu được tạo từ hình ảnh do camera chụp. Các vùng màu đỏ ở gần camera hơn, còn các vùng 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 này có thể ước tính độ sâu chính xác và rõ ràng từ 0 đến 65 mét. Kết quả chính xác nhất sẽ có được khi thiết bị cách cảnh thực tế 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 hình ảnh chiều sâu
Với Depth API, bạn có thể truy xuất những hình ảnh chiều sâu phù hợp với mọi khung hình camera. Hình ảnh độ sâu thu được có cùng dấu thời gian và thông số nội tại về trường nhìn với camera. 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ị, vì chiều sâu được lấy từ chuyển động. Những 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 kết với độ sâu không chính xác.
Bước tiếp theo
- Hãy xem ARCore Depth Lab để tìm hiểu các cách truy cập vào dữ liệu về độ sâu.