ความลึกทำให้สมจริง

คำแนะนำเฉพาะแพลตฟอร์ม

ในฐานะนักพัฒนาแอป AR คุณคงต้องการผสานรวมโลกเสมือนกับโลกจริงให้ผู้ใช้ได้อย่างราบรื่น เมื่อผู้ใช้วางออบเจ็กต์เสมือนในฉาก ผู้ใช้ต้องการให้ออบเจ็กต์นั้นดูเหมือนอยู่ในโลกแห่งความเป็นจริง หากคุณกำลังสร้างแอปเพื่อให้ผู้ใช้เลือกซื้อเฟอร์นิเจอร์ คุณก็คงอยากให้ผู้ใช้มั่นใจว่าเก้าอี้เท้าแขนที่กำลังจะซื้อจะพอดีกับพื้นที่ในบ้าน

Depth API ช่วยให้กล้องของอุปกรณ์เข้าใจขนาดและรูปร่างของวัตถุจริงในฉาก ซึ่งจะสร้างรูปภาพเชิงลึกหรือแผนที่เชิงลึก จึงเพิ่มเลเยอร์ความสมจริงลงในแอป คุณสามารถใช้ข้อมูลที่ได้จากรูปภาพเชิงลึกเพื่อมอบประสบการณ์ของผู้ใช้ที่สมจริงและสมจริงให้แก่ผู้ใช้

กรณีการใช้งานสำหรับการพัฒนาด้วย Depth API

Depth API ช่วยให้การบดบังวัตถุ การดื่มด่ำที่ดียิ่งขึ้น และการโต้ตอบแบบใหม่ๆ ที่ช่วยเพิ่มความสมจริงของประสบการณ์ AR ตัวอย่างวิธีใช้ในโปรเจ็กต์ของคุณเองมีดังนี้ หากต้องการดูตัวอย่างการทำงานของ Depth ให้สำรวจฉากตัวอย่างใน ARCore Depth Lab ซึ่งแสดงวิธีต่างๆ ในการเข้าถึงข้อมูล Depth แอป Unity นี้เป็นโอเพนซอร์สใน Github

เปิดใช้การบดบัง

การบดบังหรือการแสดงผลวัตถุเสมือนจริงอย่างถูกต้องด้านหลังวัตถุในโลกจริงเป็นสิ่งสำคัญอย่างยิ่งต่อประสบการณ์ AR ที่สมจริง ลองนึกถึงแอนดี้เสมือนจริงที่ผู้ใช้อาจต้องการวางไว้ในฉากที่มีลำต้นข้างประตู หากแสดงผลโดยไม่มีการบดบัง แอนดรอยด์จะซ้อนทับกับขอบของลำตัวอย่างไม่สมจริง หากใช้ความลึกของฉากและเข้าใจว่าแอนดี้เสมือนอยู่ห่างจากสิ่งรอบข้าง เช่น ลำต้นไม้ เท่าใด คุณจะแสดงแอนดี้ได้อย่างแม่นยำโดยมีการบดบัง ทำให้แอนดี้ดูสมจริงยิ่งขึ้นในสภาพแวดล้อม

เปลี่ยนฉาก

พาผู้ใช้เข้าสู่โลกใหม่ที่สมจริงด้วยการแสดงเกล็ดหิมะเสมือนจริงที่ตกลงบนแขนและหมอนของโซฟา หรือการจำลองห้องนั่งเล่นในหมอก คุณใช้ความลึกเพื่อสร้างฉากที่แสงเสมือนโต้ตอบ ซ่อนอยู่ด้านหลัง และส่องแสงวัตถุจริงอีกครั้งได้

ระยะทางและความชัดตื้นชัดลึก

หากต้องการแสดงว่ามีบางอย่างอยู่ไกล คุณสามารถใช้การวัดระยะทางและเพิ่มเอฟเฟกต์ระยะชัดลึก เช่น การเบลอพื้นหลังหรือเบื้องหน้าของฉาก ด้วย Depth API

เปิดใช้การโต้ตอบของผู้ใช้กับออบเจ็กต์ AR

อนุญาตให้ผู้ใช้ "สัมผัส" โลกผ่านแอปของคุณโดยการเปิดใช้เนื้อหาเสมือนให้โต้ตอบกับโลกแห่งความเป็นจริงผ่านการชนและฟิสิกส์ ให้วัตถุเสมือนข้ามผ่านอุปสรรคในโลกจริง หรือให้ลูกเพนท์บอลเสมือนชนและกระเด็นใส่ต้นไม้ในโลกจริง เมื่อรวมการชนตามความลึกเข้ากับฟิสิกส์ของเกม คุณจะสร้างประสบการณ์ที่สมจริงได้

ปรับปรุงการทดสอบการเข้าชม

คุณใช้ความลึกเพื่อปรับปรุงผลลัพธ์ของการทดสอบการยิงรังสีได้ การทดสอบการชนของระนาบใช้ได้เฉพาะกับพื้นผิวระนาบที่มีพื้นผิว ในขณะที่การทดสอบการชนของความลึกจะมีความละเอียดมากกว่าและใช้ได้แม้ในพื้นที่ที่ไม่ใช่ระนาบและมีพื้นผิวต่ำ เนื่องจากการทดสอบการชนเชิงลึกใช้ข้อมูลเชิงลึกจากฉากเพื่อกำหนดความลึกและการวางแนวที่ถูกต้องของจุด

ในตัวอย่างต่อไปนี้ Andy สีเขียวแสดงการทดสอบการยิงรังสีระนาบมาตรฐาน และ Andy สีแดงแสดงการทดสอบการยิงรังสีเชิงลึก

ความเข้ากันได้ของอุปกรณ์

Depth API รองรับเฉพาะในอุปกรณ์ที่มีกำลังประมวลผลที่รองรับความลึก และต้องเปิดใช้ด้วยตนเองใน ARCore ตามที่อธิบายไว้ในเปิดใช้ความลึก

อุปกรณ์บางเครื่องอาจมีเซ็นเซอร์วัดความลึกของฮาร์ดแวร์ด้วย เช่น เซ็นเซอร์ Time-of-Flight (ToF) ดูรายการอุปกรณ์ที่รองรับ Depth API และรายการอุปกรณ์ที่มีเซ็นเซอร์ความลึกของฮาร์ดแวร์ที่รองรับ เช่น เซ็นเซอร์ ToF ได้ที่หน้าอุปกรณ์ที่รองรับ ARCore

รูปภาพความลึก

Depth API ใช้อัลกอริทึมความลึกจากการเคลื่อนไหวเพื่อสร้างรูปภาพความลึก ซึ่งจะแสดงมุมมอง 3 มิติของโลก พิกเซลแต่ละพิกเซลในภาพความลึกจะเชื่อมโยงกับการวัดว่าฉากอยู่ห่างจากกล้องเท่าใด อัลกอริทึมนี้จะนำภาพอุปกรณ์หลายภาพจากมุมต่างๆ มาเปรียบเทียบเพื่อประเมินระยะห่างไปยังทุกพิกเซลขณะที่ผู้ใช้เคลื่อนโทรศัพท์ โดยจะใช้แมชชีนเลิร์นนิงอย่างเลือกสรรเพื่อเพิ่มการประมวลผลเชิงลึก แม้ว่าผู้ใช้จะเคลื่อนไหวน้อยที่สุดก็ตาม นอกจากนี้ยังใช้ประโยชน์จากฮาร์ดแวร์เพิ่มเติมที่อุปกรณ์ของผู้ใช้อาจมีด้วย หากอุปกรณ์มีเซ็นเซอร์ความลึกเฉพาะ เช่น ToF อัลกอริทึมจะผสานข้อมูลจากแหล่งที่มาทั้งหมดที่มีโดยอัตโนมัติ ซึ่งจะช่วยปรับปรุงรูปภาพระยะชัดที่มีอยู่และเปิดใช้ระยะชัดแม้ว่ากล้องจะไม่เคลื่อนไหวก็ตาม นอกจากนี้ ยังช่วยให้ได้ความลึกที่ดีขึ้นบนพื้นผิวที่มีฟีเจอร์น้อยหรือไม่มีเลย เช่น ผนังสีขาว หรือในฉากแบบไดนามิกที่มีผู้คนหรือวัตถุเคลื่อนไหว

รูปภาพต่อไปนี้แสดงภาพจากกล้องของทางเดินที่มีจักรยานแขวนอยู่บนผนัง และภาพการแสดงข้อมูลเชิงลึกของรูปภาพเชิงลึกที่สร้างจากภาพจากกล้อง พื้นที่สีแดงอยู่ใกล้กล้องมากกว่า และพื้นที่สีน้ำเงินอยู่ไกลออกไป

ความลึกจากการเคลื่อนไหว

ข้อมูลความลึกจะพร้อมใช้งานเมื่อผู้ใช้เคลื่อนอุปกรณ์ อัลกอริทึมสามารถรับการประมาณความลึกที่แม่นยำและมีประสิทธิภาพได้ตั้งแต่ 0 ถึง 65 เมตร ผลลัพธ์ที่แม่นยำที่สุดจะเกิดขึ้นเมื่ออุปกรณ์อยู่ห่างจากฉากในโลกจริงตั้งแต่ครึ่งเมตรถึงประมาณ 5 เมตร ประสบการณ์ที่กระตุ้นให้ผู้ใช้ขยับอุปกรณ์มากขึ้นจะได้รับผลลัพธ์ที่ดียิ่งขึ้น

รับภาพเชิงลึก

Depth API ช่วยให้คุณดึงข้อมูลรูปภาพเชิงลึกที่ตรงกับทุกเฟรมของกล้องได้ รูปภาพความลึกที่ได้มามีการประทับเวลาและพารามิเตอร์ภายในของขอบเขตการมองเห็นเดียวกันกับกล้อง ข้อมูลความลึกที่ถูกต้องจะใช้ได้หลังจากที่ผู้ใช้เริ่มเคลื่อนย้ายอุปกรณ์เท่านั้น เนื่องจากระบบจะรับความลึกจากการเคลื่อนไหว พื้นผิวที่มีฟีเจอร์น้อยหรือไม่มีเลย เช่น ผนังสีขาว จะเชื่อมโยงกับความลึกที่ไม่แม่นยำ

สิ่งที่จะเกิดขึ้นหลังจากนี้

  • ดูARCore Depth Lab ซึ่งแสดงวิธีต่างๆ ในการเข้าถึงข้อมูลเชิงลึก