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