Unity มีฟีเจอร์บางอย่างที่เกี่ยวข้องกับประสิทธิภาพซึ่งใช้ได้กับ Android XR โดยเฉพาะ และต้องใช้แพ็กเกจส่วนขยาย Android XR เปิดใช้ฟีเจอร์เหล่านี้เพื่อปรับปรุงอัตราเฟรมและลดภาระงานของ GPU ผ่านการแทนที่เฟรมและตัวอย่างย่อยของ Vulkan รวมถึงเพื่อลดเวลาในการตอบสนองของการแสดงผลที่ติดตามโดยใช้การยึดเกาะแบบเลื่อนเวลา
สิ่งที่ต้องมีก่อน
ก่อนทำตามคำแนะนำนี้ โปรดตรวจสอบว่าคุณได้ยืนยันและทำตามข้อกำหนดเบื้องต้นต่อไปนี้แล้ว
- ทำตามขั้นตอนทั้งหมดสำหรับการตั้งค่าโปรเจ็กต์ใน Unity
- นำเข้าแพ็กเกจส่วนขยาย Android XR สำหรับ Unity
เปิดใช้ Space Warp
Application Spacewarp ของ URP คือการเพิ่มประสิทธิภาพ OpenXR ที่ช่วยรักษาอัตราเฟรมสูงด้วยการสังเคราะห์ เฟรมเว้นเฟรม เทคนิคนี้ใช้เวกเตอร์การเคลื่อนไหวและข้อมูลเชิงลึกจากเฟรมก่อนหน้าเพื่อคาดการณ์ว่าพิกเซลควรเคลื่อนที่ไปที่ใด ซึ่งจะช่วยลดกำลังในการประมวลผลและการใช้พลังงาน
ประโยชน์
- ลดภาระงานในการแสดงผล GPU โดยการสังเคราะห์เฟรมสำรอง
- ลดกำลังการประมวลผลและการใช้พลังงานได้อย่างมาก
- ใช้การฉายภาพซ้ำเพื่อลดเวลาในการตอบสนองระหว่างการเคลื่อนไหวของผู้ใช้และการอัปเดตการแสดงผล
เปิดใช้ฟีเจอร์นี้
- จากเมนูหลักของ Unity ให้คลิกแก้ไข > การตั้งค่าโปรเจ็กต์
- ขยายส่วนการจัดการปลั๊กอิน XR
- เลือกแท็บที่สอดคล้องกับอุปกรณ์ XR ที่คุณใช้อยู่
- ไปที่ส่วนกลุ่มฟีเจอร์ OpenXR
ในส่วนฟีเจอร์ทั้งหมด ให้เปิดใช้ Application SpaceWarp
เปิดใช้การสุ่มตัวอย่างย่อย Vulkan
การสุ่มตัวอย่างย่อยของ Vulkan ช่วยให้สร้างและสุ่มตัวอย่างรูปภาพที่ความหนาแน่นต่างๆ ได้ โดยใช้แผนที่ความหนาแน่นของ Fragment ฟีเจอร์ Vulkan นี้ช่วยให้สามารถแสดงผลและโอนส่วนต่างๆ ของ หน้าจอไปยังหน่วยความจำที่ความละเอียดต่างๆ ซึ่งมีประโยชน์อย่างยิ่งสำหรับการแสดงผลแบบโฟเวต ที่ส่วนรอบนอกสามารถใช้ความละเอียดที่ต่ำกว่าได้
ประโยชน์
- ให้การปรับปรุงที่แตกต่างกันเมื่อใช้ร่วมกับการเรนเดอร์แบบโฟเวต ขึ้นอยู่กับรูปแบบของอุปกรณ์
- ลดรอยหยักในพื้นที่รอบนอกผ่านการกรองแบบไบลิเนียร์
- ช่วยให้การแสดงผลแบบอัตราตัวแปรมีประสิทธิภาพในภูมิภาคต่างๆ ของหน้าจอ
เปิดใช้ฟีเจอร์นี้
- จากเมนูหลักของ Unity ให้คลิกแก้ไข > การตั้งค่าโปรเจ็กต์
- ขยายส่วนการจัดการปลั๊กอิน XR แล้วคลิก OpenXR
- คลิกไอคอนฟันเฟืองข้าง Android XR (ส่วนขยาย): การจัดการเซสชัน
เปิดใช้การสุ่มตัวอย่างย่อย (Vulkan)
เปิดใช้การเชื่อมต่อในภายหลัง
การตอบสนองที่รวดเร็ว เป็นเทคนิคที่ช่วยลดความล่าช้าระหว่างการเคลื่อนไหวทางกายภาพของผู้ใช้กับ การเปลี่ยนแปลงภาพที่เกิดขึ้นบนจอแสดงผล ซึ่งช่วยให้สามารถอัปเดตท่าทางของศีรษะได้ในช่วงท้ายของไปป์ไลน์การสร้างเฟรม ซึ่งจะช่วยปรับปรุงทั้งความสบายและอัตราเฟรมที่รับรู้ได้ของแอป XR โดยทำได้ด้วยการลดเวลาในการตอบสนองของอินพุต ให้ใกล้เคียงกับเวลาของทั้งเฟรม
ประโยชน์
- ลดเวลาในการตอบสนองแบบ Motion-to-Photon (MTP) ได้อย่างมาก
- ช่วยให้ผู้ใช้รู้สึกสบายและลดอาการเมาการเคลื่อนไหว
- เพิ่มความเสถียรและความแม่นยำ
เปิดใช้ฟีเจอร์นี้
หากต้องการเปิดใช้การเชื่อมต่อในภายหลัง ให้เปิดฟีเจอร์นี้ในรันไทม์สำหรับแอปของคุณโดยทำดังนี้
private XRDisplaySubsystem xrDisplay;
private XRDisplaySubsystem.LateLatchNode lateLatchNode = XRDisplaySubsystem.LateLatchNode.Head;
void Start()
{
List<XRDisplaySubsystem> xrDisplaySubsystems = new();
SubsystemManager.GetSubsystems(xrDisplaySubsystems);
if (xrDisplaySubsystems.Count >= 1)
{
xrDisplay = xrDisplaySubsystems[0];
}
}
void Update()
{
if (xrDisplay != null)
{
transform.position += new Vector3(Mathf.Epsilon, 0, 0);
Quaternion rot = transform.rotation;
rot.x += Mathf.Epsilon;
transform.rotation = rot;
xrDisplay.MarkTransformLateLatched(transform, lateLatchNode);
}
}