प्रकाश कंप्यूटर ग्राफिक्स में एक बहुत ही जटिल विषय है।
वास्तव में, वस्तु की रोशनी, असली दुनिया प्रकाश व्यवस्था या जिस प्रभाव को हम लक्षित कर रहे हैं उसका अनुकरण करते हैं, वास्तव में क्या मायने रखता है। वास्तविक प्रभाव को अनुमानित करने के लिए प्रकाश स्रोत को कई स्रोतों द्वारा बनाया जा सकता है जिसे हम प्राप्त करने की कोशिश कर रहे हैं।
ओपनजीएल प्रकाश कार्यान्वयन गतिशील रोशनी हैं, जो हल्के बिंदु अमूर्त हैं जो रेंडर किए गए कोने के लिए "प्रकाश" (यानी रंग देते हैं) को अनुमति देते हैं (जो त्रिभुजों को प्रस्तुत करने के लिए उपयोग किए जाते हैं)। ... कशेरुक रोशनी है, प्रत्येक प्रकाश के लिए रंग योगदान प्राप्त करें।
जैसा कि आपने बताया है, प्रतिपादन प्रक्रिया में हमने और अधिक रोशनी सक्षम की है। इसे कम करने के लिए, आपके पास अलग-अलग संभावनाएं हैं।
- लाइट culling (रोशनी को बाहर जो योगदान रंग बदलने के लिए थोड़ा करने के लिए है), और इस प्रकाश गुण (दूरी, शंकु, क्षीणन, देखें और बाधा डालने वस्तुओं के बिंदु) का उपयोग कर निर्धारित किया जाता है।
- स्टेटिक लाइटिंग, जो ऑब्जेक्ट्स पर प्रकाश को अनुकरण करने के लिए बनावट का उपयोग करती है जो कभी नहीं चलता है।
ओपनजीएल निश्चित प्रकाश वर्टेक्स रंग में योगदान देता है, जो त्रिकोण को रास्टरराइज करने के लिए अन्य कशेरुक रंगों के साथ इंटरपोल किया जाता है। इस मामले में ज्यामिति कुछ त्रिकोणों से बना है, आप प्रत्येक त्रिभुज के अंदर कोई प्रकाश शंकु नहीं देख सकते हैं, क्योंकि इसका टुकड़ा रंग तीन रंगों (तीन शिखर) के इंटरपोलेशन का परिणाम होता है।
एक और सटीक प्रकाश प्राप्त करने के लिए, सॉफ़्टवेयर प्रत्येक खंड (पिक्सेल) रंग (पिक्सेल प्रकाश) को उसी तरह निर्धारित करेगा, जिस तरह से एक कशेरुक रोशनी से रंगीन होता है, लेकिन जैसा कि आप समझ सकते हैं, वहां चरम से अधिक पिक्सल हो सकते हैं। रास्टरराइजेशन चरण के दौरान ज्यामिति के प्रत्येक पिक्सेल के लिए प्रकाश का योगदान (शेडर्स या ओपनजीएल एक्सटेंशन का उपयोग करके) की गणना करना या स्थगित प्रकाश का उपयोग करके पिक्सेल रंग निर्धारित करना है।
डिफरर्ड लाइटिंग प्रत्येक प्रदर्शित पिक्सेल के लिए रोशनी पैरामीटर स्टोर करने के लिए एकाधिक बनावट (व्यूपोर्ट के अनुरूप) का उपयोग करती है। इस तरह से आप छवि उत्पन्न होने के बाद प्रकाश गणना को निष्पादित करते हैं, प्रत्येक पिक्सेल के लिए एक बार पिक्सेल प्रकाश योगदान का निर्धारण करते हैं, प्रत्येक ज्यामिति पिक्सेल के लिए एक बार के बजाय।
अद्यतन: इस तकनीक एक बहुत चर्चा की गई, यहाँ एक कड़ी है: http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=267432 – alxx
कमजोर रोशनी एक shaders सुविधा नहीं कर रहे हैं, के बाद से रोशनी को सक्षम/अक्षम करने की क्षमता केवल एक महत्वपूर्ण प्रबंधक को सक्षम करने, एक हल्के प्रबंधक को डिजाइन करने वाली निश्चित पाइपलाइन के बाहर की जा सकती है। – Luca
लाइट मैनेजर पूरे दृश्य के लिए रोशनी को सक्षम/अक्षम करता है। पिक्सेल शेडर प्रति पिक्सेल कर सकता है, अंतर देखें? वैसे, पारंपरिक पाइपलाइन में 8 रोशनी प्रति-वर्टेक्स हैं, जबकि शेडर प्रति-पिक्सेल प्रकाश करता है - काफी अलग बात है। – alxx