Diablo Immortal में हार्डवेयर रे ट्रेसिंग की मदद से, इमेज की क्वालिटी बेहतर की गई है

Diablo Immortal, एक ऐसा मल्टीप्लेयर ऐक्शन रोल-प्लेइंग गेम (एआरपीजी) है जिसे Blizzard Entertainment और NetEase ने मिलकर बनाया है. इसे बिना किसी शुल्क के खेला जा सकता है. Diablo Immortal, Diablo सीरीज़ का नया चैप्टर, जिसे 2022 में लॉन्च किया गया था. यह गेम, Diablo 2 और Diablo 3 के बीच की कहानी के अंतर को पूरा करता है. साथ ही, World Stone के टुकड़ों के आस-पास एक नई रोमांच दिखाता है. इसमें खिलाड़ी, Sanctuary महाद्वीप को एक्सप्लोर करते हैं, ताकि वे राक्षसों और भ्रष्ट ताकतों से लड़ सकें.

मोबाइल जीपीयू आर्किटेक्चर के इनोवेशन और हार्डवेयर के बेहतर होने की वजह से, रे ट्रेसिंग टेक्नोलॉजी धीरे-धीरे डेस्कटॉप से मोबाइल डिवाइसों पर माइग्रेट हो रही है. यह हाई-फ़िडेलिटी वाले ग्राफ़िक रेंडरिंग के मुख्य ड्राइवर में से एक बन रही है. असल ज़िंदगी जैसी डाइनैमिक परावर्तन की गिनती करना, कंप्यूटिंग के लिहाज़ से काफ़ी मुश्किल है. हालांकि, खास हार्डवेयर यूनिट की मदद से, कम बैटरी वाले मोबाइल प्लैटफ़ॉर्म पर भी ऐसा किया जा सकता है. यह टेक्नोलॉजी असल समय में सीन के ज़रिए रोशनी के प्रोपगेशन पाथ का पता लगाकर, मिरर, मेटल, और तरल पदार्थों जैसी जटिल सतहों के रिफ़्लेक्टिव व्यवहार को सटीक तरीके से सिम्युलेट करती है. रे ट्रेसिंग, रेस्टराइज़ेशन की पारंपरिक स्कीम की जगह-जगह की सीमाओं और अनुमानित गड़बड़ियों को दूर करती है. साथ ही, डाइनैमिक लाइट सोर्स, ऑफ़-स्क्रीन ऑब्जेक्ट, और मल्टीलेवल रिफ़्लेक्शन के ग्लोबल कॉन्टेंट को बेहतर तरीके से दिखाती है.

मोबाइल पर हार्डवेयर रे ट्रेसिंग

हार्डवेयर रे ट्रेसिंग टेक्नोलॉजी में, मुख्य रूप से दो तरह के लागू करने के पैराडाइम शामिल होते हैं: रे ट्रेसिंग पाइपलाइन और रे क्वेरी.

रे ट्रेसिंग पाइपलाइन, शेडर के खास चरणों (रे जनरेशन / इंटरसेक्शन / क्लोज़ेस्ट-हिट शेडर) की मदद से पूरी पाइपलाइन बनाती है. भले ही, इससे रे इंटरैक्शन कंट्रोल को सटीक बनाया जा सकता है, लेकिन रे ट्रैकिंग पाइपलाइन के लिए अलग से पाइपलाइन कॉन्फ़िगरेशन की ज़रूरत होती है. इससे डेवलपमेंट की प्रोसेस मुश्किल हो जाती है.

दूसरी ओर, रे क्विरी की मदद से, रे क्विरी को सीधे तौर पर, पारंपरिक कंप्यूटेशन या फ़्रैगमेंट शेडर से शुरू किया जा सकता है. इससे, यह मोबाइल रे ट्रेसिंग की मुख्य टेक्नोलॉजी बन जाती है. अलग-अलग पाइपलाइन की ज़रूरत को खत्म करके, रे क्वेरी न सिर्फ़ डेवलपमेंट प्रोसेस को आसान बनाती है, बल्कि इसके तीन मुख्य फ़ायदे भी हैं:

  1. अलग-अलग कंप्यूटिंग एनवायरमेंट और रे ट्रेसिंग के लिए पूरी तरह से तैयार न किए गए हार्डवेयर के साथ काम करता है
  2. यह किसी भी शेडिंग स्टेज पर, मांग पर रे ट्रेसिंग को चालू करने की सुविधा देता है
  3. रिसॉर्स के इस्तेमाल को कम करके, मोबाइल प्लैटफ़ॉर्म के बैंडविड्थ और पावर की सीमाओं को पूरा किया जाता है. साथ ही, मोबाइल गेम में डाइनैमिक ग्लोबल इल्यूमिनेशन और रीयल-टाइम रिफ़्लेक्शन जैसे बेहतर इफ़ेक्ट के लिए एक बेहतर आधार उपलब्ध कराया जाता है

Diablo Immortal, जीपीयू के हार्डवेयर रे ट्रेसिंग की सुविधाओं का फ़ायदा पाने के लिए, Vulkan का इस्तेमाल करता है. यह गेम, रीयल टाइम में सीन के ज़रिए लाइट किरणों के पाथ का हिसाब लगाता है. साथ ही, Android डिवाइसों पर रीयल-टाइम में रिफ़्लेक्शन के बेहतरीन इफ़ेक्ट पाने के लिए, कॉम्पलेक्स मटीरियल प्रॉपर्टी का इस्तेमाल करता है.

पहली इमेज. रे-ट्रैस किए गए रिफ़्लेक्शन वाला सीन.
दूसरी इमेज. रे-ट्रैस किए गए रिफ़्लेक्शन की सुविधा बंद होने पर दिखने वाला सीन.

एक्सेलेरेशन स्ट्रक्चर

ऐक्सेलरेशन स्ट्रक्चर, हार्डवेयर रे ट्रैसिंग का मुख्य हिस्सा है. ऐक्सेलरेशन स्ट्रक्चर, डेटा को हैरारकी के हिसाब से व्यवस्थित करके, रे इंटरसेक्शन टेस्टिंग की परफ़ॉर्मेंस को बेहतर बनाता है.

आम तौर पर, सिस्टम के दो लेवल होते हैं: टॉप-लेवल ऐक्सेलरेशन स्ट्रक्चर (टीएलएएस) और बॉटम-लेवल ऐक्सेलरेशन स्ट्रक्चर (बीएलएएस):

  • TLAS, सीन मैनेजर की भूमिका निभाता है — सभी BLAS इंस्टेंस के स्पेस ट्रांसफ़ॉर्मेशन मैट्रिक (जिसमें पोज़िशन, रोटेशन, और स्केल शामिल हैं) को रिकॉर्ड करके, TLAS डाइनैमिक सीन के ग्लोबल ऑर्गनाइज़ेशन को समझता है. उदाहरण के लिए, TLAS की मदद से डेवलपर, एक ही ट्री मॉडल के सैकड़ों इंस्टेंस को सीन में अलग-अलग पोज़िशन और पोज़ में दिखा सकते हैं. इसलिए, डेवलपर को ज्यामिति को फिर से बनाने के बजाय, हर फ़्रेम में चलने वाले ऑब्जेक्ट के ट्रांसफ़ॉर्मेशन मैट्रिक को अपडेट करना होगा.
  • बेस यूनिट के तौर पर BLAS — यह किसी एक 3D ऑब्जेक्ट की ज्यामितीय जानकारी को बेहतर तरीके से कोड में बदलने के लिए ज़िम्मेदार है. BLAS, बाउंडिंग वॉल्यूम हैरारकी (बीवीएच) एल्गोरिदम की मदद से स्पेस इंडेक्स स्ट्रक्चर बनाता है, ताकि रे का पता लगाने के दौरान काम के न होने वाले इलाकों को तुरंत छोड़ा जा सके.

हैरारकी वाले इस डिज़ाइन की मदद से, रे ट्रेसिंग पाइपलाइन, रे ==> टीएलएएस (क्रोज़ सिएव ऑब्जेक्ट इंस्टेंस) ==> बीएलएएस (एग्ज़ैक्ट इंटरसेक्शन) की बेहतर तरीके से पहचान करने वाली चेन बना सकती है.

डाइनैमिक और स्टैटिक मॉडल को अलग करना, ऐक्सेलरेशन स्ट्रक्चर बनाने की लागत को कम करने के लिए ज़रूरी है:

  • स्टैटिक मॉडल — BLAS को शुरू करने के चरण में सिर्फ़ एक बार बनाया जाना चाहिए और बाद में सीन लोड करने के दौरान इसका फिर से इस्तेमाल किया जा सकता है. बड़े पैमाने पर सीन लोड होने में लगने वाले समय को कम करने के लिए, फ़्रेमिंग की असाइनोक्रोनस प्री-कंस्ट्रक्शन टेक्नोलॉजी का इस्तेमाल किया जा सकता है. इससे, BLAS कन्स्ट्रक्शन टास्क को कई फ़्रेम में बांटा जा सकता है.
  • डाइनैमिक मॉडल
    • स्केलेटल ऐनिमेशन-ड्रिवन — स्किन वाले वर्टिक्स डेटा को हर फ़्रेम में, कैलकुलेट शेडर की मदद से एक साथ कैलकुलेट करना होता है, ताकि नया वर्टिक्स बफ़र जनरेट किया जा सके. इसके बाद, उससे जुड़े BLAS का इंक्रीमेंटल अपडेट ट्रिगर किया जाता है. इससे परफ़ॉर्मेंस को बेहतर बनाने के लिए, पूरी तरह से फिर से बनाने की ज़रूरत नहीं पड़ती.
    • रिगिड बॉडी ट्रांसफ़ॉर्मेशन — अगर सिर्फ़ ट्रांसलेशन/रोटेशन/ज़ूम ट्रांसफ़ॉर्मेशन शामिल हैं, तो BLAS में बदलाव करने की ज़रूरत नहीं है. इसके बजाय, TLAS में उसके वर्ल्ड ट्रांसफ़ॉर्म मैट्रिक को अपडेट करें. इसके बाद, TLAS की तुरंत अपडेट होने की प्रोसेस को ट्रिगर करें.

रे ट्रेसिंग वाले डाइनैमिक सीन में, ऐक्सेलरेशन स्ट्रक्चर की परफ़ॉर्मेंस को बनाए रखने के लिए, समय-समय पर रीकंस्ट्रक्शन करना ज़रूरी है. जब डाइनैमिक ऑब्जेक्ट में ज्यामितीय टॉपोलॉजी में काफ़ी बदलाव होते हैं, जैसे कि डिफ़ॉर्मेशन या बड़े पैमाने पर वर्टिक्स का विस्थापन, तो मूल स्पेस डिवीज़न काम नहीं कर सकता. इससे रे ट्रैवर्सल के दौरान, टक्कर का पता लगाने की परफ़ॉर्मेंस कम हो जाती है. इसलिए, हर N फ़्रेम में ज़्यादा डाइनैमिक BLAS/TLAS के लिए, इंक्रीमेंटल अपडेट के बजाय पूरा रीकंस्ट्रक्शन ट्रिगर किया जाना चाहिए.

आखिर में, रे-ट्रैकिंग रेंडरिंग की परफ़ॉर्मेंस को ऑप्टिमाइज़ करने के लिए, किरदार के दिखने वाले हिस्से के आधार पर, डाइनैमिक तौर पर TLAS बनाने की रणनीति अपनाएं: किरदार के ऐक्टिव त्रिज्या थ्रेशोल्ड में मौजूद मॉडल ही TLAS में शामिल किए जाते हैं, ताकि किरदार के रे इंटरसेक्शन कैलकुलेशन के मुख्य ओवरहेड को कम किया जा सके.

रे-ट्रैस किए गए रिफ़्लेक्शन

रे-ट्रैस किए गए रिफ़्लेक्शन की तकनीक, स्क्रीन-स्पेस रिफ़्लेक्शन (एसएसआर) और प्लैनर रिफ़्लेक्शन जैसी पारंपरिक तकनीकों से कई मायनों में बेहतर है. प्लैनर रिफ़्लेक्शन, एक डाइमेंशन में सीन को प्रोजेक्ट करने वाली साधारण सतहें होती हैं. रे-ट्रैस्ड रिफ़्लेक्शन, रोशनी के रास्ते को भौतिक रूप से सिम्युलेट करता है. साथ ही, सीन के अंदर और बाहर डाइनैमिक ऑब्जेक्ट को सटीक तरीके से कैप्चर करता है. यह घुमावदार और नॉन-प्लेनर सतहों से मिलने वाले प्राकृतिक रिफ़्लेक्शन के साथ काम करता है. साथ ही, मिरर जैसे कई लाइट बाउंस इफ़ेक्ट चालू करता है. इसके उलट, एसएसआर सिर्फ़ स्क्रीन पर दिखने वाली जानकारी तक सीमित है. साथ ही, फ़्लैट प्लैनर रिफ़्लेक्शन की वजह से, जटिल सीन में विज़ुअल में गड़बड़ियां या विरूपता हो सकती है.

तीसरी इमेज. पूल में पंखों का अक्स.
चौथी इमेज. मॉन्स्टर की परछाई.

रे-ट्रैस किए गए रिफ़्लेक्शन की सुविधा, सिद्धांत के हिसाब से पारंपरिक एसएसआर से मिलती-जुलती है: रे-ट्रैस किए गए रिफ़्लेक्शन की सुविधा, पिक्सल-दर-पिक्सल के आधार पर, सीधी रेखा के हिसाब से रिफ़्लेक्शन की दिशा में किरणें भेजती है. साथ ही, सीन के ऑब्जेक्ट के साथ किरणों के इंटरसेक्शन का हिसाब लगाती है. रे क्वेरी एपीआई से मिले इंटरसेक्शन पॉइंट में, त्रिकोण के लेवल पर ज्यामितीय जानकारी (जैसे, इंस्टेंस आईडी, ज्यामिति इंडेक्स, और प्रिमिटिव इंडेक्स) और रेस्टराइज़ेशन पैरामीटर (बारीसेंट्रिक निर्देशांक) शामिल होते हैं. हालांकि, इसमें पिक्सल कलर डेटा शामिल नहीं होता. आम तौर पर, बिना बाइंड किए संसाधन को बाइंड करने की टेक्नोलॉजी का इस्तेमाल करके, सीन के सभी टेक्स्चर और मटीरियल पैरामीटर को ग्लोबल इंडेक्स कलेक्शन में पहले से कंपाइल किया जाता है. रे क्वेरी से मिले ज्यामितीय आइडेंटिफ़ायर का इस्तेमाल करके, उससे जुड़े कॉन्टेंट की भौतिक प्रॉपर्टी (जैसे, सामान्य मैप और रफ़नेस) को देखा जा सकता है. इसके बाद, सतह की शेडिंग की जानकारी का हिसाब लगाने के लिए, बारीसेंट्रिक कोऑर्डिनेट इंटरपोलेशन के साथ जोड़ा जा सकता है. साथ ही, इंटरसेक्शन की असल कलर वैल्यू को रेस्टराइज़ेशन की मदद से फिर से बनाया जा सकता है.

हालांकि, इसे लागू करने के दौरान, Diablo Immortal की टीम को दो मुख्य तकनीकी समस्याएं मिलीं:

  1. लाइटिंग मॉडल को एक जैसा बनाने के लिए मजबूर किया गया था, जो प्रोजेक्ट के इतिहास में इकट्ठा किए गए अलग-अलग शेडिंग सिस्टम के साथ मेल नहीं खाता था. इस वजह से, स्पैक्यलर मटीरियल और ओरिजनल मटीरियल के बीच मेल नहीं खाता था.
  2. अलग-अलग वर्टिक्स फ़ॉर्मैट की वजह से, रेस्टराइज़ेशन के चरण में निर्देश के ब्रैंचिंग की परफ़ॉर्मेंस खराब हो जाती है. यह मोबाइल डिवाइस के तय परफ़ॉर्मेंस बजट में एक बड़ी समस्या है.

Diablo Immortal की टीम ने विज़िबिलिटी बफ़र को एक नई सुविधा के तौर पर पेश किया है. इससे ज्यामिति प्रोसेसिंग को शेडिंग कैलकुलेशन से अलग किया जा सकता है:

  • रे ट्रेसिंग फ़ेज़ — रे क्वेरी की मदद से, पिक्सल-लेवल पर रे हिट की जानकारी रीयल टाइम में कैप्चर की जाती है. इंटरसेक्शन पॉइंट के 3D स्पेस आईडी (InstanceID के साथ PrimitiveIndex) को एक छोटे से विज़िबिलिटी आईडी में कोड में बदला जाता है और स्क्रीन स्पेस बफ़र में लिखा जाता है.
  • रंग भरने का चरण — वर्टिक्स और पिक्सल शेडर की तरह ही, दिखने वाले बफ़र में मौजूद ज्यामितीय आइडेंटिफ़ायर को डाइनैमिक तौर पर पार्स किया जाता है. साथ ही, ओरिजनल मॉडल की वर्टिक्स प्रॉपर्टी (जैसे, यूवी और सामान्य) और भौतिकी पर आधारित मटीरियल मैप को फ़ेच किया जाता है. आखिर में, मटीरियल टाइप से जुड़ी शेडिंग कैलकुलेशन की जाती है.

इस समाधान की मदद से, आर्ट ऐसेट को रे-ट्रैस किए गए रिफ़्लेक्शन सिस्टम से कनेक्ट किया जा सकता है. इसके लिए, वर्टिक्स फ़ॉर्मैट या शेडर में बदलाव करने की ज़रूरत नहीं होती.

रेंडरिंग के खास तरीके

रे क्वेरी पास

यह रे ट्रेसिंग के चरण से जुड़ा होता है और स्क्रीन स्पेस रिफ़्लेक्शन के लिए, विज़िबिलिटी बफ़र जनरेट करता है:

  • Color0
    • फ़ॉर्मैट:R32G32UInt
    • R = TriangleID,G = Barycentrics
पांचवीं इमेज. विज़िबिलिटी बफ़र.
  • गहराई:
    • फ़ॉर्मैट:Depth32F
    • D = EncodeAsFloat(InstanceIdx, GeometryIdx)
    • इंटरसेक्शन के मटीरियल आइडेंटिफ़ायर को 32-बिट फ़्लोटिंग पॉइंट में कोड किया जाता है. साथ ही, मटीरियल की डेप्थ-कोडिंग-मैच डिटेक्शन तकनीक के अगले चरण के लिए, डेप्थ बफ़र में लिखा जाता है
छठी इमेज. एन्कोड की गई गहराई.

कंप्यूट शेडर की तुलना में, पिक्सल शेडर में रे क्वेरी के ये फ़ायदे हैं:

  • पाइपलाइन इंटिग्रेशन — पाइपलाइन को सीधे तौर पर मौजूदा फ़ॉरवर्ड/डिफ़र्ड रेंडरिंग पाइपलाइन में एम्बेड किया जाता है. इससे, रेंडर पाइपलाइन की स्थिति में कोई बदलाव नहीं होता.
  • मोबाइल बैंडविड्थ ऑप्टिमाइज़ेशन — मोबाइल टाइल-आधारित आर्किटेक्चर के लिए, रे हिट डेटा को RenderTarget में लिखने पर, ऑन-चिप लॉसलेस कंप्रेसन ट्रिगर किया जा सकता है. इससे, बफ़र में भेजे जाने वाले कैलकुलेट शेडर आउटपुट की तुलना में, मेमोरी बैंडविड्थ की खपत कम हो जाती है.
  • किरणों की संख्या कंट्रोल करना — स्टेंसिल टेस्ट के साथ प्री-कैलकुलेशन फ़ेज़ का इस्तेमाल करके, ऐसे इलाकों को मार्क और अस्वीकार किया जा सकता है जिनमें रोशनी नहीं चमकती.

पास की समस्या हल करना

रंग भरने के चरण (रे-ट्रैस किए गए रिफ़्लेक्शन देखें) में, Diablo Immortal टीम ने डेप्थ टेस्ट हार्डवेयर यूनिट का इस्तेमाल करके, तेज़ी से पहचान करने की सुविधा हासिल की. साथ ही, एक के बाद एक बैच में मटीरियल को रंग दिया.

हर मटीरियल के लिए, फ़ुल-स्क्रीन ड्रॉ पास जारी किया जाता है. वर्टिक्स शेडर, मौजूदा मटीरियल के कोड किए गए आइडेंटिफ़ायर को डाइनैमिक तौर पर फिर से बनाता है. डेप्थ इक्वल टेस्ट का इस्तेमाल करके, आइडेंटिफ़ायर की तुलना डेप्थ बफ़र में मौजूद कोड में बदली गई वैल्यू से की जाती है. साथ ही, सिर्फ़ उन पिक्सल को बनाए रखा जाता है जिनकी कोड में बदली गई वैल्यू पूरी तरह से मैच होती है. इसका मतलब है कि मौजूदा मटीरियल इंस्टेंस से जुड़े पिक्सल. बनाए रखे गए पिक्सल, उससे जुड़े मटीरियल शेडर को लागू करते हैं.

इसके बाद, पिक्सल शेडर में ज़्यादा सटीक तरीके से मटीरियल को फिर से बनाया जाता है:

  • ज्यामिति डेटा को डिकोड करना — यह विज़िबिलिटी बफ़र से ट्राएंगल आइडेंटिफ़ायर (MeshID + PrimitiveID) और बारीसेंट्रिक निर्देशांक निकालता है. साथ ही, वर्टिक्स बफ़र से उससे जुड़े ट्राएंगल के वर्टिक्स एट्रिब्यूट (पोज़िशन, यूवी, सामान्य वगैरह) को डाइनैमिक तौर पर लोड करता है. हर मॉडल को अलग-अलग मटीरियल के तौर पर शेड किया जाता है. इसलिए, बाइंडिंग जैसी ऐडवांस सुविधाएं ज़रूरी नहीं हैं.
  • सरफ़ेस पैरामीटर को फिर से बनाना — बारीसेंट्रिक कोऑर्डिनेट इंटरपोलेशन का इस्तेमाल करके, इंटरसेक्शन पर यूवी कोऑर्डिनेट का हिसाब लगाता है. इंटरपोल किए गए यूवी के आधार पर मैप का सैंपल लेने के लिए, सॉफ़्टवेयर के ज़रिए रेस्टराइज़ेशन किया जाता है.
  • शेडिंग कैलकुलेशन का फिर से इस्तेमाल करना — मुख्य रेंडरिंग पाइपलाइन के मैटीरियल लॉजिक को बनाए रखने के लिए, मौजूदा शेडर कोड का सीधे तौर पर फिर से इस्तेमाल करता है.
सातवीं इमेज. समस्या हल हो गई है.

आखिर में, जिन मॉडल का इस्तेमाल, असल में परफ़ॉर्मेंस का हिसाब लगाने के लिए किया जाता है वे सिर्फ़ सीन के एक छोटे हिस्से में शामिल होते हैं. जीपीयू से मिले रिफ़्लेक्शन मॉडल के आइडेंटिफ़िकेशन डेटा को असिंक्रोनस तरीके से पढ़ा जा सकता है. इससे, उन मॉडल/मटीरियल को हटाया जा सकता है जो रिफ़्लेक्शन में हिस्सा नहीं लेते. साथ ही, शेडिंग स्टेज में ड्रॉ कॉल की संख्या को भी कम किया जा सकता है. ड्रॉ कॉल तब होता है, जब मटीरियल और मेश को ड्रॉ करने के लिए जीपीयू को सबमिट किया जाता है.

फ़िज़िकली-बेस्ड स्पेक्ट्रल रिफ़्लेक्शन

बेहतर रिफ़्लेक्शन पाने के लिए, रिफ़्लेक्टिव सतहों को खुरदरापन के हिसाब से तीन कैटगरी में बांटा जाता है:

  1. कोई परछाई नहीं — संसाधनों को बचाने के लिए, इन सतहों के लिए परछाई की गणना छोड़ी जा सकती है. अगर सतह बहुत खुरदरी है, तो उस पर ऑब्जेक्ट का प्रतिबिंब धुंधला और हल्का हो जाता है. इसलिए, उस ऑब्जेक्ट की पहचान करना मुश्किल हो जाता है.
  2. दर्पण की तरह दिखना — किसी चिकने दर्पण की तरह, प्रतिबिंब साफ़ और धुंधला न हो. सीधे तौर पर, लाइन ऑफ़ साइट से परावर्तन की दिशा में लाइन को शूट करें.
  3. चमकदार परत — सतह की किसी खास खुरदरी परत के साथ रिफ़्लेक्शन को GGX इंपोर्टेंस सैंपलिंग के आधार पर सिम्युलेट किया जाता है. इसमें, कैलकुलेशन की परफ़ॉर्मेंस और फ़िज़िकल सटीक जानकारी, दोनों को ध्यान में रखा जा सकता है. रेखा को उत्सर्जित करते समय, प्रतिबिंब मुख्य स्पेक्ट्रल प्रतिबिंब की दिशा में मुड़ जाता है. इससे हाइलाइट किए गए हिस्से की सैंपलिंग की क्षमता बेहतर होती है.

Diablo Immortal की टीम ने 1SPP+Denoiser सलूशन का इस्तेमाल किया, ताकि कम बैटरी खर्च करके अच्छी क्वालिटी की इमेज मिल सके. इसका मतलब है कि Diablo Immortal की टीम ने हर पिक्सल के लिए एक सैंपल लिया. इसके बाद, कम सैंपलिंग रेट की वजह से आने वाले ज़्यादातर नॉइज़ को कम करने के लिए,टाइम स्पेस/स्पेशल नॉइज़ रिडक्शन एल्गोरिदम का इस्तेमाल किया गया.

Diablo Immortal की टीम ने AMD FidelityFX के 'ग़ैर-ज़रूरी चीज़ों को हटाने वाले टूल' में मौजूद 'प्रतिबिंब को ग़ैर-ज़रूरी चीज़ों से हटाने वाला टूल' चुना है. यह टूल, रे-ट्रैस किए गए प्रतिबिंबों और स्क्रीन-स्पेस प्रतिबिंबों के लिए ऑप्टिमाइज़ किया गया है. रिफ़्लेक्शन डेनॉइज़र का मुख्य फ़ायदा, डेनॉइज़र का स्पेसटाइम हाइब्रिड नॉइज़ रिडक्शन एल्गोरिदम है: मौजूदा फ़्रेम और पुराने फ़्रेम के डेटा (मोशन कंपेनसेशन के आधार पर) को फ़्यूज़ करके, स्पेसटाइम फ़िल्टरिंग तकनीकों (जैसे, वैरिएंस-गाइडेड एज रिटेंशन फ़िल्टरिंग) के साथ मिलकर, रिफ़्लेक्शन डेनॉइज़र नॉइज़ को असरदार तरीके से हटाता है और बहुत कम सैंपलिंग में रिफ़्लेक्शन के बेहतर इफ़ेक्ट दिखाता है.

Diablo Immortal की टीम ने AMD FidelityFX रिफ़्लेक्शन डेनॉइज़र को इंटिग्रेट करते समय, टारगेट की गई स्ट्रीमलाइनिंग और आर्किटेक्चर में बदलाव किया है. ऐसा, खुद से बनाई गई रेंडर पाइपलाइन की विशेषताओं के हिसाब से बदलाव करने और मोबाइल की परफ़ॉर्मेंस से जुड़ी ज़रूरी शर्तों को पूरा करने के लिए किया गया है.

Vulkan की मदद से, हाई फ़िडेलिटी रे ट्रेसिंग

Diablo Immortal, Vulkan की सुविधा वाले कई Android डिवाइसों पर चलता है. इसमें Diablo Immortal की टीम ने, जीपीयू हार्डवेयर की रे-ट्रैकिंग की सुविधाओं का फ़ायदा लिया है. Vulkan की मदद से, डेवलपमेंट में लगने वाले समय और परेशानियों को कम किया जा सकता है. इससे, Android डिवाइस इस्तेमाल करने वाले लोगों को Diablo Immortal का बेहतरीन कॉन्टेंट और गेमप्ले उपलब्ध कराने में मदद मिलती है.