Android XR รองรับแอปที่สร้างด้วย OpenXR ผ่านการรองรับข้อกำหนดเฉพาะของ OpenXR 1.1 และส่วนขยายของผู้ให้บริการบางรายการ OpenXR เป็นมาตรฐานแบบเปิดที่ช่วยให้คุณสร้างประสบการณ์การใช้งานที่สมจริงและโต้ตอบได้โดยใช้ชุด API ทั่วไปในอุปกรณ์ XR ที่หลากหลาย
ฟีเจอร์
Android XR รองรับฟีเจอร์ที่ช่วยให้คุณสร้างแอปที่ใช้ประโยชน์จากความสามารถเฉพาะตัวของอุปกรณ์ XR ได้อย่างเต็มที่โดยใช้ OpenXR ฟีเจอร์เหล่านี้รวมถึงสิ่งต่อไปนี้
- เฟรมเวิร์กเอนทิตีเชิงพื้นที่
- รากฐานแบบรวมสำหรับการทำความเข้าใจฉากและการให้เหตุผลเชิงพื้นที่ ช่วยให้แอปพลิเคชันค้นพบ ค้นหา และติดตามเอนทิตีเชิงพื้นที่ทางกายภาพในสภาพแวดล้อม (รวมถึงระนาบ, โครงข่าย 3 มิติ, กรอบล้อมรอบ, รูปภาพ, เครื่องหมาย และคำอธิบายประกอบ) กรองการค้นพบโดยใช้ขอบเขตเชิงพื้นที่ ค้นหาต้นแบบเอนทิตี สร้าง Anchor เชิงพื้นที่ที่แนบกับเอนทิตี ทำการเรย์แคสต์เอนทิตีเชิงพื้นที่และโครงข่าย และคงเอนทิตีเชิงพื้นที่ไว้ในเซสชันต่างๆ ของแอปพลิเคชัน
- คอนเทนเนอร์เชิงพื้นที่
- API การจัดการหน้าต่างเชิงพื้นที่ข้ามแพลตฟอร์ม (
XR_EXT_spatial_containerและXR_EXT_spatial_container_self_rendering) ที่ช่วยให้แอปพลิเคชันสร้างและแสดงผลคอนเทนเนอร์เชิงพื้นที่ 3 มิติที่แสดงผลได้ (ทั้งแบบมีขอบเขตและแบบสมจริง) โดยใช้ Swapchain และเลเยอร์การจัดองค์ประกอบของ OpenXR ซึ่งช่วยให้ผู้ใช้สัมผัสประสบการณ์การใช้งานคอนเทนเนอร์เชิงพื้นที่หลายรายการพร้อมกันได้ - Anchor เชิงพื้นที่และ Anchor เชิงพื้นที่
- ช่วยให้แอปพลิเคชันติดตามท่าทางที่สัมพันธ์กับโลกได้โดยใช้บริการระบุตำแหน่งด้วยภาพ (VPS) และ GPS ของ Google, ตรวจสอบสิทธิ์กับบริการ Google Cloud และวาง Anchor เชิงพื้นที่และ Anchor บนพื้นผิวที่ละติจูด ลองจิจูด และระดับความสูงที่เฉพาะเจาะจง
- อุปกรณ์ที่ติดตามได้
- รองรับการตรวจจับระนาบ ซึ่งเป็นความสามารถในการระบุและติดตามพื้นผิวเรียบภายในสภาพแวดล้อม ทำให้สามารถวางวัตถุเสมือนจริงที่สัมพันธ์กับโลกจริงและหมุด ซึ่งเป็นจุดอ้างอิงเสมือนจริงที่สามารถแนบกับวัตถุหรือสถานที่ในโลกจริง เพื่อให้เนื้อหาเสมือนจริงยังคงอยู่ในตำแหน่งและทิศทางที่ถูกต้องแม้ว่าผู้ใช้จะเคลื่อนที่ไปรอบๆ
- Raycasting
- เทคนิคที่ใช้ในการระบุจุดตัดระหว่างรังสีเสมือนกับวัตถุหรือเมชโลกในฉาก ซึ่งช่วยอำนวยความสะดวกในการโต้ตอบ เช่น การเลือกและการจัดการองค์ประกอบเสมือน
- ความต่อเนื่องของ Anchor
- ความสามารถในการบันทึกและกู้คืน Anchor ในเซสชันต่างๆ ซึ่งช่วยให้วางเนื้อหาเสมือนจริงภายในสภาพแวดล้อมได้อย่างสม่ำเสมอและต่อเนื่อง
- การติดตามออบเจ็กต์
- ความสามารถในการติดตามเมาส์ แป้นพิมพ์ และวัตถุอื่นๆ ในโลกจริง
- การติดตามรูปภาพและเครื่องหมาย
- ความสามารถในการตรวจจับและติดตามรูปภาพอ้างอิงระนาบและเครื่องหมายทางกายภาพ (เช่น AprilTags และเครื่องหมาย ArUco) ในสภาพแวดล้อม
- การติดตามคิวอาร์โค้ด
- ความสามารถในการติดตามคิวอาร์โค้ดในสภาพแวดล้อมจริงและถอดรหัสข้อมูล
- พื้นผิวที่มีความลึก
- การสร้างแผนที่ความลึกซึ่งให้ข้อมูลเกี่ยวกับระยะห่างระหว่างกล้องกับวัตถุในฉาก ทำให้เกิดเอฟเฟกต์การบดบังและการโต้ตอบที่สมจริงยิ่งขึ้น
- โปร่ง
- ความสามารถในการผสมผสานฟุตเทจจากกล้องในโลกจริงเข้ากับเนื้อหาเสมือนจริง เพื่อสร้างประสบการณ์เทคโนโลยีความจริงแบบผสม (MR) ที่รวมโลกจริงและโลกดิจิทัลเข้าด้วยกันอย่างราบรื่น
- การหรี่แสงแบบพาสทรูทั่วโลก
- อนุญาตให้แอปพลิเคชันตั้งค่าและค้นหาระดับการหรี่แสงแบบพาสทรูทั่วโลกเพื่อผสมผสานเนื้อหาเสมือนจริงเข้ากับสภาพแวดล้อมจริง และรับเหตุการณ์เมื่อระดับการหรี่แสงเปลี่ยนแปลง
- การปรับขอบเขตวิวพอร์ตให้กลมกลืน
- แสดงพื้นที่ขอบเขตที่ไล่ขนนกซึ่งใช้โดยรันไทม์เพื่อให้แอปพลิเคชันสามารถจัดวางองค์ประกอบ UI ภายในพื้นที่ปลอดภัยโดยไม่ได้รับผลกระทบจากการไล่ขนนกบริเวณรอบนอก
- การสร้างเมชฉาก
- ความสามารถในการรับ 3D Mesh ของสภาพแวดล้อม ซึ่งสามารถใช้สำหรับฟิสิกส์ การบดบัง และการโต้ตอบอื่นๆ ที่รับรู้ถึงโลก
- การส่งผ่านเลเยอร์องค์ประกอบ
- อนุญาตให้ใช้เลเยอร์องค์ประกอบการส่งผ่านรูปหลายเหลี่ยมเพื่อตัดภาพ ซึ่งสามารถใช้เพื่อนำวัตถุในโลกจริงเข้ามาในฉากได้
- การติดตามใบหน้า
- ความสามารถในการติดตามลักษณะใบหน้าของผู้ใช้จากแหล่งข้อมูลภาพและเสียง ซึ่งช่วยให้สร้างอวาตาร์และตัวละครเสมือนจริงที่สมจริงและแสดงออกได้มากขึ้น
- การติดตามดวงตา
- ระบุตำแหน่งและทิศทางของดวงตาของผู้ใช้ ซึ่งออกแบบมาเพื่อทำให้การแสดงท่าทางของดวงตาสำหรับอวาตาร์ดูสมจริงยิ่งขึ้น
- การติดตามการเคลื่อนไหวของมือ
- ความสามารถในการติดตามตำแหน่งและการเคลื่อนไหวของมือผู้ใช้
- เมชมือ
- แสดงมือของผู้ใช้ได้อย่างถูกต้องในรูปแบบ Low Poly Mesh เพิ่มประสิทธิภาพการนำส่งจากแพลตฟอร์มไปยังแอปพลิเคชันเพื่อให้คุณได้รับประสิทธิภาพที่ดีที่สุด ซึ่งเป็นทางเลือกแทนส่วนขยายอื่นๆ ที่ใช้ท่าผูกและน้ำหนักผสม
- ติดตามร่างกาย
- ประมาณตำแหน่งและสัดส่วนข้อต่อร่างกายของผู้ใช้โดยใช้ข้อมูลการติดตามศีรษะและมือ
- การประมาณแสง
- ใช้สำหรับโมเดลแสง (รวมถึงแสงแบบมีทิศทาง แสงแอมเบียนต์ แสงแบบฮาร์มอนิกทรงกลม และแสงแบบคิวบ์แมป) เพื่อให้ตรงกับสภาพแสงในโลกจริงของผู้ใช้
อุปกรณ์อินพุตที่รองรับ
Android XR ยังรองรับอุปกรณ์อินพุตต่อไปนี้ด้วย
- การโต้ตอบด้วยมือ
- การจดจำท่าทางของมือที่เฉพาะเจาะจง เช่น การบีบ การปัด และการชี้ ซึ่งช่วยให้ผู้ใช้โต้ตอบกับวัตถุเสมือนจริงได้โดยใช้ท่าทางและการเคลื่อนไหวของมือ
- การโต้ตอบด้วยการจ้องด้วยตา
- ความสามารถในการติดตามการเคลื่อนไหวของดวงตาของผู้ใช้ ซึ่งช่วยให้ผู้ใช้เลือกและโต้ตอบกับวัตถุเสมือนจริงได้โดยใช้การจ้องมอง
- คอนโทรลเลอร์ตรวจจับการเคลื่อนไหว 6DoF
- ความสามารถในการติดตามตำแหน่งและการเคลื่อนไหวของตัวควบคุม พร้อมกับการเชื่อมโยง Dpad และปุ่มเพื่อทริกเกอร์การดำเนินการหรือเหตุการณ์การวางเมาส์เหนือภายในแอป
- การโต้ตอบด้วยเมาส์
- ความสามารถของผู้ใช้ในการโต้ตอบกับวัตถุผ่านเคอร์เซอร์เมาส์ในพื้นที่ 3 มิติ
ฟีเจอร์ด้านประสิทธิภาพที่รองรับ
Android XR รองรับฟีเจอร์ที่เกี่ยวข้องกับประสิทธิภาพต่อไปนี้
- การเรนเดอร์แบบ Foveated ที่ติดตามดวงตา
- อนุญาตให้แอปแสดงผลเนื้อหาที่มีความละเอียดสูงเฉพาะที่จุดโฟกัสของสายตาเท่านั้น
- Space warp
- ใช้เวกเตอร์ความเร็วและข้อมูลพื้นผิวเชิงลึกเพื่อสร้างเฟรมทวีน ซึ่งจะช่วยเพิ่มอัตราเฟรมที่จำเป็นต่อการทำให้ผู้ใช้ดื่มด่ำกับประสบการณ์ของคุณได้อย่างมีประสิทธิภาพ
- การสังเคราะห์เฟรม
- ใช้เวกเตอร์การเคลื่อนไหวและข้อมูลเฟรมที่แอปพลิเคชันให้มาเพื่อสังเคราะห์เฟรมกลาง ซึ่งจะช่วยปรับปรุงความลื่นไหลของภาพและอัตราเฟรม
- เมตริกประสิทธิภาพ
- แสดงเมตริกประสิทธิภาพของ Android XR ขณะรันไทม์ของอุปกรณ์ XR, คอมโพสิเตอร์ และแอป XR ปัจจุบัน ซึ่งรวมถึงเวลาที่ใช้ในการแสดงผลเฟรมของ CPU, เวลาที่ใช้ในการแสดงผลเฟรมของ GPU, การใช้งาน GPU, ความถี่ของ CPU, เฟรมต่อวินาที และอื่นๆ
ดูรายการฟีเจอร์และส่วนขยายที่รองรับทั้งหมดได้ที่ภาพรวมฟีเจอร์ OpenXR
เครื่องมือที่รองรับ
ระบบรองรับเครื่องมือต่อไปนี้สำหรับการพัฒนา OpenXR ด้วย Android XR
Unity
การรองรับ Unity ของ Android XR ซึ่งสร้างขึ้นบน OpenXR ช่วยให้นักพัฒนาแอปสร้างประสบการณ์การใช้งานโดยใช้ Unity 6 ได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างแอป XR ด้วย Unity ในภาพรวมของ Unity
Unreal Engine
Unreal Engine รองรับ Android XR ผ่านมาตรฐาน OpenXR ซึ่งช่วยให้คุณใช้เครื่องมือและเวิร์กโฟลว์มาตรฐานใน Unreal Engine 5 ได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างแอป XR ด้วย Unreal Engine ในภาพรวมของ Unreal Engine
Godot
Godot รองรับ Android XR ผ่านการผสานรวม OpenXR ซึ่งช่วยให้คุณสร้างและส่งออกแอป XR สำหรับ Android โดยใช้เวิร์กโฟลว์ Godot มาตรฐานได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างแอป XR ด้วย Godot ในภาพรวมของ Godot
OpenXR™ และโลโก้ OpenXR เป็นเครื่องหมายการค้าของ The Khronos Group Inc. และจดทะเบียนเป็นเครื่องหมายการค้าในจีน สหภาพยุโรป ญี่ปุ่น และสหราชอาณาจักร