कई प्रकाश स्रोतों के साथ कुशल प्रतिपादन


10

फोंग शेडिंग का उपयोग करके एक एकल प्रकाश स्रोत के साथ एक दृश्य को प्रस्तुत करने के लिए, कोई भी सामग्री और प्रकाश स्रोत दोनों के परिवेश / फैलाना / स्पेक्युलर घटकों के आधार पर टुकड़े टुकड़े में पारित प्रत्येक टुकड़े के अंतिम रंग की गणना कर सकता है।

इसे आसानी से कई अलग-अलग प्रकाश स्रोतों के लिए समायोजित करने के लिए बढ़ाया जा सकता है, जैसे कि प्रत्येक व्यक्तिगत प्रकाश स्रोत को टुकड़े पर लागू करने के परिणामों को एक साथ जोड़कर:

final_color = (0, 0, 0, 1)
for each light:
    final_color += apply_light(material, light)
final_color = clamp(final_color, (0,0,0,1), (1,1,1,1))

हालांकि, बहुत बड़ी संख्या में प्रकाश स्रोतों के साथ, यह प्रक्रिया काफी धीमी है; Nरोशनी के साथ , इस दृष्टिकोण के लिए फंग शेडिंग के लिए गणना की जानी चाहिए Nप्रति टुकड़ा।

क्या प्रकाश स्रोतों (सैकड़ों, हजारों, आदि) की एक बड़ी संख्या के साथ दृश्यों को प्रस्तुत करने का एक बेहतर तरीका है?

जवाबों:


15

हां, लेकिन आपको एक बदलाव की जरूरत है।

आप जो आदी हैं, उसे आगे प्रतिपादन कहा जाता है। आप अपनी ज्यामिति जमा करते हैं और फिर आप तुरंत छायांकन पास के साथ आगे बढ़ते हैं। मूल फॉरवर्ड रेंडरिंग में आप या तो प्रत्येक प्रकाश के लिए शेडर के अंदर लूप कर सकते हैं या प्रति प्रकाश एक पास कर सकते हैं और परिणाम को एक साथ जोड़ सकते हैं (एडिटिव ब्लेंडिंग के साथ)।

लेकिन चीजें काफी विकसित हुई हैं। Enters: आस्थगित प्रतिपादन

अब इतने सारे वेरिएंट हैं जो उन सभी विवरणों का वर्णन करते हैं, यहाँ एक उत्तर के लिए स्वीकार्य से अधिक रास्ता होगा। तो यहाँ मैं सिर्फ Deferred shading के gist का वर्णन करने जा रहा हूँ, ऐसे बहुत से अन्य संसाधन हैं जो आप आसानी से google का उपयोग कर सकते हैं, उम्मीद है कि इसे पढ़ने के बाद आपके पास सही कीवर्ड होंगे जो आपको चाहिए।

मूल विचार पाइपलाइन नीचे करने के बाद छायांकन को स्थगित करना है। आपके पास दो मुख्य चरण हैं:

  1. अपने ज्यामिति और कई रेंडर लक्ष्यों में छायांकन के लिए आवश्यक सभी जानकारी प्रस्तुत करें। इसका मतलब यह है कि आम तौर पर एक बुनियादी कार्यान्वयन में आप एक गहराई बफर, आपके ज्यामिति के मानदंडों और अल्बेडो रंग से युक्त एक बफर होगा। आपको जल्द ही पता चलेगा कि आपको सामग्री की अन्य जानकारी (जैसे खुरदरापन, "धातु" कारक आदि) की आवश्यकता है।

विकिपीडिया की यह छवि तीन बफ़र (रंग, गहराई और मानदंड) दिखाती है

यहाँ छवि विवरण दर्ज करें

फिर से, उपयोग किए जाने वाले बफ़र्स की राशि, प्रकार और सामग्री अलग-अलग परियोजनाओं के बीच काफी भिन्न होती है। आपको GBuffers के नाम के साथ बफ़र्स का सेट मिलेगा।

  1. इसके बाद वास्तविक प्रकाश व्यवस्था लागू करने का समय है। प्रत्येक प्रकाश के लिए प्रकाश पास के दौरान आप एक प्रकाश मात्रा खींचना चाहते हैं जो प्रकाश के प्रकार पर निर्भर करती है:
    • एक दिशात्मक प्रकाश के लिए आप एक पूर्ण स्क्रीन क्वाड प्रस्तुत करते हैं।
    • एक बिंदु प्रकाश के लिए आप एक क्षेत्र को प्रस्तुत करते हैं जहां त्रिज्या आपके बिंदु प्रकाश के क्षीणन पर आधारित होती है।
    • स्पॉट-लाइट के लिए आप एक शंकु प्रदान करते हैं जो आयाम फिर से आपके प्रकाश की विशेषताओं पर निर्भर करते हैं।

इस पास के पिक्सेल शेडर में आप अपने GBuffers पास करते हैं और उनमें जानकारी का उपयोग करके अपने प्रकाश और छायांकन का प्रदर्शन करते हैं। इस तरह से आप शास्त्रीय आगे रेंडरिंग की तुलना में समझदार गति वाले प्रत्येक रोशनी से प्रभावित पिक्सेल को संसाधित करते हैं।

इसके विभिन्न नुकसान भी हैं, विशेष रूप से पारदर्शी वस्तुओं की हैंडलिंग और बैंडविड्थ और वीडियो मेमोरी की अधिक खपत। लेकिन यह भी सामग्री के लिए विभिन्न मॉडलों को संभालने के लिए मुश्किल है।

आपके पास अन्य साइड-फायदे हैं (पोस्ट-प्रोसेसिंग के लिए बहुत सारी जानकारी तैयार है) और इसे लागू करना भी बहुत आसान है। लेकिन यह अब बहुत सारी रोशनी के लिए सबसे अच्छी चीज नहीं है।

नई तकनीक उदाहरण के लिए टाइल वाले प्रतिपादन हैं। उन का मुख्य विचार स्क्रीन स्पेस "टाइल्स" में दृश्य को वश में करना है और प्रत्येक टाइल को इसे प्रभावित करने वाली रोशनी को असाइन करना है। यह एक आस्थगित और आगे फैशन दोनों में मौजूद है। ये तकनीकें कुछ समस्याओं का कारण बनती हैं, जब आपके पास टाइल में विभिन्न गहराई से भिन्नता होती है, लेकिन आम तौर पर शास्त्रीय आस्थगित की तुलना में तेज होती है और यह इसकी विभिन्न समस्याओं को हल करती है। उदाहरण के लिए, फायदे के बीच, टाइल वाले आस्थगित के साथ, आप एक ही रोशनी में एक बार जलाए गए टुकड़े और पिक्सल के अनुसार जीबीफर्स को पढ़ते हैं और समान रोशनी की प्रक्रिया करते हैं।

इस तरफ आगे का विकास क्लस्टर्ड शेडिंग है जो कि स्क्रीन आधारित टाइलों के बजाय, 3 डी हद वाले क्लस्टरों के बजाय वैचारिक रूप से टाइल वाले आधारित दृष्टिकोणों के समान है। यह विधि बेहतर गहराई से समस्या को बेहतर ढंग से संभालती है और आमतौर पर टाइल वाले तरीकों से बेहतर प्रदर्शन करती है।

महत्वपूर्ण नोट: मैंने आस्थगित छायांकन की मूल बातें बताई हैं। वहाँ कई विविधताओं, अनुकूलन और सुधार हैं, इसलिए मैं आपसे एक सरल संस्करण के साथ प्रयोग करने का आग्रह करता हूं और फिर अन्य तकनीकों पर कुछ शोध करता हूं, जैसा कि मैंने ऊपर उल्लेख किया है।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.