คำแนะนำเฉพาะแพลตฟอร์ม
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
เนื้อหา AR ต้องวางและปรับขนาดอย่างถูกต้องเพื่อให้กลมกลืนกับฉาก วัตถุเสมือนที่อยู่ไกลออกไปควรมีขนาดเล็กลงเช่นเดียวกับวัตถุในโลกแห่งความจริง คุณสามารถทำการทดสอบการตรวจจับ (หรือ Raycast ใน AR Foundation สำหรับ Unity) เพื่อกำหนดตำแหน่งที่ถูกต้องของออบเจ็กต์ 3 มิติในฉาก การวางตำแหน่งที่ถูกต้องจะช่วยให้มั่นใจได้ว่าเนื้อหา AR จะได้รับการแสดงผลในขนาดที่เหมาะสม (ขนาดที่ปรากฏ)
การทดสอบการสัมผัสจะค้นหาจุดตัดระหว่างรูปทรงเรขาคณิต 3 มิติในโลกแห่งความจริงกับรังสีเสมือนที่ประกอบด้วยจุดเริ่มต้นและทิศทาง โดยทั่วไปแล้วมักจะใช้รังสีที่มีกล้องของอุปกรณ์เป็นจุดเริ่มต้น แต่ ARCore มี API สำหรับการทดสอบการตรวจหาออบเจ็กต์ด้วยรังสีที่กำหนดเองในพิกัดพื้นที่โลก
ลองนึกภาพว่ามีรังสีที่มาจากกล้องของอุปกรณ์ผู้ใช้ซึ่งทอดยาวไปข้างหน้าจนกระทั่งไปชนกับรูปทรงเรขาคณิต 3 มิติของฉาก เช่น พื้น ผนัง หรือวัตถุ เมื่อเกิดเหตุการณ์นี้ขึ้น คุณจะได้รับรายการผลลัพธ์ที่ตรงกันหรือจุดตัดที่มีรูปทรงของฉากที่ตรวจพบ รายการจะจัดเรียงตามระยะทางจากอุปกรณ์ โดยแยกตามทางแยกที่ใกล้ที่สุดก่อน ซึ่งเป็นสิ่งสำคัญเนื่องจากโดยทั่วไปแล้วคุณจะมองไม่เห็นออบเจ็กต์ที่ซ่อนอยู่ด้านหลังออบเจ็กต์อื่นๆ ดังนั้นส่วนใหญ่แล้วผลลัพธ์แรกจึงมีความสำคัญมากที่สุด

เนื้อหาของผลลัพธ์ที่ตรงกัน
ระบบจะแสดงผลลัพธ์การเข้าชมแต่ละรายการเป็นรายการที่มีข้อมูลต่อไปนี้สำหรับผลลัพธ์แต่ละรายการ
- ระยะห่างจากจุดกำเนิดรังสีเป็นเมตร
- ท่าทาง (ตำแหน่งและการวางแนว) ของผลลัพธ์ Hit
- เรขาคณิต 3 มิติที่คุณแตะในรูปแบบของ Trackable
จากนั้นคุณสามารถใช้ผลลัพธ์ที่ต้องการเพื่อวางเนื้อหา 3 มิติอย่างสมจริงโดยใช้ Anchor
ประเภทผลลัพธ์ของ Hit
ผลลัพธ์ของ Hit มี 4 ประเภท ได้แก่ ผลลัพธ์ความลึก ระนาบ จุดฟีเจอร์ และการจัดวางทันที แต่ละวิธีมีกรณีการใช้งานและข้อแลกเปลี่ยนของตัวเอง ดังที่แสดงในตารางต่อไปนี้
| ประเภทผลลัพธ์ของ Hit | คำอธิบาย | การวางแนว | กรณีการใช้งาน |
|---|---|---|---|
| ความลึก | ใช้ข้อมูลความลึกจากทั้งฉากเพื่อกำหนดความลึกและทิศทางที่ถูกต้องของจุด | ตั้งฉากกับพื้นผิว 3 มิติ | วางออบเจ็กต์เสมือนบนพื้นผิวใดก็ได้ (ไม่ใช่แค่บนพื้นและผนัง) |
| เครื่องบิน | กระทบพื้นผิวแนวนอนและ/หรือแนวตั้งเพื่อกำหนดความลึกและการวางแนวที่ถูกต้องของจุด | ตั้งฉากกับพื้นผิว 3 มิติ | วางออบเจ็กต์บนระนาบ (พื้นหรือผนัง) โดยใช้รูปทรงเรขาคณิตทั้งหมดของระนาบ ต้องการสเกลที่ถูกต้องทันที การสำรองสำหรับการทดสอบ Hit ของความลึก |
| จุดเด่น | ใช้ฟีเจอร์ภาพรอบๆ จุดที่ผู้ใช้แตะเพื่อกำหนดตำแหน่งและการวางแนวที่ถูกต้องของจุด | ตั้งฉากกับพื้นผิว 3 มิติ | วางวัตถุบนพื้นผิวใดก็ได้ (ไม่ใช่แค่บนพื้นและผนัง) |
| การวางทันที (Raycast แบบต่อเนื่อง) | ใช้พื้นที่หน้าจอเพื่อวางเนื้อหา ใช้ความลึกโดยประมาณที่แอปให้ไว้ในตอนแรก ทำงานได้ทันที แต่ท่าทางและความลึกจริงจะเปลี่ยนเมื่อ ARCore สามารถกำหนดเรขาคณิตของฉากจริงได้ | +Y ชี้ขึ้นด้านบน ตรงข้ามกับแรงโน้มถ่วง | วางออบเจ็กต์บนระนาบ (พื้นหรือผนัง) โดยใช้เรขาคณิตทั้งหมดของระนาบในกรณีที่การวางอย่างรวดเร็วเป็นสิ่งสำคัญ และประสบการณ์การใช้งานสามารถยอมรับความลึกและสเกลเริ่มต้นที่ไม่รู้จักได้ |
ความเข้ากันได้ของอุปกรณ์
การทดสอบการตรวจหาวัตถุจะทำงานในอุปกรณ์ที่รองรับ ARCore ทั้งหมด แต่การทดสอบการตรวจหาวัตถุตามความลึกจะต้องใช้อุปกรณ์ที่รองรับความลึก
ใช้ผลลัพธ์การตรวจหาเพื่อวางเนื้อหา AR
เมื่อได้ผลลัพธ์ที่ตรงกันแล้ว คุณจะใช้ท่าทางของผลลัพธ์นั้นเป็นอินพุตเพื่อวางเนื้อหา AR ในฉากได้