ปรับปรุงอัตราเฟรม ลดภาระงานของ GPU และลดเวลาในการตอบสนองของการแสดงผลโดยใช้การตั้งค่าส่วนขยาย Android XR

Unity มีฟีเจอร์บางอย่างที่เกี่ยวข้องกับประสิทธิภาพซึ่งใช้ได้กับ Android XR โดยเฉพาะ และต้องใช้แพ็กเกจส่วนขยาย Android XR เปิดใช้ฟีเจอร์เหล่านี้เพื่อปรับปรุงอัตราเฟรมและลดภาระงานของ GPU ผ่านการแทนที่เฟรมและตัวอย่างย่อยของ Vulkan รวมถึงเพื่อลดเวลาในการตอบสนองของการแสดงผลที่ติดตามโดยใช้การยึดเกาะแบบเลื่อนเวลา

สิ่งที่ต้องมีก่อน

ก่อนทำตามคำแนะนำนี้ โปรดตรวจสอบว่าคุณได้ยืนยันและทำตามข้อกำหนดเบื้องต้นต่อไปนี้แล้ว

เปิดใช้ Space Warp

Application Spacewarp ของ URP คือการเพิ่มประสิทธิภาพ OpenXR ที่ช่วยรักษาอัตราเฟรมสูงด้วยการสังเคราะห์ เฟรมเว้นเฟรม เทคนิคนี้ใช้เวกเตอร์การเคลื่อนไหวและข้อมูลเชิงลึกจากเฟรมก่อนหน้าเพื่อคาดการณ์ว่าพิกเซลควรเคลื่อนที่ไปที่ใด ซึ่งจะช่วยลดกำลังในการประมวลผลและการใช้พลังงาน

ประโยชน์

  • ลดภาระงานในการแสดงผล GPU โดยการสังเคราะห์เฟรมสำรอง
  • ลดกำลังการประมวลผลและการใช้พลังงานได้อย่างมาก
  • ใช้การฉายภาพซ้ำเพื่อลดเวลาในการตอบสนองระหว่างการเคลื่อนไหวของผู้ใช้และการอัปเดตการแสดงผล

เปิดใช้ฟีเจอร์นี้

  1. จากเมนูหลักของ Unity ให้คลิกแก้ไข > การตั้งค่าโปรเจ็กต์
  2. ขยายส่วนการจัดการปลั๊กอิน XR
  3. เลือกแท็บที่สอดคล้องกับอุปกรณ์ XR ที่คุณใช้อยู่
  4. ไปที่ส่วนกลุ่มฟีเจอร์ OpenXR
  5. ในส่วนฟีเจอร์ทั้งหมด ให้เปิดใช้ Application SpaceWarp

    การตั้งค่า Unity สำหรับ Spacewarp

เปิดใช้การสุ่มตัวอย่างย่อย Vulkan

การสุ่มตัวอย่างย่อยของ Vulkan ช่วยให้สร้างและสุ่มตัวอย่างรูปภาพที่ความหนาแน่นต่างๆ ได้ โดยใช้แผนที่ความหนาแน่นของ Fragment ฟีเจอร์ Vulkan นี้ช่วยให้สามารถแสดงผลและโอนส่วนต่างๆ ของ หน้าจอไปยังหน่วยความจำที่ความละเอียดต่างๆ ซึ่งมีประโยชน์อย่างยิ่งสำหรับการแสดงผลแบบโฟเวต ที่ส่วนรอบนอกสามารถใช้ความละเอียดที่ต่ำกว่าได้

ประโยชน์

  • ให้การปรับปรุงที่แตกต่างกันเมื่อใช้ร่วมกับการเรนเดอร์แบบโฟเวต ขึ้นอยู่กับรูปแบบของอุปกรณ์
  • ลดรอยหยักในพื้นที่รอบนอกผ่านการกรองแบบไบลิเนียร์
  • ช่วยให้การแสดงผลแบบอัตราตัวแปรมีประสิทธิภาพในภูมิภาคต่างๆ ของหน้าจอ

เปิดใช้ฟีเจอร์นี้

  1. จากเมนูหลักของ Unity ให้คลิกแก้ไข > การตั้งค่าโปรเจ็กต์
  2. ขยายส่วนการจัดการปลั๊กอิน XR แล้วคลิก OpenXR
  3. คลิกไอคอนฟันเฟืองข้าง Android XR (ส่วนขยาย): การจัดการเซสชัน
  4. เปิดใช้การสุ่มตัวอย่างย่อย (Vulkan)

    การตั้งค่า Unity สำหรับการสุ่มตัวอย่างย่อยของ 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);
    }
}