Samsung Galaxy XR มาถึงแล้ว ขับเคลื่อนโดย Android XR บล็อกโพสต์นี้เป็นส่วนหนึ่งของ สัปดาห์สปอตไลต์ Android XR ซึ่งเราจะจัดหาแหล่งข้อมูลต่างๆ เช่น บล็อกโพสต์ วิดีโอ โค้ดตัวอย่าง และอื่นๆ อีกมากมาย ซึ่งออกแบบมาเพื่อช่วยให้คุณได้เรียนรู้ สร้าง และเตรียมแอปสำหรับ Android XR
สัปดาห์นี้ Samsung ได้เปิดตัว Galaxy XR ซึ่งสร้างขึ้นโดยความร่วมมือกับ Google และ Qualcomm นี่เป็นช่วงเวลาที่น่าตื่นเต้นสำหรับนักพัฒนาแอป และเราต้องการช่วยให้คุณได้รับประสิทธิภาพที่ดีที่สุดจากแอป XR
แม้ว่าประสิทธิภาพที่ไม่ดีในเกมและแอปบนอุปกรณ์ที่ไม่ใช่ XR อาจทำให้ผู้ใช้หงุดหงิด แต่ในโลกของ XR ประสิทธิภาพไม่ใช่แค่ตัวเลือก แต่เป็นพื้นฐานสู่ความสำเร็จของแอป หากคุณพลาดเป้าหมายอัตราเฟรมใน XR อาจทำให้เกิดปัญหาที่ร้ายแรงกว่ามาก เช่น อาการเมารถ
ในคู่มือนี้ เราจะอธิบายการเพิ่มประสิทธิภาพที่จำเป็นซึ่งคุณต้องทำความเข้าใจสำหรับการพัฒนา Android XR คุณจะได้ทราบว่าฟีเจอร์ใดที่ช่วยเพิ่มประสิทธิภาพได้มากที่สุด เวลาที่ควรใช้ฟีเจอร์เหล่านั้น และวิธีที่ฟีเจอร์ต่างๆ ทำงานร่วมกันเพื่อช่วยให้คุณบรรลุเป้าหมายอัตราเฟรม
สิ่งที่เรามุ่งมั่นที่จะทำมีดังนี้
- ขั้นต่ำ: 72fps (ส่วนหนึ่งของหลักเกณฑ์ด้านคุณภาพการเล่น)
- ไม่บังคับ: 90 FPS โดยมีงบประมาณ 11 มิลลิวินาทีต่อเฟรม
ดูข้อมูลเพิ่มเติมเกี่ยวกับความสำคัญของการรักษาอัตราเฟรมที่สูงเช่นนี้ได้ที่หลักเกณฑ์ด้านประสิทธิภาพ
ฟีเจอร์ด้านประสิทธิภาพเฉพาะ XR
เราจะเริ่มต้นด้วยการพูดถึงฟีเจอร์ด้านประสิทธิภาพ 2 อย่างที่เฉพาะเจาะจงสำหรับ XR ได้แก่ Foveated Rendering และ Vulkan Subsampling
การแสดงผลแบบโฟเวต
การเรนเดอร์แบบโฟเวตคือการเพิ่มประสิทธิภาพที่มี 2 โหมด โหมดแรกคือโหมดคงที่ ซึ่งแสดงผลตรงกลางของหน้าจอที่ความละเอียดสูงขึ้น และค่อยๆ ลดความละเอียดลงเมื่อมองออกไปไกลขึ้น
ส่วนโหมดที่ 2 คือโหมดติดตามสายตา ซึ่งจะแสดงพื้นที่ที่คุณกำลังมองอย่างละเอียด ในขณะที่ลดคุณภาพที่แสดงในส่วนรอบนอก ซึ่งเลียนแบบการมองเห็นของมนุษย์ที่มองเห็นรายละเอียดที่ชัดเจนเฉพาะในพื้นที่ที่เราโฟกัส
การแสดงผลแบบโฟเวตจะลดภาระงานของ GPU ลงอย่างมากโดยไม่ลดคุณภาพของรูปภาพที่ผู้ใช้รับรู้ ข้อดีของการเรนเดอร์แบบโฟเวตคือผู้ใช้จะไม่สังเกตเห็นคุณภาพที่ลดลงในภาพรอบข้าง แต่ GPU จะสังเกตเห็นประสิทธิภาพที่เพิ่มขึ้นอย่างแน่นอน
ลองนึกภาพว่าคุณกำลังสร้างประสบการณ์การเยี่ยมชมพิพิธภัณฑ์ที่มีโบราณวัตถุ 3 มิติที่ซับซ้อน หากไม่มีการเรนเดอร์แบบโฟเวต คุณจะพยายามรักษา 90fps โดยการเรนเดอร์ทุกอย่างใน 'ขอบเขตการมองเห็น' ได้ยาก แต่การเรนเดอร์แบบโฟเวตจะช่วยให้คุณรักษาดีเทลที่มีหลายเหลี่ยมเหล่านั้นไว้ในจุดที่ผู้ใช้มอง แต่สภาพแวดล้อมเบื้องหลังจะเรนเดอร์ด้วยคุณภาพที่ต่ำกว่า ผู้ใช้จะไม่สังเกตเห็นความแตกต่าง แต่คุณจะมีพื้นที่ว่างในการเพิ่มรายละเอียดลงในฉากมากขึ้น
การสุ่มย่อย Vulkan
Vulkan Subsampling เป็นเพื่อนที่ดีที่สุดของ Foveated Rendering ในขณะที่การเรนเดอร์แบบโฟเวตจะกำหนดสิ่งที่ต้องเรนเดอร์ในระดับคุณภาพต่างๆ Vulkan Subsampling จะจัดการวิธีเรนเดอร์ระดับคุณภาพต่างๆ อย่างมีประสิทธิภาพโดยใช้แผนที่ความหนาแน่นของ Fragment
เมื่อใช้ร่วมกับการเรนเดอร์แบบโฟเวต Vulkan Subsampling จะช่วยเพิ่มประสิทธิภาพได้อีก 0.5 มิลลิวินาที นอกจากนี้ยังช่วยลดรอยหยักในภาพที่มองเห็นได้รอบข้าง ทำให้ภาพโดยรวมดูสะอาดตาขึ้น
ตัวอย่างเช่น ในเกมจำลองการบินที่ผู้ใช้มุ่งเน้นไปที่เครื่องมือและตัวควบคุม การรวมการแสดงภาพแบบโฟเวตเข้ากับการสุ่มตัวอย่างย่อยของ Vulkan จะทำให้การควบคุมแบบละเอียดแสดงผลได้อย่างคมชัด แต่โครงสร้างห้องนักบินรอบนอกจะใช้ทรัพยากรน้อยลง แม้ว่า 0.5 มิลลิวินาทีที่เพิ่มขึ้นอาจดูเหมือนไม่มาก แต่ก็เป็นความแตกต่างระหว่างการมีพื้นที่สำหรับองค์ประกอบแบบอินเทอร์แอกทีฟเพิ่มเติมหรือการดรอปเฟรมในช่วงเวลาที่เข้มข้น
ฟีเจอร์ GPU สำหรับฉากที่ซับซ้อน
นอกจากการแสดงผลแบบโฟเวตและการสุ่มตัวอย่างย่อยของ Vulkan แล้ว ยังมีฟีเจอร์ GPU บางอย่างที่ช่วยลดภาระที่ไม่จำเป็นผ่านการสร้างอินสแตนซ์และการคัดกรองอัจฉริยะ ซึ่งมีประสิทธิภาพเป็นพิเศษสำหรับฉากที่ซับซ้อนซึ่งมีรูปทรงซ้ำๆ หรือมีการปิดกั้นอย่างมาก
ลิ้นชักที่อยู่ใน GPU
GPU Resident Drawer จะใช้การสร้างอินสแตนซ์ GPU โดยอัตโนมัติเพื่อลดการเรียกวาดและเพิ่มเวลาการประมวลผลของ CPU ดังนั้นแทนที่ CPU จะบอก GPU เกี่ยวกับออบเจ็กต์แต่ละรายการแยกกัน GPU จะจัดกลุ่มออบเจ็กต์ที่คล้ายกันไว้ด้วยกัน
ฟีเจอร์นี้มีประสิทธิภาพมากที่สุดสำหรับฉากขนาดใหญ่ที่มีตาข่ายซ้ำๆ เช่น ต้นไม้ในป่า เฟอร์นิเจอร์ในอาคารสำนักงาน หรืออุปกรณ์ประกอบฉากที่กระจายอยู่ทั่วสภาพแวดล้อม
ลองนึกภาพฉากป่าที่มีต้นไม้ 200 ต้นโดยใช้ตาข่ายฐานเดียวกัน หากไม่มี GPU Resident Drawer คุณจะมีคำสั่งวาด 200 รายการที่ใช้ GPU ซึ่งจะทำให้ CPU ว่าง เมื่อเปิดใช้ฟีเจอร์นี้ GPU จะสร้างอินสแตนซ์ของต้นไม้เหล่านั้นอย่างชาญฉลาด ซึ่งจะช่วยลดจำนวนการเรียกวาดเหลือเพียง 5-10 ครั้ง ซึ่งเป็นการประหยัด GPU ได้อย่างมาก จากนั้นคุณสามารถนำไปใช้กับตรรกะการเล่นเกมหรือการคำนวณฟิสิกส์ได้
การคัดกรองการบดบังด้วย GPU
การคัดกรองการบดบังด้วย GPU จะใช้ GPU แทน CPU เพื่อระบุและข้ามการแสดงผลออบเจ็กต์ที่ซ่อนอยู่ โดยจะตรวจหาวัตถุที่ถูกบดบัง (ซ่อนอยู่) ด้านหลังวัตถุอื่นๆ โดยอัตโนมัติ เพื่อไม่ให้ GPU ทำงานกับสิ่งที่ผู้ใช้มองไม่เห็น
ฟีเจอร์นี้มีประสิทธิภาพอย่างยิ่งในพื้นที่ภายในที่มีหลายห้อง สภาพแวดล้อมที่หนาแน่น หรือฉากสถาปัตยกรรมที่ผนัง พื้น และวัตถุต่างๆ บดบังมุมมองโดยธรรมชาติ
ตัวอย่างเช่น สมมติว่าคุณกำลังสร้างประสบการณ์การใช้งานบ้านแบบหลายห้อง เมื่อผู้ใช้อยู่ในห้องนั่งเล่น จะเสียรอบ GPU ไปกับการแสดงผลห้องครัวที่มีรายละเอียดครบถ้วนซึ่งซ่อนอยู่หลังกำแพงทำไม การคัดกรองวัตถุที่ถูกบดบังด้วย GPU จะข้ามการแสดงผลวัตถุที่ซ่อนอยู่โดยอัตโนมัติ ซึ่งจะช่วยให้คุณมีงบประมาณด้านประสิทธิภาพมากขึ้นสำหรับสิ่งที่มองเห็นได้จริง
การตรวจสอบประสิทธิภาพ
การใช้ฟีเจอร์เหล่านี้เพียงอย่างเดียวไม่เพียงพอ นอกจากนี้ คุณยังต้องวัดผลการเพิ่มประสิทธิภาพเพื่อให้สามารถวัดผลลัพธ์และยืนยันว่าการเปลี่ยนแปลงได้ผลจริง
Performance Metrics API
Performance Metrics API ช่วยให้คุณตรวจสอบการใช้งานหน่วยความจำ ประสิทธิภาพ CPU และประสิทธิภาพ GPU ของแอปได้แบบเรียลไทม์ โดยจะให้ข้อมูลที่ครอบคลุมจากเลเยอร์ Compositor และเลเยอร์รันไทม์ เพื่อให้คุณเห็นสิ่งที่เกิดขึ้นในแอปพลิเคชันได้อย่างชัดเจน
กำหนดเกณฑ์พื้นฐานก่อนทำการเปลี่ยนแปลง ใช้การเพิ่มประสิทธิภาพ วัดผลกระทบ และทำซ้ำ แนวทางที่อิงตามข้อมูลนี้หมายความว่าคุณทราบว่าคุณกำลังปรับปรุงประสิทธิภาพจริงๆ ไม่ใช่แค่คาดเดา
ก่อนที่จะเปิดใช้การเรนเดอร์แบบโฟเวต เวลาที่ใช้ในการแสดงผลเฟรม GPU อาจอยู่ที่ 13 มิลลิวินาที ซึ่งเกินงบประมาณ 11 มิลลิวินาที เปิดใช้การเรนเดอร์แบบโฟเวต วัดอีกครั้ง และหวังว่าคุณจะเห็นว่าเวลาในการประมวลผลลดลงเหลือ 9 มิลลิวินาที ซึ่งเป็นส่วนต่าง 4 มิลลิวินาทีที่คุณได้รับเพื่อเพิ่มรายละเอียดให้กับฉาก ปรับปรุงคุณภาพภาพในส่วนอื่นๆ หรือเพียงแค่ทำให้ประสิทธิภาพราบรื่นยิ่งขึ้นในเนื้อหาที่หลากหลาย
หากไม่มีเมตริกเหล่านี้ คุณก็เพิ่มประสิทธิภาพโดยไม่รู้ตัว Metrics API จะบอกความจริงเกี่ยวกับสิ่งที่ช่วยกรณีการใช้งานเฉพาะของคุณจริงๆ
โปรแกรมแก้ไขข้อบกพร่องของเฟรม
Frame Debugger เป็นเครื่องมือในตัวของ Unity ที่ช่วยให้คุณเข้าใจได้อย่างแน่ชัดว่าฉากได้รับการเรนเดอร์อย่างไรทีละเฟรม โดยจะแสดงลําดับการเรียกวาดและให้คุณดูทีละรายการเพื่อยืนยันว่าการเพิ่มประสิทธิภาพทํางานได้อย่างถูกต้อง
หากต้องการยืนยันว่า SRP Batcher ทำงานอยู่ ให้ทำดังนี้ มองหารายการ "RenderLoopNewBatcher" ในเครื่องมือแก้ไขข้อบกพร่องของเฟรม กำลังตรวจสอบว่า GPU Resident Drawer จัดกลุ่มอย่างถูกต้องหรือไม่ มองหารายการ "กลุ่มงานแบบไฮบริด" การยืนยันด้วยภาพเหล่านี้ช่วยให้คุณเข้าใจว่าการตั้งค่าการเพิ่มประสิทธิภาพมีผลจริงหรือไม่
ดูการเรียกใช้การวาด 50 รายการแรกของฉาก หากเห็นว่ามีการวาดออบเจ็กต์ที่คล้ายกันทีละรายการแทนที่จะวาดเป็นกลุ่ม แสดงว่าการสร้างอินสแตนซ์หรือการจัดกลุ่มทำงานไม่ถูกต้อง Frame Debugger จะแสดงปัญหาเหล่านี้ให้เห็นทันทีเพื่อให้คุณแก้ไขได้
การเพิ่มประสิทธิภาพเพิ่มเติม
นอกจากการเพิ่มประสิทธิภาพที่เรากล่าวถึงข้างต้นแล้ว คู่มือประสิทธิภาพฉบับเต็มยังครอบคลุมการเพิ่มประสิทธิภาพอื่นๆ อีกด้วย เราจึงได้รวบรวมข้อมูลสรุปสั้นๆ มาดังนี้
- การตั้งค่า URP: ปิดใช้ HDR และการประมวลผลภายหลังสำหรับ XR บนอุปกรณ์เคลื่อนที่ ฟีเจอร์เหล่านี้มีผลกระทบต่อภาพน้อยมากเมื่อเทียบกับต้นทุนด้านประสิทธิภาพในฮาร์ดแวร์ของอุปกรณ์เคลื่อนที่ ดังนั้นคุณจะได้รับประสิทธิภาพที่วัดผลได้โดยมีความแตกต่างด้านภาพที่แทบมองไม่ออก
- SRP Batcher: ลดค่าใช้จ่ายของ CPU สำหรับฉากที่มีวัสดุจำนวนมากซึ่งใช้ตัวแปร Shader เดียวกัน การลดการเปลี่ยนแปลงสถานะการแสดงผลระหว่างการเรียกการวาดจะช่วยลดเวลา CPU ที่ใช้ในการแสดงผลได้อย่างมาก
- อัตราการรีเฟรชจอแสดงผล: ปรับแบบไดนามิกระหว่าง 72 FPS กับ 90 FPS ตามความซับซ้อนของฉาก ลดอัตราเฟรมในฉากที่ซับซ้อนเพื่อรักษาความเสถียร แล้วเพิ่มอัตราเฟรมในฉากที่เรียบง่ายกว่าเพื่อการโต้ตอบที่ราบรื่นเป็นพิเศษ
- พื้นผิวแบบลึก/ทึบแสง: ปิดใช้พื้นผิวเหล่านี้ เว้นแต่จะจำเป็นสำหรับเอฟเฟกต์ Shader โดยเฉพาะ ซึ่งทำให้เกิดการคัดลอก GPU ที่ไม่จำเป็นซึ่งทำให้ประสิทธิภาพลดลงโดยไม่ก่อให้เกิดประโยชน์สำหรับแอปพลิเคชันส่วนใหญ่
- สเกลการแสดงผล URP: การตั้งค่านี้ช่วยให้คุณแสดงผลที่ความละเอียดที่ลดลงเพื่อเพิ่มประสิทธิภาพ หรือเพิ่มสเกลการแสดงผลเพื่อปรับปรุงคุณภาพภาพได้
ดูวิธีการเพิ่มประสิทธิภาพเหล่านี้และอื่นๆ แบบทีละขั้นตอนได้ในคู่มือประสิทธิภาพ Unity สำหรับ Android XR ฉบับสมบูรณ์
บทสรุป
ประสิทธิภาพของแอป XR ไม่ใช่แค่ช่องทำเครื่องหมายทางเทคนิค ความแตกต่างระหว่างประสบการณ์ที่สะดวกสบายและน่าสนใจกับประสบการณ์ที่ทำให้ผู้ใช้รู้สึกไม่สบายใจหรือหงุดหงิด การเพิ่มประสิทธิภาพที่เราได้กล่าวถึงไปนั้นเป็นชุดเครื่องมือที่จะช่วยให้คุณบรรลุเป้าหมายอัตราเฟรมที่สำคัญในอุปกรณ์ XR รุ่นใหม่ล่าสุด
นี่คือแผนกลยุทธ์ของคุณ
- เริ่มต้นด้วยการแสดงผลแบบโฟเวตและการสุ่มตัวอย่างย่อยของ Vulkan ฟีเจอร์เฉพาะ XR เหล่านี้ช่วยประหยัด GPU ได้ทันทีและเห็นผลชัดเจน
- เพิ่ม GPU Resident Drawer และ Occlusion Culling หากมีฉากที่ซับซ้อนซึ่งมีรูปทรงซ้ำหรือพื้นที่ภายใน
- ตรวจสอบทุกอย่างด้วย API เมตริกประสิทธิภาพเพื่อให้แน่ใจว่าการเปลี่ยนแปลงของคุณช่วยได้จริง
- ดูการเพิ่มประสิทธิภาพ URP เพิ่มเติมเพื่อเพิ่มช่องว่างด้านประสิทธิภาพ
การวัดผลอย่างต่อเนื่องและการทำซ้ำเป็นสิ่งสำคัญ การเพิ่มประสิทธิภาพบางอย่างอาจไม่เป็นประโยชน์ต่อทุกโปรเจ็กต์อย่างเท่าเทียมกัน ดังนั้นให้ใช้ Performance Metrics API เพื่อให้ทราบอย่างชัดเจนว่าสิ่งใดที่ช่วยกรณีการใช้งานของคุณโดยเฉพาะ
ขั้นตอนต่อไป: พัฒนาทักษะของคุณ
พร้อมเจาะลึกแล้วหรือยัง ลองดูแหล่งข้อมูลเหล่านี้
- คำแนะนำด้านประสิทธิภาพของ Unity สำหรับ Android XR - วิธีการติดตั้งใช้งานแบบทีละขั้นตอนที่สมบูรณ์สำหรับฟีเจอร์ทั้งหมดที่กล่าวถึงที่นี่
- เริ่มต้นใช้งาน Unity และ Android XR - ตั้งค่าสภาพแวดล้อมในการพัฒนาซอฟต์แวร์และ เริ่มสร้าง
- เอกสารประกอบสำหรับนักพัฒนา Android XR - คำแนะนำที่ครอบคลุมสำหรับฟีเจอร์ทั้งหมดของ Android XR
อ่านต่อ
-
ข่าวสารผลิตภัณฑ์
Android กำลังเปลี่ยนจากระบบปฏิบัติการไปเป็นระบบอัจฉริยะ ซึ่งจะสร้างโอกาสในการมีส่วนร่วมกับแอปของคุณมากขึ้น โดยเราได้ประกาศเรื่องนี้ใน The Android Show วันนี้
Matthew McCullough • ใช้เวลาอ่าน 4 นาที
-
ข่าวสารผลิตภัณฑ์
ระบบนิเวศบนอุปกรณ์เคลื่อนที่พัฒนาอยู่เสมอ ซึ่งนำมาทั้งโอกาสใหม่ๆ และภัยคุกคามใหม่ๆ การเปลี่ยนแปลงเหล่านี้จะช่วยให้ Android และ Google Play ยังคงมุ่งมั่นที่จะดูแลให้ผู้ใช้หลายพันล้านคนสามารถใช้แอปได้อย่างมั่นใจและนักพัฒนาแอปสามารถสร้างสรรค์นวัตกรรมต่อไปได้
Vijaya Kaza • ใช้เวลาอ่าน 3 นาที
-
ข่าวสารผลิตภัณฑ์
Jetpack Compose เวอร์ชันเดือนเมษายน 2026 พร้อมให้ใช้งานอย่างเสถียรแล้ว รุ่นนี้มีโมดูลหลักของ Compose เวอร์ชัน 1.11 (ดูการแมป BOM แบบเต็ม), เครื่องมือแก้ไขข้อบกพร่องขององค์ประกอบที่แชร์, เหตุการณ์แทร็กแพด และอื่นๆ
Meghan Mehta • ใช้เวลาอ่าน 5 นาที
รับข่าวสาร
รับข้อมูลเชิงลึกด้านการพัฒนาแอป Android ล่าสุดส่งตรงถึงกล่องจดหมายของคุณทุกสัปดาห์