Summoners War: Chronicles US(WW) และ KR ของ Com2uS ใช้ Vulkan ในการเรนเดอร์บน Android เท่านั้น ซึ่งช่วยเพิ่มประสิทธิภาพได้สูงสุด 30%
Vulkan เป็น API กราฟิก 3 มิติแบบข้ามแพลตฟอร์มที่ทันสมัย ซึ่งออกแบบมาเพื่อลดการแยกแยะระหว่างฮาร์ดแวร์กราฟิกของอุปกรณ์กับเกม Vulkan มีค่าใช้จ่ายเพิ่มเติมของ CPU ต่ำกว่าเมื่อเทียบกับ OpenGL ES และ Vulkan มีฟีเจอร์ที่หลากหลายกว่า

ฟีเจอร์การแสดงผล
Com2uS ได้พัฒนาฟีเจอร์การเรนเดอร์ขั้นสูงสำหรับ Summoners War: Chronicles ซึ่งรวมถึงฟีเจอร์ต่อไปนี้
- ระบบการแสดงผลแบบเลื่อนเวลาที่กำหนดเองที่มีการคัดแสงก่อนการแสดงผลและแสงที่ทำงานอยู่สูงสุด 16 ดวงในมุมมอง frustum พร้อมกัน
- วิธีการสร้างอินสแตนซ์ของการแสดงผลโดยอ้อม (เรียกว่า
Clay
) เพื่อวาดเมช วัสดุ และพื้นผิวหลายรายการพร้อมกัน - การใช้คอมพิวตเชดเดอร์อย่างแพร่หลายสำหรับงานแสดงผลก่อนการเรนเดอร์
- ความสามารถในการปรับการแสดงผลเงาที่ใช้งานอยู่และเอฟเฟกต์หลังการประมวลผลแบบไดนามิกตามการเคลื่อนไหวของกล้อง ตัวเลือกกราฟิก และประสิทธิภาพรันไทม์
การปรับฮาร์ดแวร์ของอุปกรณ์เคลื่อนที่
Summoners War: Chronicles ใช้โปรแกรมแสดงผลเดียวกันสำหรับอุปกรณ์ Android, คอมพิวเตอร์ส่วนบุคคล และคอนโซลเกมโดยเฉพาะ Com2uS ได้ปรับการตั้งค่าการแสดงผล รวมถึงความลึกในการวาดและความละเอียดเพื่อให้ได้ประสิทธิภาพที่ดีที่สุดบนฮาร์ดแวร์อุปกรณ์เคลื่อนที่ Com2uS ได้สร้างเชดเดอร์บางเวอร์ชันสํารองและใช้จํานวนอินสแตนซ์ที่ลดลงเพื่อให้รองรับอุปกรณ์บางรุ่นที่ใช้ Android 11 (API ระดับ 30) และต่ำกว่า นอกจากนี้ Summoners War: Chronicles ยังใช้ฟีเจอร์ประสิทธิภาพแบบปรับได้ใน Android เพื่อปรับตัวเลือกกราฟิกแบบไดนามิกตามสภาพความร้อนของอุปกรณ์
เหตุผลที่รองรับเฉพาะ Vulkan
Com2uS ใช้ Vulkan กับ Summoners War: Chronicles เท่านั้นด้วยเหตุผลหลายประการ ดังนี้
- ข้อกำหนดขั้นต่ำของอุปกรณ์ไม่รวมอุปกรณ์รุ่นเก่าที่มีประสิทธิภาพต่ำซึ่งไม่มีการรองรับ Vulkan
- การปรับแต่งเอ็นจิ้น Unity ไปป์ไลน์การเรนเดอร์ในตัว (BiRP) ฟีเจอร์ที่จำเป็นใช้ได้เฉพาะในแบ็กเอนด์ Vulkan ของเกม
- การใช้ฟีเจอร์การแสดงผลโดยใช้เอาต์พุตของคอมพิวตเชดเดอร์และออบเจ็กต์บัฟเฟอร์พื้นที่เก็บข้อมูลเชดเดอร์ (SSBOs) ทำได้ใน Vulkan แต่ทําใน OpenGL ES ไม่ได้
ภาระงานใน Compute
Summoners War: Chronicles ทำงานกับคอมพิวตเชดเดอร์อย่างหนักเพื่อสร้างข้อมูลสำหรับการเรนเดอร์ การใช้เชดเดอร์การประมวลผลมีไว้เพื่อดำเนินการต่อไปนี้
- การตัดออบเจ็กต์
- การตรวจสอบร่องรอยการชน
- งานภาพเคลื่อนไหว
- การสร้างข้อมูลการแสดงผลโดยอ้อม
ระบบจะเขียนข้อมูลการประมวลผลที่ได้ลงในออบเจ็กต์ RWBuffer ของเอ็นจิ้น Unity Summoners War: Chronicles ทำงานประมวลผลทั้งหมดด้วยการเรียกใช้ครั้งเดียวเพื่อให้ได้ประสิทธิภาพที่ดีที่สุด ซึ่งต้องใช้ RWBuffers หลายรายการพร้อมกัน แนวทางนี้ใช้ได้เฉพาะกับ Vulkan เนื่องจากแบ็กเอนด์ BiRP ของ Unity ที่ใช้ OpenGL ES รองรับการใช้ RWBuffer เพียงรายการเดียวในแต่ละครั้ง
ชุดข้อมูลที่สร้างขึ้นสำหรับการเรนเดอร์มักจะมีขนาดใหญ่กว่าขีดจำกัดขนาดของอุปกรณ์สำหรับออบเจ็กต์บัฟเฟอร์แบบสอดคล้องกัน (UBOs) Summoners War: Chronicles จะใช้ออบเจ็กต์บัฟเฟอร์พื้นที่เก็บข้อมูลของ Shader (SSBOs) แทน ซึ่งมีขีดจำกัดความจุมากกว่า อย่างไรก็ตาม การเชื่อมโยง SSBO กับการดำเนินการระยะเวิร์กเท็กซ์ต้องรองรับ SSBO แบบอ่านอย่างเดียว OpenGL ES รองรับเฉพาะ SSBO แบบอ่าน/เขียน ขณะที่ Vulkan สามารถทําเครื่องหมาย SSBO เป็นแบบอ่านอย่างเดียวได้
การแสดงผลแบบอินสแตนซ์โดยอ้อมด้วย Clay
สำหรับ Summoners War: Chronicles ทาง Com2uS ได้พัฒนาวิธีการจัดกลุ่มวัสดุ เมช และพื้นผิวหลายรายการไว้ในการเรียกใช้การวาดครั้งเดียว Com2uS เรียกระบบนี้ว่า Clay Clay ช่วยปรับปรุงประสิทธิภาพของเกมได้ 30% เนื่องจากลดจำนวนการเรียกการวาดได้อย่างมาก
Clay จะเริ่มทำงานในช่วงการคัดออกและการชนกันโดยสร้างรายการออบเจ็กต์ที่แสดงผลได้ซึ่งเข้ากันได้ จากนั้น Clay จะสร้างข้อมูลการแสดงผลสำหรับวัตถุแต่ละรายการที่ระบุไว้ใน SSBO กระบวนการนี้ทำงานด้วยเชดเดอร์การประมวลผล ซึ่งช่วยให้ใช้การแสดงผลแบบอินสแตนซ์โดยอ้อมได้โดยใช้ฟังก์ชัน DrawMeshInstancedIndirect ของโปรแกรมแสดงผล Unity เมื่อใช้การแสดงผลโดยอ้อม ระบบจะสร้างข้อมูลอินสแตนซ์และพารามิเตอร์จํานวนอินสแตนซ์ใน GPU โดยตรง เมื่อวาดวัตถุ Clay จะเชื่อมโยงเมชกรวยแทนการเชื่อมโยงเมชวัตถุแบบดั้งเดิม ดังภาพต่อไปนี้

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

ระบบจะจัดกลุ่มข้อมูลวัสดุของวัตถุไว้ในบัฟเฟอร์อื่นที่สร้างขึ้นโดยคอมพิวต shader บัฟเฟอร์จะเชื่อมโยงกับ Shader ระดับเศษ พื้นผิวของวัตถุที่กำลังวาดจะได้รับการกําหนดค่าในอาร์เรย์พื้นผิว ดัชนีอาร์เรย์สำหรับพื้นผิวของออบเจ็กต์จะรวมอยู่ในข้อมูลวัสดุของออบเจ็กต์ ภายใต้สถานการณ์ที่เหมาะสม เคลย์จะแสดงผลได้ด้วยการเรียกใช้การวาดสูงสุด 7 ครั้ง ดังนี้
- วัตถุคงที่
- วัตถุที่เคลื่อนไหว
- แสงเงา (4 ระยะ)
- การแสดงผล
Unity + Vulkan
Summoners War: Chronicles แสดงให้เห็นว่าการผสมผสานที่มีประสิทธิภาพระหว่างเครื่องมือสร้างเกม Unity กับ Vulkan Graphics API ช่วยให้นักพัฒนาแอปนำกราฟิกคุณภาพระดับคอนโซลขั้นสูงมาสู่อุปกรณ์ Android ได้