Phạm vi độ sâu tối đa có sẵn trong ARCore đã được nâng cấp trong bản phát hành 1.31 vào tháng 5 năm 2022. Bạn nên cập nhật tên phương thức bị ảnh hưởng để có chức năng ứng dụng tốt hơn.

Chiều sâu bổ sung cho chủ nghĩa hiện thực

Hướng dẫn dành riêng cho nền tảng

Là một nhà phát triển ứng dụng AR, bạn sẽ muốn kết hợp liền mạch ảo với thực tế cho người dùng của mình. Khi người dùng đặt một đối tượng ảo vào cảnh của họ, họ sẽ muốn đối tượng đó trông giống như trong thế giới thực. Nếu bạn đang tạo một ứng dụng cho người dùng để mua đồ 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ọ.

API Depth 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 cảnh. Ứng dụng này tạo hình ảnh về chiều sâu hoặc bản đồ độ sâu, nhờ đó bạn sẽ thêm một lớp hiện thực vào các ứng dụng của mình. Bạn có thể sử dụng thông tin do hình ảnh chiều sâu cung cấp để cung cấp trải nghiệm người dùng chân thực và thực tế.

Các trường hợp phát triển bằng API Depth

API Depth có thể hỗ trợ tính năng che kín đối tượng, cải thiện trải nghiệm thực tế ảo và tương tác mới mẻ để nâng cao tính chân thực trong các 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 trong dự án của mình. Để xem ví dụ về Chiều sâu hoạt động, hãy khám phá các cảnh mẫu trong Phòng thí nghiệm độ sâu ARCore, cho thấy nhiều cách để truy cập vào dữ liệu chiều sâu. Ứng dụng Unity này là nguồn mở trên Github.

Bật tính năng che kín

Bạn có thể trải nghiệm hoặc kết xuất một đối tượng ảo đằng sau các đối tượng thực tế một cách chính xác. Hãy cân nhắc việc sử dụng lại một Andy trên mạng mà người dùng có thể muốn đặt trong một cảnh có cửa sổ bên cạnh cửa. Hiển thị mà không bị che khuất, Andy sẽ chồng chéo thực tế với cạnh của đường dây. Nếu bạn sử dụng chiều sâu của cảnh và hiểu được mối quan hệ lại của Andy trên mạng so với môi trường xung quanh như thân gỗ, bạn có thể hiển thị lại chính xác Andy cho phép che kín, làm cho cảnh này trông thực tế hơn nhiều trong môi trường xung quanh.

Biến đổi cảnh

Đưa người dùng đến với một thế giới mới mẻ và sống động bằng cách kết hợp các bông tuyết ảo để nằm yên trên cánh tay và gối của ghế dài, hoặc truyền ánh sáng phòng khách trong sương mù. Bạn có thể dùng tính năng Chiều sâu để tạo cảnh cảnh đèn ảo tương tác, ẩn phía sau và làm sáng lại các vật thể thực.

Khoảng cách và chiều sâu của trường

Bạn cần chứng minh một điều gì đó ở 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 cảnh, bằng API Độ sâu.

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 “cảm ứng” 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 vật lý va chạm và vật lý. Yêu cầu 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 bắn đạn sơn ảo vào cây cối trong thế giới thực. Khi kết hợp sự va chạm sâu với vật lý của trò chơi, bạn có thể làm cho trải nghiệm trở nên sống động.

Cải thiện thử nghiệm nhấn

Chiều sâu có thể được dùng để cải thiện kết quả thử nghiệm nhấn. Kiểm tra lần truy cập máy bay chỉ hoạt động trên các bề mặt phẳng có kết cấu, trong khi thử nghiệm lần truy cập độ 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ó cấu trúc thấp. Điều này là do thử nghiệm lượt truy cập độ sâu sử dụng thông tin về độ sâu từ cảnh để xác định độ sâu và hướng chính xác của một điểm.

Trong ví dụ sau đây, Andys màu xanh lục đại diện cho thử nghiệm nhấn máy bay tiêu chuẩn và Andys màu đỏ đại diện cho thử nghiệm truy cập chuyên sâu.

Khả năng tương thích của thiết bị

API Chiều sâu chỉ được hỗ trợ trên các thiết bị có công suất xử lý để hỗ trợ độ sâu và bạn phải bật thủ công API đó trong ARCore, như mô tả trong phần Bật độ 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ị hỗ trợ ARCore để biết danh sách các thiết bị mới nhất hỗ trợ API Depth và danh sách thiết bị có cảm biến độ sâu của phần cứng được hỗ trợ, chẳng hạn như cảm biến ToF.

Hình ảnh độ sâu

API Depth sử dụng thuật toán độ sâu từ chuyển động để tạo hình ảnh chiều sâu, cung cấp chế độ xem 3D về thế giới. Mỗi pixel trong một hình ảnh về chiều sâu được liên kết với một phép đo khoảng cách của cảnh với máy ảnh. Thuật toán này lấy nhiều hình ảnh thiết bị từ các góc độ khác nhau và so sánh các hình ảnh đó để ước tính khoảng cách với từng pixel khi người dùng di chuyển điện thoại. Công cụ này sử dụng công nghệ máy học 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 phải thực hiện một chuyển động nhỏ. Tính năng này cũng tận dụng mọi phần cứng khác 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, 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. Thao tác này giúp nâng cao hình ảnh về chiều sâu hiện có và cho phép xem chiều sâu ngay cả khi máy ảnh không chuyển động. Ứng dụng này cũng có độ sâu tốt hơn trên các bề mặt có ít hoặc không có tính năng, chẳng hạn như tường trắng hoặc trong cảnh động có người hoặc vật thể chuyển động.

Những hình ảnh sau đây cho thấy hình ảnh của một hành lang trên xe đạp trên tường và hình ảnh về chiều sâu được tạo ra từ hình ảnh từ camera. Các vùng màu đỏ ở gần máy ảnh hơn và các vùng màu xanh dương ở xa hơn.

Độ sâu của chuyển động

Dữ liệu chuyên sâu có sẵn khi người dùng di chuyển thiết bị của họ. Thuật toán có thể nhận các số liệu ước tính chính xác về độ sâu từ 0 đến 65 mét. Kết quả chính xác nhất đến khi thiết bị cách cảnh ngoài đời khoảng 5 mét đến khoảng 5 mét. Trải nghiệm khuyến khích người dùng di chuyển thiết bị nhiều hơn sẽ nhận được kết quả tốt hơn và tốt hơn.

Thu thập hình ảnh về chiều sâu

Với API chuyên sâu, bạn có thể truy xuất hình ảnh về chiều sâu phù hợp với mọi khung máy ảnh. Hình ảnh về độ sâu thu được có cùng dấu thời gian và trường nhìn với bản chất của máy ảnh. Dữ liệu về độ sâu hợp lệ chỉ có sau khi người dùng bắt đầu di chuyển thiết bị, vì độ sâu thu được 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