คำแนะนำเฉพาะแพลตฟอร์ม
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
เครื่องมืออันสมจริง
ในฐานะนักพัฒนาแอป AR คุณต้องผสานรวมแอปเสมือนจริงเข้ากับแอปจริงได้อย่างราบรื่น เมื่อผู้ใช้วางวัตถุเสมือนในฉาก ผู้ใช้จำเป็นต้องให้วัตถุนั้นดูเหมือนเป็นของที่มีอยู่จริง หากคุณกำลังสร้างแอปสำหรับให้ผู้ใช้เลือกซื้อเฟอร์นิเจอร์ ก็คุณต้องการให้ผู้ใช้มั่นใจว่าเก้าอี้ที่กำลังจะซื้อจะพอดีกับพื้นที่ของตน
Depth API ช่วยให้กล้องของอุปกรณ์ทราบถึงขนาดและรูปร่างของวัตถุจริงในฉาก แอปช่วยสร้างภาพที่มีความลึกหรือแผนที่ที่มีความลึก ซึ่งจะช่วยเพิ่มความสมจริงลงในแอปของคุณ คุณสามารถใช้ข้อมูลที่ได้จากรูปภาพความลึกเพื่อสร้างประสบการณ์ของผู้ใช้ที่สมจริงและสมจริง
กรณีการใช้งานสำหรับการพัฒนาด้วย Depth API
Depth API จะช่วยขับเคลื่อนการซ้อนทับ เพิ่มความสมจริง และการโต้ตอบใหม่ๆ ที่ปรับปรุงความสมจริงของประสบการณ์ AR ตัวอย่างวิธีนำ API นี้ไปใช้ในโปรเจ็กต์ของคุณเองมีดังนี้ ดูตัวอย่างความลึกในการใช้งานจริงได้จากฉากตัวอย่างใน ARCore Depth Lab ซึ่งสาธิตวิธีต่างๆ ในการเข้าถึงข้อมูลความลึก แอป Unity นี้เป็นโอเพนซอร์สใน GitHub
เปิดใช้การบัง
การซ้อนทับหรือการแสดงภาพวัตถุเสมือนที่อยู่ด้านหลังวัตถุในโลกจริงถือเป็นสิ่งสำคัญอย่างยิ่งสำหรับประสบการณ์ AR ที่สมจริง ลองนึกถึงแอนดี้เสมือนจริงที่ผู้ใช้อาจอยากใส่ไว้ในฉากที่มีกระโปรงท้ายข้างประตู เมื่อแสดงภาพโดยไม่ปกปิด ทำให้ Andy วางเหลื่อมกับขอบของลำตัวอย่างไม่สมจริง หากคุณใช้ความลึกของฉากและทำความเข้าใจว่าแอนดี้เสมือนจริงอยู่ไกลแค่ไหนเมื่อเทียบกับสภาพแวดล้อม เช่น ลำต้นไม้ คุณสามารถแสดงภาพแอนดี้โดยมีการบดบังได้ ซึ่งจะทำให้ดูสมจริงมากขึ้นในสภาพแวดล้อมโดยรอบ
แปลงฉาก
ให้ผู้ใช้เข้าสู่โลกใบใหม่ที่สมจริงด้วยการแสดงภาพเกล็ดหิมะเสมือนจริงเพื่อให้เกาะแขนและหมอนบนโซฟา หรือทำให้ห้องนั่งเล่นท่ามกลางหมอกหนาๆ คุณสามารถใช้ความลึกเพื่อสร้างฉากที่แสงเสมือนจริงโต้ตอบ ซ่อนด้านหลัง และปรับแสงวัตถุจริงได้
ระยะทางและระยะชัดลึก
ถ้าต้องการแสดงให้ว่ามีบางสิ่งอยู่ไกลออกไป คุณสามารถใช้การวัดระยะทางและเพิ่มเอฟเฟกต์ระยะชัดลึกได้ เช่น การเบลอพื้นหลังหรือพื้นหน้าของฉากด้วย Depth API
ให้ผู้ใช้โต้ตอบกับออบเจ็กต์ AR ได้
ให้ผู้ใช้ "สัมผัส" โลกผ่านทางแอปของคุณโดยการทำให้เนื้อหาเสมือนจริงโต้ตอบกับโลกจริงผ่านการชนและฟิสิกส์ นำวัตถุเสมือนจริงข้ามสิ่งกีดขวางในชีวิตจริง หรือลูกเพนท์บอลเสมือนจริงกระแทกและสาดกระเซ็นไปบนต้นไม้ที่มีอยู่จริง เมื่อรวมการชนแบบความลึกเข้ากับหลักฟิสิกส์ของเกม คุณจะทำให้ประสบการณ์ดูมีชีวิตชีวาขึ้นมาได้
ปรับปรุงการทดสอบ Hit
สามารถใช้ความลึกเพื่อปรับปรุงผลการทดสอบ Hit การทดสอบการชนแบบระนาบใช้งานได้เฉพาะบนพื้นผิวระนาบที่มีพื้นผิวเท่านั้น ขณะที่การทดสอบการชนแบบเจาะลึกจะละเอียดมากขึ้นและทำได้แม้กระทั่งในพื้นที่นอกระนาบและพื้นผิวต่ำ เนื่องจากการทดสอบ Hit แบบเจาะลึกใช้ข้อมูลความลึกจากฉากเพื่อกำหนดความลึกและการวางแนวที่ถูกต้องของจุด
ในตัวอย่างต่อไปนี้ Andys สีเขียวแสดงถึงการทดสอบการชนเครื่องบินแบบมาตรฐาน และ Andys สีแดงแสดงถึงการทดสอบการชนระดับความลึก
ความเข้ากันได้ของอุปกรณ์
Depth API รองรับเฉพาะในอุปกรณ์ที่มีกำลังในการประมวลผล และต้องเปิดใช้ด้วยตนเองใน ARCore ตามที่อธิบายไว้ใน เปิดใช้ความลึก
อุปกรณ์บางเครื่องอาจมีเซ็นเซอร์ความลึกของฮาร์ดแวร์ด้วย เช่น เวลาที่บิน เซ็นเซอร์ (ToF) โปรดดูหน้าอุปกรณ์ที่รองรับ ARCore รายการอุปกรณ์ล่าสุดที่รองรับ Depth API และรายการอุปกรณ์ต่างๆ ที่ มีเซ็นเซอร์ตรวจจับความลึกของฮาร์ดแวร์ที่รองรับ เช่น เซ็นเซอร์ ToF
รูปภาพความลึก
Depth API ใช้อัลกอริทึมความลึกจากการเคลื่อนไหวเพื่อสร้างรูปภาพความลึก ซึ่งให้มุมมอง 3 มิติของโลก ภาพในแต่ละพิกเซลที่มีความลึกจะเชื่อมโยงกับการวัดระยะของฉากจากกล้อง อัลกอริทึมนี้จะใช้รูปภาพของอุปกรณ์หลายรูปจากมุมต่างๆ มาเปรียบเทียบเพื่อประมาณระยะทางไปยังทุกพิกเซลเมื่อผู้ใช้เลื่อนโทรศัพท์ โดยจะเลือกใช้แมชชีนเลิร์นนิงเพื่อเพิ่มการประมวลผลความลึก แม้จะมีการเคลื่อนไหวจากผู้ใช้เพียงเล็กน้อย และยังใช้ประโยชน์จากฮาร์ดแวร์อื่นๆ ที่อุปกรณ์ของผู้ใช้อาจมีด้วย หากอุปกรณ์มีเซ็นเซอร์วัดความลึกโดยเฉพาะ เช่น ToF อัลกอริทึมจะรวมข้อมูลจากแหล่งที่มาที่มีอยู่ทั้งหมดโดยอัตโนมัติ การทำเช่นนี้จะช่วยปรับปรุงภาพที่มีความลึกมากขึ้น และเพิ่มความลึกแม้ในขณะที่กล้องไม่ได้เคลื่อนที่ และยังให้ความลึกที่ลึกกว่าพื้นผิวที่มีคุณลักษณะน้อยหรือไม่มีเลย เช่น ผนังสีขาว หรือในฉากที่มีการเคลื่อนไหว คนหรือวัตถุเคลื่อนไหว
ภาพต่อไปนี้แสดงภาพจากกล้องของทางเดินที่มีจักรยานบนผนัง และการแสดงภาพความลึกที่สร้างจากรูปภาพจากกล้อง พื้นที่สีแดงจะอยู่ใกล้กับกล้องมากกว่า และพื้นที่ที่เป็นสีน้ำเงินอยู่ห่างออกไป
ความลึกจากการเคลื่อนไหว
ข้อมูลความลึกจะพร้อมใช้งานเมื่อผู้ใช้ย้ายอุปกรณ์ อัลกอริทึมสามารถประมาณความลึกที่แม่นยําและแม่นยำได้ตั้งแต่ 0 ถึง 65 เมตร ผลลัพธ์ที่แม่นยําที่สุดจะเกิดขึ้นเมื่ออุปกรณ์อยู่ห่างจากฉากจริง 50 เมตรไปจนถึงประมาณ 5 เมตร ประสบการณ์ที่กระตุ้นให้ผู้ใช้ขยับอุปกรณ์มากขึ้นจะทำให้ได้รับผลลัพธ์ที่ดีขึ้น
ได้รูปภาพความลึก
Depth API ช่วยให้คุณเรียกดูรูปภาพที่มีความลึกที่ตรงกับเฟรมกล้องทุกเฟรมได้ รูปภาพความลึกที่ได้จะมีการประทับเวลาและขอบเขตการมองเห็นภายในเหมือนกับกล้อง ข้อมูลความลึกที่ถูกต้องจะมีให้หลังจากที่ผู้ใช้เริ่มนำอุปกรณ์ไปยังส่วนต่างๆ แล้วเท่านั้น เนื่องจากความลึกที่ได้มาจากการเคลื่อนไหว พื้นผิวที่มีคุณลักษณะน้อยหรือไม่มีเลย เช่น ผนังสีขาว จะเชื่อมโยงกับความลึกที่ไม่แน่นอน
สิ่งที่จะเกิดขึ้นหลังจากนี้
- ลองดู ARCore Depth Lab ซึ่งสาธิตวิธีต่างๆ ในการเข้าถึงข้อมูลความลึก