Unity มีฟีเจอร์บางอย่างที่เกี่ยวข้องกับประสิทธิภาพในการตั้งค่า OpenXR เปิดใช้ฟีเจอร์เหล่านี้เพื่อให้แอปสื่อสารกับรันไทม์ Android XR รับการแจ้งเตือนประสิทธิภาพ และเพิ่มประสิทธิภาพ GPU โดยใช้การเรนเดอร์แบบโฟเวต
สิ่งที่ต้องมีก่อน
ก่อนทำตามคำแนะนำนี้ โปรดตรวจสอบว่าคุณได้ยืนยันและทำตามข้อกำหนดเบื้องต้นต่อไปนี้แล้ว
- ทำตามขั้นตอนทั้งหมดสำหรับการตั้งค่าโปรเจ็กต์ใน Unity
เข้าถึงการตั้งค่าฟีเจอร์ OpenXR
ทำตามขั้นตอนต่อไปนี้เพื่อเข้าถึงการตั้งค่าฟีเจอร์ OpenXR ของ Unity ซึ่งคุณสามารถ กำหนดค่าฟีเจอร์ด้านประสิทธิภาพที่ระบุไว้ในส่วนถัดไป
- จากเมนูหลักของ Unity ให้คลิกแก้ไข > การตั้งค่าโปรเจ็กต์
- ขยายส่วนการจัดการปลั๊กอิน XR แล้วคลิก OpenXR
- ไปที่ส่วนกลุ่มฟีเจอร์ OpenXR
เปิดใช้การตั้งค่าประสิทธิภาพ XR
การตั้งค่าประสิทธิภาพ XR ใน Unity ช่วยให้แอปสื่อสารข้อกำหนดด้านประสิทธิภาพกับรันไทม์ Android XR และรับการแจ้งเตือนด้านประสิทธิภาพได้
ประโยชน์
- แอปจะได้รับการแจ้งเตือนจากระบบเพื่อรักษาประสิทธิภาพสูงสุด
- คุณสามารถให้คำแนะนำด้านประสิทธิภาพแก่รันไทม์ OpenXR ได้
เปิดใช้ฟีเจอร์นี้
ในส่วนกลุ่มฟีเจอร์ OpenXR ที่คุณไปยังก่อนหน้านี้ ให้เปิดใช้ การตั้งค่าประสิทธิภาพ XR
เปิดใช้การเรนเดอร์แบบโฟเวต
การเรนเดอร์แบบโฟเวตจะมีการเพิ่มประสิทธิภาพทั้งแบบคงที่และการติดตามดวงตา ซึ่งจะช่วยปรับปรุงประสิทธิภาพของ GPU อย่างไรก็ตาม การติดตั้งใช้งานการติดตามดวงตาจะช่วยให้ผู้ใช้ได้รับคุณภาพที่ดีขึ้น ด้วยการแสดงผลบริเวณที่ผู้ใช้กำลังมองอยู่ ขณะเดียวกันก็ ลดคุณภาพของภาพที่มองเห็นรอบข้าง ซึ่งจะช่วยลดภาระงานของ GPU ได้อย่างมาก ในขณะที่ยังคงคุณภาพของภาพในจุดที่สำคัญที่สุด
ประโยชน์
- ลดปริมาณงานของ GPU อย่างมากด้วยการแสดงรายละเอียดน้อยลงใน วิสัยทัศน์รอบข้าง
- ทำให้บริเวณที่ผู้ใช้กำลังมองอยู่คมชัด
- ช่วยให้คุณสร้างฉากที่ซับซ้อนมากขึ้นได้โดยไม่ทำให้เฟรมหลุด
เปิดใช้ฟีเจอร์นี้
- ในส่วนกลุ่มฟีเจอร์ OpenXR ที่คุณไปยังก่อนหน้านี้ ให้เปิดใช้การเรนเดอร์แบบโฟเวต
ตั้งค่า Foveated Rendering API เป็น SRP Foveation
ในส่วนโปรไฟล์การโต้ตอบที่เปิดใช้ ให้เพิ่มโปรไฟล์การโต้ตอบด้วยการมอง
ในส่วนกลุ่มสิทธิ์ ให้ระบุว่าควรขอสิทธิ์
android.permission.EYE_TRACKING_FINE
เปิดฟีเจอร์ที่รันไทม์และตั้งค่าระดับการเรนเดอร์แบบโฟเวตสำหรับแอปของคุณโดยทำดังนี้
using System.Collections.Generic; using UnityEngine; using UnityEngine.XR; public class FoveationStarter : MonoBehaviour { List<XRDisplaySubsystem> xrDisplays = new List<XRDisplaySubsystem>(); void Start() { SubsystemManager.GetSubsystems(xrDisplays); if (xrDisplays.Count == 1) { xrDisplays[0].foveatedRenderingLevel = 1.0f; // Full strength xrDisplays[0].foveatedRenderingFlags = XRDisplaySubsystem.FoveatedRenderingFlags.GazeAllowed; } } }
ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบของ Unity เกี่ยวกับการเรนเดอร์แบบโฟเวต