मैं ओपनजीएल ईएस के साथ टाइल स्थानीय मेमोरी से गहराई प्राप्त करना चाहता हूं।

वीडियोगेम में सॉफ्ट पार्टिकल्स इफेक्ट और कलर-ओनली डिफर्ड डिकल्स बनाने के लिए इसकी जरूरत होती है। ARM_shader_framebuffer_fetch_depth_stencil एक्सटेंशन बढ़िया काम करता है और डेप्थ वैल्यू तक सीधी पहुंच देता है।

अब मैं ARM_shader_framebuffer_fetch और EXT_shader_framebuffer_fetch। GDC टॉक में Vulkan और OpenGL ES के साथ Fortnite को मोबाइल पर लाना मुझे लगता है कि एक संभावित समाधान है < मजबूत>अल्फा के लिए गहराई मूल्य लिखना।

बड़े सटीक नुकसान के कारण यह दृष्टिकोण मेरे लिए काम नहीं करता है, मेरा अल्फा केवल 8 बिट है। मैं पर्याप्त सटीकता के साथ दूसरा अनुलग्नक जोड़ने और उस पर MRT के साथ लिखने पर विचार करता हूं।

सवाल यह है: क्या एमआरटी जाने का एक तरीका है, या मुझे कोई महत्वपूर्ण तरकीब याद आ रही है?

0
Ramil Kudashev 7 नवम्बर 2019, 16:58

1 उत्तर

सबसे बढ़िया उत्तर

ARM_shader_framebuffer_fetch का समर्थन करने वाले कार्यान्वयन एमआरटी का समर्थन करने की बिल्कुल भी गारंटी नहीं देते हैं। यदि वे इसका समर्थन करते हैं, तो केवल अनुलग्नक शून्य का रंग प्राप्त किया जा सकता है। रंग प्रारूप के आसपास कुछ प्रतिबंध भी हैं; जैसे यह केवल असामान्य रंग प्रारूपों का समर्थन करता है, इसलिए गहराई के लिए पर्याप्त सटीकता नहीं हो सकती है, भले ही आप गहराई की जानकारी अटैचमेंट शून्य में डाल दें।

EXT_shader_framebuffer_fetch का उपयोग करना अधिक सामान्य है और पूर्ण MRT समर्थन जोड़ता है, लेकिन सभी टाइल-आधारित GPU इसका समर्थन नहीं करते हैं।

1
solidpixel 11 नवम्बर 2019, 16:36