Diablo Immortal เพิ่มคุณภาพของภาพด้วยระบบเรย์ทราซิงในฮาร์ดแวร์

Diablo Immortal เป็นเกมเล่นฟรีแนวแอ็กชันบทบาทสมมติ (ARPG) แบบผู้เล่นหลายคนที่พัฒนาร่วมกันโดย Blizzard Entertainment และ NetEase Diablo Immortal ซึ่งเป็นบทใหม่ในซีรีส์ Diablo ที่เปิดตัวในปี 2022 เกมนี้ช่วยเติมเต็มช่องว่างของเรื่องราวระหว่าง Diablo 2 กับ Diablo 3 และเปิดฉากการผจญภัยครั้งใหม่เกี่ยวกับชิ้นส่วนของหินโลก ซึ่งผู้เล่นจะได้สำรวจทวีป Sanctuary เพื่อต่อสู้กับปีศาจและกองกำลังที่บิดเบือน

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

เรย์ tracing บนฮาร์ดแวร์ในอุปกรณ์เคลื่อนที่

เทคโนโลยีเรย์ tracing ของฮาร์ดแวร์มีแพลตฟอร์มการใช้งานหลักๆ 2 แพลตฟอร์ม ได้แก่ ไปป์ไลน์เรย์ tracing และการค้นหาเรย์

ไปป์ไลน์เรย์ tracing จะสร้างไปป์ไลน์ที่สมบูรณ์ผ่านระยะของโปรแกรมเปลี่ยนรูปแบบเฉพาะ (การสร้างเรย์ / จุดตัดกัน / โปรแกรมเปลี่ยนรูปแบบที่โดนเป้าหมายใกล้ที่สุด) แม้ว่าจะควบคุมการโต้ตอบของรังสีได้อย่างแม่นยำ แต่ไปป์ไลน์เรย์ทราซิชันต้องมีการกำหนดค่าไปป์ไลน์อิสระ ซึ่งเพิ่มความซับซ้อนในการพัฒนา

ในทางกลับกัน การค้นหาด้วยเรย์ช่วยให้เริ่มการค้นหาด้วยเรย์ได้โดยตรงจากการคำนวณหรือเชดเดอร์เศษแบบดั้งเดิม ซึ่งทำให้เป็นเทคโนโลยีหลักสำหรับการเรย์ tracing บนอุปกรณ์เคลื่อนที่ การไม่ต้องใช้ไปป์ไลน์แยกต่างหากทำให้การค้นหาด้วย Ray Query ไม่เพียงแต่จะลดความซับซ้อนของกระบวนการพัฒนาอย่างมาก แต่ยังมีข้อดีหลักๆ 3 ข้อดังนี้

  1. เข้ากันได้กับสภาพแวดล้อมการประมวลผลแบบผสมและฮาร์ดแวร์เรย์ tracing ที่ไม่สมบูรณ์
  2. รองรับการเรียกใช้เรย์ tracing แบบออนดีมานด์ในทุกระยะการแรเงา
  3. การลดการใช้ทรัพยากรจะช่วยตอบสนองข้อจำกัดของแบนด์วิดท์และพลังงานของแพลตฟอร์มอุปกรณ์เคลื่อนที่ รวมถึงเป็นพื้นฐานที่เป็นไปได้สำหรับเอฟเฟกต์ขั้นสูง เช่น การจัดแสงโดยรวมแบบไดนามิกและการสะท้อนแสงแบบเรียลไทม์ในเกมบนอุปกรณ์เคลื่อนที่

Diablo Immortal ใช้ Vulkan เพื่อใช้ประโยชน์จากความสามารถของฮาร์ดแวร์เรย์แคสต์ของ GPU เกมจะคำนวณเส้นทางของแสงผ่านฉากแบบเรียลไทม์และพิจารณาคุณสมบัติของวัสดุที่ซับซ้อนเพื่อให้ได้เอฟเฟกต์การสะท้อนแสงแบบเรียลไทม์ที่ยอดเยี่ยมในอุปกรณ์ Android

รูปที่ 1 ฉากที่มีการเปิดใช้การสะท้อนด้วยระบบเรย์แคสต์
รูปที่ 2 ฉากที่มีปิดการสะท้อนด้วยระบบเรย์แคสต์

โครงสร้างการเร่ง

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

โดยปกติแล้วระบบจะมี 2 ระดับ ได้แก่ โครงสร้างการเร่งระดับบนสุด (TLAS) และโครงสร้างการเร่งระดับล่าง (BLAS) ดังนี้

  • TLAS ทำหน้าที่เป็นตัวจัดการฉาก โดยบันทึกเมทริกซ์การเปลี่ยนรูปแบบเชิงพื้นที่ (รวมถึงตำแหน่ง การหมุน และมาตราส่วน) ของอินสแตนซ์ BLAS ทั้งหมด ซึ่งทำให้ TLAS ตระหนักถึงการจัดระเบียบฉากแบบไดนามิกทั่วโลก ตัวอย่างเช่น TLAS ช่วยให้นักพัฒนาแอปสามารถเผยแพร่อินสแตนซ์ของโมเดลต้นไม้เดียวกันหลายร้อยรายการในตำแหน่งและท่าทางต่างๆ ในฉากได้ นักพัฒนาแอปจึงต้องอัปเดตเฉพาะเมทริกซ์การเปลี่ยนรูปแบบของวัตถุที่เคลื่อนไหวในแต่ละเฟรมแทนการสร้างเรขาคณิตขึ้นมาใหม่
  • BLAS เป็นหน่วยฐาน - รับผิดชอบในการเข้ารหัสรายละเอียดเชิงเรขาคณิตของวัตถุ 3 มิติรายการเดียวอย่างมีประสิทธิภาพ โดย BLAS จะสร้างโครงสร้างดัชนีเชิงพื้นที่ผ่านอัลกอริทึมลําดับชั้นปริมาตรที่กําหนดขอบเขต (BVH) เพื่อให้ข้ามพื้นที่ที่ไม่เกี่ยวข้องได้อย่างรวดเร็วระหว่างการตรวจจับเรย์

การออกแบบแบบลําดับชั้นนี้ช่วยให้ไปป์ไลน์การเรย์เทรซสร้างเชนการตรวจจับที่มีประสิทธิภาพของเรย์ ==> TLAS (อินสแตนซ์ออบเจ็กต์ตะแกรงหยาบ) ==> BLAS (จุดตัดที่แน่นอน)

การแยกโมเดลแบบไดนามิกและแบบคงที่เป็นกุญแจสำคัญในการลดต้นทุนการสร้างโครงสร้างการเร่ง

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

การสร้างใหม่เป็นระยะๆ เป็นสิ่งจําเป็นในการรักษาประสิทธิภาพของโครงสร้างการเร่งเร้าในฉากแบบไดนามิกของเรย์ tracing เมื่อวัตถุแบบไดนามิกมีการเปลี่ยนแปลงที่สำคัญในเรขาคณิตแบบทอพอโลยี เช่น การเสียรูปหรือการกระจัดของจุดยอดในวงกว้าง การแบ่งพื้นที่เดิมอาจไม่สำเร็จ ซึ่งจะลดประสิทธิภาพการตรวจจับการชนระหว่างเรย์ในการสแกน ด้วยเหตุนี้ ระบบจึงต้องเรียกใช้การสร้างใหม่ทั้งหมดแทนการอัปเดตแบบเพิ่มทีละน้อยของ BLAS/TLAS ที่มีการเปลี่ยนแปลงสูงทุกๆ N เฟรม

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

การสะท้อนด้วยระบบเรย์แคสต์

การสะท้อนด้วยเรย์แคสต์มีข้อดีหลายประการเหนือกว่าเทคนิคแบบดั้งเดิม เช่น การสะท้อนในเชิงพื้นที่ของหน้าจอ (SSR) และการสะท้อนแบบระนาบ (พื้นผิวเรียบที่ฉายภาพในมิติเดียว) การสะท้อนด้วยระบบเรย์แคสต์จะจำลองเส้นทางของแสงในลักษณะที่เหมือนจริง จับภาพวัตถุแบบไดนามิกทั้งภายในและภายนอกฉากได้อย่างแม่นยำ รองรับการสะท้อนแสงที่เป็นธรรมชาติจากพื้นผิวโค้งและไม่เรียบ และเปิดใช้เอฟเฟกต์แสงสะท้อนหลายแบบ เช่น กระจก ในทางตรงกันข้าม SSR จะจำกัดอยู่ที่ข้อมูลที่มองเห็นบนหน้าจอ และการสะท้อนแสงแบบแบนมีแนวโน้มที่จะเกิดข้อผิดพลาดหรือความผิดเพี้ยนของภาพในฉากที่ซับซ้อน

รูปที่ 3 ภาพสะท้อนของปีกในสระน้ำ
รูปที่ 4 ภาพสะท้อนของสัตว์ประหลาด

หลักการของภาพสะท้อนจากการเรย์แคสต์คล้ายกับ SSR แบบดั้งเดิม กล่าวคือ ภาพสะท้อนจากการเรย์แคสต์จะปล่อยรังสีไปในทิศทางของภาพสะท้อนจากเส้นขอบฟ้าแบบพิกเซลต่อพิกเซล และคำนวณจุดตัดของรังสีกับวัตถุในฉาก จุดตัดที่ Ray Query API แสดงผลจะมีข้อมูลเชิงเรขาคณิต (รวมถึงรหัสอินสแตนซ์ ดัชนีเรขาคณิต และดัชนีพรอมิเนก) และพารามิเตอร์การแรสเตอร์ (พิกัดศูนย์กลางมวล) ที่ระดับสามเหลี่ยม แต่ไม่มีข้อมูลสีพิกเซล โซลูชันทั่วไปใช้เทคโนโลยีการเชื่อมโยงทรัพยากรแบบไม่ใช้การเชื่อมโยงเพื่อคอมไพล์พารามิเตอร์พื้นผิวและวัสดุทั้งหมดของฉากล่วงหน้าลงในอาร์เรย์อินเด็กซ์ส่วนกลาง เมื่อใช้ตัวระบุเชิงเรขาคณิตที่การค้นหาด้วยเรย์แสดงผลแสดง ระบบจะค้นหาคุณสมบัติทางกายภาพของวัสดุที่เกี่ยวข้อง (เช่น แผนที่ปกติและความขรุขระ) แล้วรวมเข้ากับการหาค่าเฉลี่ยพิกัดศูนย์กลางมวลเพื่อคำนวณข้อมูลการแรเงาพื้นผิว และสามารถสร้างค่าสีจริงของการตัดกันผ่านการสร้างภาพแรสเตอร์

อย่างไรก็ตาม ในระหว่างกระบวนการติดตั้งใช้งาน ทีม Diablo Immortal ได้ค้นพบปัญหาทางเทคนิคที่สำคัญ 2 ข้อ ดังนี้

  1. ระบบต้องบังคับให้ใช้รูปแบบการจัดแสงแบบเดียวกัน ซึ่งขัดแย้งกับระบบแรเงาที่หลากหลายที่สะสมมาตลอดประวัติของโปรเจ็กต์ และอาจส่งผลให้วัสดุที่สะท้อนแสงไม่ตรงกับวัสดุต้นฉบับ
  2. รูปแบบเวิร์กเท็กซ์ที่หลากหลายทำให้ประสิทธิภาพการแยกสาขาของคำสั่งลดลงในระยะแรสเตอร์ ซึ่งถือเป็นปัญหาสำคัญภายใต้งบประมาณด้านประสิทธิภาพที่จำกัดของอุปกรณ์เคลื่อนที่

ทีม Diablo Immortal ได้เปิดตัวบัฟเฟอร์การแสดงผลอย่างสร้างสรรค์เพื่อแยกการประมวลผลเรขาคณิตออกจากการคํานวณการแรเงา

  • ระยะการเรย์แคสต์ — ระบบจะบันทึกข้อมูลการตี Ray ระดับพิกเซลแบบเรียลไทม์ผ่านการค้นหา Ray ตัวระบุเชิงพื้นที่ 3 มิติ (InstanceID พร้อม PrimitiveIndex) ของจุดตัดจะเข้ารหัสเป็นรหัสการแสดงผลแบบกะทัดรัดและเขียนลงในบัฟเฟอร์พื้นที่หน้าจอ
  • ระยะการระบายสี — คล้ายกับการดำเนินการที่ดำเนินการโดยเวิร์กเท็กซ์และพิกเซลเชดเดอร์ ระบบจะแยกวิเคราะห์ตัวระบุเชิงเรขาคณิตในบัฟเฟอร์การแสดงผลแบบไดนามิก ดึงข้อมูลพร็อพเพอร์ตี้เวิร์กเท็กซ์ (เช่น UV และเวกเตอร์ปกติ) และแผนที่วัสดุตามหลักฟิสิกส์ของโมเดลต้นฉบับ และดำเนินการคำนวณการแรเงาที่เกี่ยวข้องกับประเภทวัสดุในขั้นตอนสุดท้าย

โซลูชันนี้ช่วยให้เชื่อมต่อชิ้นงานภาพกับระบบการสะท้อนด้วยระบบเรย์แคสต์ได้โดยไม่ต้องแก้ไขรูปแบบเวิร์กเท็กซ์หรือชิเดอร์

ขั้นตอนการแสดงผลที่เฉพาะเจาะจง

พาสการค้นหาด้วย Ray

สอดคล้องกับระยะการเรย์แคสต์และสร้างบัฟเฟอร์การแสดงผลสำหรับการสะท้อนในพื้นที่หน้าจอ

  • Color0
    • รูปแบบ:R32G32UInt
    • R = TriangleID,G = Barycentrics
รูปที่ 5 บัฟเฟอร์การแสดงผล
  • ความลึก:
    • รูปแบบ:Depth32F
    • D = EncodeAsFloat(InstanceIdx, GeometryIdx)
    • ตัวระบุวัสดุของจุดตัดจะเข้ารหัสเป็นทศนิยม 32 บิตและเขียนลงในบัฟเฟอร์ความลึกสำหรับระยะถัดไปของเทคนิคการตรวจจับการจับคู่การเข้ารหัสความลึกของวัสดุ
รูปที่ 6 ความลึกที่เข้ารหัส

เรย์คิวรีในพิกเซลเชดเดอร์มีข้อดีต่อไปนี้เมื่อเทียบกับคอมพิวตเชดเดอร์

  • การผสานรวมไปป์ไลน์ — ฝังไปป์ไลน์ลงในไปป์ไลน์เรนเดอร์แบบส่งต่อ/เลื่อนเวลาที่มีอยู่โดยตรง เพื่อรักษาสถานะไปป์ไลน์เรนเดอร์ให้ต่อเนื่อง
  • การเพิ่มประสิทธิภาพแบนด์วิดท์ของอุปกรณ์เคลื่อนที่ — สำหรับสถาปัตยกรรมแบบไทล์บนอุปกรณ์เคลื่อนที่ ระบบจะเรียกใช้การบีบอัดแบบไม่สูญเสียข้อมูลในชิปเมื่อมีการเขียนข้อมูลการตีของเรย์ลงในRenderTarget ซึ่งจะช่วยลดการใช้แบนด์วิดท์ของหน่วยความจำเมื่อเทียบกับการส่งออกคอมพิวตเชดเดอร์แบบดั้งเดิมไปยังบัฟเฟอร์
  • การควบคุมจำนวนรังสี — คุณสามารถทําเครื่องหมายและปฏิเสธพื้นที่ที่ไม่สะท้อนแสงได้โดยใช้ระยะก่อนการประมวลผลร่วมกับการทดสอบสเตนซิล

แก้ไขบัตร

ในขั้นตอนการตกแต่งสี (ดูการสะท้อนด้วยระบบเรย์แคสต์) ทีม Diablo Immortal จับคู่การระบุได้อย่างรวดเร็วโดยใช้หน่วยฮาร์ดแวร์ทดสอบความลึกและดำเนินการตกแต่งสีของวัสดุเป็นกลุ่มๆ ต่อเนื่อง

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

ถัดไป ระบบจะใช้การจำลองวัสดุที่มีความแม่นยำสูงในพิกเซลเชเดอร์ ดังนี้

  • การถอดรหัสข้อมูลเรขาคณิต — ดึงข้อมูลตัวระบุรูปสามเหลี่ยม (MeshID + PrimitiveID) และพิกัดจุดศูนย์กลางมวลจากบัฟเฟอร์การแสดงผล และโหลดแอตทริบิวต์เวิร์กเท็กซ์ (ตำแหน่ง, UV, ปกติ ฯลฯ) ของรูปสามเหลี่ยมที่เกี่ยวข้องจากบัฟเฟอร์เวิร์กเท็กซ์แบบไดนามิก เนื่องจากโมเดลแต่ละโมเดลมีการแรเงาเป็นวัสดุอิสระ คุณจึงไม่จำเป็นต้องใช้ฟีเจอร์ขั้นสูง เช่น การเชื่อมโยง
  • การสร้างใหม่ของพารามิเตอร์พื้นผิว — คํานวณพิกัด UV ที่จุดตัดโดยใช้การหาค่าพิกัดศูนย์กลางมวล ระบบจะแรสเตอร์ซอฟต์แวร์เพื่อสุ่มตัวอย่างแผนที่ตาม UV ที่หาค่าเฉลี่ยแล้ว
  • การใช้การคำนวณการแรเงาซ้ำ — ใช้โค้ดเชดเดอร์ที่มีอยู่ซ้ำโดยตรงเพื่อรักษาตรรกะวัสดุแบบเดียวกับไปป์ไลน์การแสดงผลหลัก
รูปที่ 7 ปิดการสะท้อนแล้ว

สุดท้าย โมเดลที่มีส่วนร่วมในการคำนวณการสะท้อนแสงจริงจะคิดเป็นเพียงส่วนเล็กๆ ของฉากเท่านั้น ระบบจะอ่านข้อมูลการระบุโมเดลการสะท้อนที่ GPU แสดงผลแบบไม่พร้อมกันเพื่อกำจัดโมเดล/วัสดุที่ไม่ได้มีส่วนร่วมในการสะท้อน ซึ่งจะช่วยลดจำนวนการเรียกให้วาด (การเรียกให้วาดเกิดขึ้นเมื่อส่งวัสดุและเมชไปยัง GPU เพื่อวาด) ในขั้นตอนการจัดแสงได้อย่างมีประสิทธิภาพ

การสะท้อนแสงที่สมจริงตามหลักฟิสิกส์

ระบบจะจัดประเภทพื้นผิวสะท้อนแสงออกเป็น 3 ประเภทตามระดับความขรุขระเพื่อให้ได้ภาพสะท้อนที่สมจริง

  1. ไม่มีแสงสะท้อน - ข้ามการคำนวณแสงสะท้อนสำหรับพื้นผิวเหล่านี้เพื่อประหยัดทรัพยากรได้ หากพื้นผิวขรุขระมาก การสะท้อนจะเบลอและจางลง จึงทำให้การมีส่วนร่วมไม่ชัดเจน
  2. ภาพสะท้อนในกระจก — รูปภาพที่สะท้อนต้องชัดเจนและไม่เบลอ เหมือนกับกระจกเรียบ ถ่ายภาพเส้นในทิศทางของแสงสะท้อนจากแนวสายตาโดยตรง
  3. การสะท้อนแสงแบบมันวาว — การสะท้อนแสงที่มีพื้นผิวขรุขระบางอย่างจะจำลองตามการสุ่มตัวอย่างแบบสำคัญ GGX ซึ่งจะพิจารณาทั้งประสิทธิภาพการประมวลผลและความถูกต้องทางกายภาพ การสะท้อนแสงจะเบี่ยงเบนไปยังทิศทางหลักของการสะท้อนแสงที่สะท้อนเมื่อปล่อยเส้น ซึ่งจะปรับปรุงประสิทธิภาพการสุ่มตัวอย่างของบริเวณไฮไลต์

ทีม Diablo Immortal ใช้โซลูชัน 1SPP+Denoiser เพื่อให้ได้คุณภาพรูปภาพที่ใช้งานได้โดยมีการใช้พลังงานอย่างจำกัด กล่าวคือ ทีม Diablo Immortal ทำการสุ่มตัวอย่าง 1 รายการต่อพิกเซล จากนั้นจะใช้อัลกอริทึมการลดสัญญาณรบกวนเชิงเวลา/เชิงพื้นที่เพื่อปรับระดับสัญญาณรบกวนจำนวนมากที่เกิดจากการสุ่มตัวอย่างที่อัตราต่ำ

ทีม Diablo Immortal เลือกตัวลดสัญญาณรบกวนจากภาพสะท้อนใน AMD FidelityFX Denoiser ซึ่งเป็นตัวลดสัญญาณรบกวนประสิทธิภาพสูงที่เพิ่มประสิทธิภาพให้เหมาะกับภาพสะท้อนจากการเรย์แคสต์และภาพสะท้อนในหน้าจอ ข้อได้เปรียบหลักของโปรแกรมลดสัญญาณรบกวนจากภาพสะท้อนคืออัลกอริทึมการลดสัญญาณรบกวนแบบผสมตามพื้นที่และเวลาของโปรแกรมลดสัญญาณรบกวน ซึ่งทำงานโดยการรวมเฟรมปัจจุบันและข้อมูลเฟรมที่ผ่านมา (ตามการชดเชยการเคลื่อนไหว) เข้ากับเทคนิคการกรองเชิงพื้นที่ (เช่น การกรองการคงขอบตามความแปรปรวน) โปรแกรมลดสัญญาณรบกวนจากภาพสะท้อนจึงกำจัดสัญญาณรบกวนได้อย่างมีประสิทธิภาพและแสดงผลเอฟเฟกต์ภาพสะท้อนที่ราบรื่นด้วยการสุ่มตัวอย่างที่ต่ำมาก

ทีม Diablo Immortal ได้ปรับแต่งการปรับปรุงและการปรับสถาปัตยกรรมที่มุ่งเน้นเพื่อปรับให้เข้ากับลักษณะของไปป์ไลน์การเรนเดอร์ที่พัฒนาขึ้นเองและข้อจำกัดด้านประสิทธิภาพที่เข้มงวดของอุปกรณ์เคลื่อนที่ เมื่อผสานรวม AMD FidelityFX Reflection Denoiser

เรย์ tracing คุณภาพสูงด้วย Vulkan

Diablo Immortal ทำงานได้ในอุปกรณ์ Android ที่เปิดใช้ Vulkan หลากหลายรุ่น ซึ่งทีม Diablo Immortal ใช้ประโยชน์จากความสามารถอันล้ำสมัยของฮาร์ดแวร์ GPU ในการเรย์แคสต์ Vulkan ช่วยลดค่าใช้จ่ายและปัญหาในการพัฒนา ซึ่งช่วยให้สามารถนำเสนอเนื้อหาและเกมเพลย์คุณภาพสูงของ Diablo Immortal แก่ผู้ใช้ Android ได้