Chiều sâu giúp tăng độ châ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 thực tế tăng cường, bạn muốn kết hợp mượt mà ảo với thực tế cho người dùng của mình. 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ư trong thế giới thực. Nếu bạn đang xây dựng một ứng dụng giúp người dùng mua đồ nội thất, bạn muốn họ yên tâm rằng chiếc ghế bành mà 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. Tính năng này tạo hình ảnh chiều sâu hay bản đồ độ sâu, do đó thêm một lớp chủ nghĩa chân thực vào ứ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 lại trải nghiệm người dùng sống động và thực tế.

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 mức độ đắm chìm và các hoạt động tương tác mới giúp nâng cao độ chân thực trong 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 công cụ này trong các 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 độ sâu ARCore. Đây là nơi 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

Che khuất hoặc kết xuất chính xác một vật thể ảo đằng sau các vật thể trong thế giới thực là điều tối quan trọng trong trải nghiệm thực tế tăng cường sống động. Giả sử có một An giả ả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

Đư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 đặ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ể dùng tính năng Chiều sâu để tạo một cảnh trong đó các ánh sáng ảo tương tác, ẩn náu phía sau và chiếu sáng các vật thể thực.

Khoảng cách và độ sâu trường

Bạn muốn thể hiện rằng một thứ 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 ảnh, 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 đố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 vượt qua các chướng ngại vật trong thế giới thực hoặc cho những quả đạn sơn ảo trúng và bắn tung toé trên một cái cây trong thế giới thực. Khi kết hợp va chạm chiều sâu với vật lý trò chơi, bạn có thể biến một trải nghiệm thành hiện thực.

Cải thiện kiểm thử 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 tra va chạm trên mặt phẳng chỉ hoạt động trên bề mặt phẳng có kết cấu, trong khi kiểm tra 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ẳng và có kết cấu thấp. Điều này là do kiểm thử nhấn theo chiều sâu sử dụng thông tin chiều 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, Andys màu xanh lục đại diện cho các thử nghiệm va chạm máy bay tiêu chuẩn và Andys màu đỏ đại diện cho các kiểm tra va chạm theo độ 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ợ và phải được bật theo cách thủ công trong ARCore, như được mô tả trong Bật chiều sâu.

Một số thiết bị cũng có thể có 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ị có hỗ trợ depth API và danh sách thiết bị hỗ trợ 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

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 có chiều sâu được liên kết với phép đo khoảng cách từ camera đến cảnh. Thuật toán này chụp nhiều hình ảnh thiết bị từ các góc khác nhau rồi so sánh những hình ảnh này để ước tính khoảng cách đến mỗi 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. Chế độ 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. Thao tác này giúp cải thiện hình ảnh có chiều sâu hiện có và tạo chiều sâu ngay cả khi máy ảnh không di chuyển. Tính năng này cũng cung cấp độ sâu cao hơn trên các bề mặt có ít hoặc không có đối tượng, chẳng hạn như tường trắng hoặc trong các cảnh linh động có người hoặc vật thể đang chuyển động.

Các hình ảnh sau đây hiển thị ảnh chụp hành lang có một chiếc xe đạp trên tường và ảnh chiều sâu được tạo từ ảnh 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.

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

Người dùng sẽ thấy dữ liệu chiều sâu khi 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ẽ nhận được kết quả tốt hơn.

Thu thập hình ảnh có chiều 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 chiều sâu thu được có cùng dấu thời gian và hàm nội tại của trường nhìn với camera. Dữ liệu về độ 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ì độ 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