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 giúp máy ảnh 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 độ 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. Để biết ví dụ về Độ sâu trong thực tế, hãy khám phá các cảnh mẫu trong ARCore Depth Lab (Phòng thí nghiệm độ sâu ARCore). Phòng thí nghiệm này minh hoạ nhiều cách để truy cập dữ liệu độ sâu. Ứng dụng Unity này là ứng dụng 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 Andy ảo mà người dùng có thể muốn đặt trong một cảnh có chứa một cốp xe bên cạnh một cánh cửa. Khi kết xuất mà không có hiện tượng che khuất, Andy sẽ chồng lên cạnh của thân cây một cách không thực tế. Nếu sử dụng độ sâu của cảnh và hiểu được khoảng cách của Andy ả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 Andy bằng tính năng che khuất, giúp Andy trông giống thật hơn trong môi trường xung quanh.
Biến đổi 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 để lắng đọng trên tay vịn và gối của ghế dài hoặc phủ một lớp sương mù lên phòng khách của họ. 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 ảnh
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, 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
Bạn có thể dùng độ sâu để cải thiện kết quả kiểm thử lượt nhấn. 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 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
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 lại chế độ xem 3D của 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 hình ảnh thiết bị từ nhiều góc độ và so sánh các hình ả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ý độ sâu, ngay cả khi người dùng chỉ di chuyển một chút. Công cụ 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 tăng cường 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 này có thể ước tính độ sâu chính xác và mạnh mẽ 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 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 ảnh độ sâu
Với Depth API, bạn có thể truy xuất hình ảnh độ sâu khớp với mọi khung hình 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 kết với độ 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.