शेडर: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 9: Line 9:
[[File:Example of a Shader.png|thumb|upright=1.3|शेडर्स का एक और उपयोग विशेष प्रभावों के लिए है, यहां तक ​​कि 2डी छवियों पर भी, (उदाहरण के लिए, एक [[वेबकैम]] से एक [[डिजिटल फोटोग्राफ]])। अपरिवर्तित, अपरिवर्तित छवि बाईं ओर है, और उसी छवि में दाईं ओर एक शेडर लगाया गया है। यह शेडर छवि के सभी प्रकाश क्षेत्रों को सफेद और सभी अंधेरे क्षेत्रों को चमकीले रंग की बनावट के साथ बदलकर काम करता है।]][[कंप्यूटर चित्रलेख]] में, एक शेडर एक [[कंप्यूटर प्रोग्राम]] है जो एक [[3डी दृश्य]] के [[प्रतिपादन (कंप्यूटर ग्राफिक्स)]] के दौरान प्रकाश, अंधेरे और [[रंग]] के उचित स्तर की गणना करता है - एक प्रक्रिया जिसे ''छायांकन'' के रूप में जाना जाता है। कंप्यूटर ग्राफिक्स [[विशेष प्रभाव]] और [[वीडियो पोस्ट-प्रोसेसिंग]] के साथ-साथ ग्राफिक्स प्रोसेसिंग इकाइयों पर सामान्य-उद्देश्य कंप्यूटिंग में विभिन्न प्रकार के विशेष कार्य करने के लिए शेडर्स विकसित हुए हैं।
[[File:Example of a Shader.png|thumb|upright=1.3|शेडर्स का एक और उपयोग विशेष प्रभावों के लिए है, यहां तक ​​कि 2डी छवियों पर भी, (उदाहरण के लिए, एक [[वेबकैम]] से एक [[डिजिटल फोटोग्राफ]])। अपरिवर्तित, अपरिवर्तित छवि बाईं ओर है, और उसी छवि में दाईं ओर एक शेडर लगाया गया है। यह शेडर छवि के सभी प्रकाश क्षेत्रों को सफेद और सभी अंधेरे क्षेत्रों को चमकीले रंग की बनावट के साथ बदलकर काम करता है।]][[कंप्यूटर चित्रलेख]] में, एक शेडर एक [[कंप्यूटर प्रोग्राम]] है जो एक [[3डी दृश्य]] के [[प्रतिपादन (कंप्यूटर ग्राफिक्स)]] के दौरान प्रकाश, अंधेरे और [[रंग]] के उचित स्तर की गणना करता है - एक प्रक्रिया जिसे ''छायांकन'' के रूप में जाना जाता है। कंप्यूटर ग्राफिक्स [[विशेष प्रभाव]] और [[वीडियो पोस्ट-प्रोसेसिंग]] के साथ-साथ ग्राफिक्स प्रोसेसिंग इकाइयों पर सामान्य-उद्देश्य कंप्यूटिंग में विभिन्न प्रकार के विशेष कार्य करने के लिए शेडर्स विकसित हुए हैं।


[[कंप्यूटर चित्रलेख]] में, एक शेडर एक [[कंप्यूटर प्रोग्राम]] है जो एक [[3डी दृश्य]] के [[प्रतिपादन (कंप्यूटर ग्राफिक्स)]] के दौरान प्रकाश, अंधेरे और [[रंग]] के उचित स्तर की गणना करता है - एक प्रक्रिया जिसे ''छायांकन'' के रूप में जाना जाता है। कंप्यूटर ग्राफिक्स [[विशेष प्रभाव]] और [[वीडियो पोस्ट-प्रोसेसिंग]] के साथ-साथ ग्राफिक्स प्रोसेसिंग इकाइयों पर सामान्य-उद्देश्य कंप्यूटिंग में विभिन्न प्रकार के विशेष कार्य करने के लिए शेडर्स विकसित हुए हैं।
[[कंप्यूटर चित्रलेख]] में, एक शेडर एक [[कंप्यूटर प्रोग्राम]] है जो एक [[3डी दृश्य]] के [[प्रतिपादन (कंप्यूटर ग्राफिक्स)]] के दौरान प्रकाश, अंधेरे और [[रंग]] के उचित स्तर की गणना करता है - एक प्रक्रिया जिसे ''छायांकन'' के रूप में जाना जाता है। कंप्यूटर ग्राफिक्स [[विशेष प्रभाव]] और [[वीडियो पोस्ट-प्रोसेसिंग]] में विभिन्न प्रकार के विशेष कार्य करने के लिए शेडर्स विकसित हुए हैं।


पारंपरिक शेडर्स उच्च स्तर के लचीलेपन के साथ ग्राफिक्स हार्डवेयर पर रेंडरिंग (कंप्यूटर ग्राफिक्स) प्रभाव की गणना करते हैं। अधिकांश शेडर्स को [[ ग्राफ़िक्स प्रोसेसिंग युनिट ]] (जीपीयू) के लिए कोडित (और चालू) किया जाता है,<ref>{{Cite web|url=https://learnopengl.com/Getting-started/Shaders|title=LearnOpenGL - शेडर्स|website=learnopengl.com|access-date=November 12, 2019}}</ref> हालांकि यह एक सख्त आवश्यकता नहीं है। छायांकन भाषाओं का उपयोग GPU की [[रेंडरिंग पाइपलाइन]] को प्रोग्राम करने के लिए किया जाता है, जिसने अतीत की [[फिक्स्ड-फ़ंक्शन पाइपलाइन]] को अधिक स्थान दिया है जो केवल सामान्य [[वर्टेक्स शेडर]] और [[[[पिक्सेल]] शेडर]]|पिक्सेल-शेडिंग फ़ंक्शन के लिए अनुमत है; शेडर्स के साथ, अनुकूलित प्रभावों का उपयोग किया जा सकता है। सभी पिक्सेल, वर्टेक्स (कंप्यूटर ग्राफ़िक्स), और/या टेक्सचर (कंप्यूटर ग्राफ़िक्स) के 3डी निर्देशांक और रंग (ह्यू, [[ रंगीनपन ]], [[ चमक ]], और [[कंट्रास्ट (दृष्टि)]]) का उपयोग अंतिम रूप से प्रदान की गई छवि के निर्माण के लिए किया जाता है, जिसे परिभाषित [[कलन विधि]] का उपयोग करके बदला जा सकता है। एक शेडर में, और बाहरी [[चर (कंप्यूटर विज्ञान)]] द्वारा संशोधित किया जा सकता है या शेडर को कॉल करने वाले कंप्यूटर प्रोग्राम द्वारा शुरू की गई बनावट।{{Citation needed|date=March 2020}}
पारंपरिक शेडर्स उच्च स्तर के लचीलेपन के साथ ग्राफिक्स हार्डवेयर पर रेंडरिंग (कंप्यूटर ग्राफिक्स) प्रभाव की गणना करते हैं। अधिकांश शेडर्स को [[ ग्राफ़िक्स प्रोसेसिंग युनिट ]] (जीपीयू) के लिए कोडित (और चालू) किया जाता है,<ref>{{Cite web|url=https://learnopengl.com/Getting-started/Shaders|title=LearnOpenGL - शेडर्स|website=learnopengl.com|access-date=November 12, 2019}}</ref> हालांकि यह एक सख्त आवश्यकता नहीं है। छायांकन भाषाओं का उपयोग GPU की [[रेंडरिंग पाइपलाइन]] को प्रोग्राम करने के लिए किया जाता है, जिसने अतीत की [[फिक्स्ड-फ़ंक्शन पाइपलाइन]] को अधिक स्थान दिया है जो केवल सामान्य [[वर्टेक्स शेडर]] और [[[[पिक्सेल]] शेडर]]|पिक्सेल-शेडिंग फ़ंक्शन के लिए अनुमत है; शेडर्स के साथ, अनुकूलित प्रभावों का उपयोग किया जा सकता है। सभी पिक्सेल, वर्टेक्स (कंप्यूटर ग्राफ़िक्स), और/या टेक्सचर (कंप्यूटर ग्राफ़िक्स) के 3डी निर्देशांक और रंग (ह्यू, [[ रंगीनपन ]], [[ चमक ]], और [[कंट्रास्ट (दृष्टि)]]) का उपयोग अंतिम रूप से प्रदान की गई छवि के निर्माण के लिए किया जाता है, जिसे परिभाषित [[कलन विधि]] का उपयोग करके बदला जा सकता है। एक शेडर में, और बाहरी [[चर (कंप्यूटर विज्ञान)]] द्वारा संशोधित किया जा सकता है या शेडर को कॉल करने वाले कंप्यूटर प्रोग्राम द्वारा शुरू की गई बनावट।{{Citation needed|date=March 2020}}

Revision as of 13:14, 22 March 2023

File:Phong-shading-sample (cropped).jpg
3 डी मॉडलिंग के प्रतिपादन में रोशनी और छाया वाले क्षेत्रों का उत्पादन करने के लिए शेडर्स का सबसे अधिक उपयोग किया जाता है। फोंग छायांकन (दाएं) गौरौड छायांकन पर एक सुधार है, और मूल फ्लैट छायांकन (बाएं) के बाद कभी विकसित किए गए पहले कंप्यूटर छायांकन मॉडलों में से एक था, जो रेंडर में घुमावदार सतहों की उपस्थिति को बहुत बढ़ाता है।
File:Example of a Shader.png
शेडर्स का एक और उपयोग विशेष प्रभावों के लिए है, यहां तक ​​कि 2डी छवियों पर भी, (उदाहरण के लिए, एक वेबकैम से एक डिजिटल फोटोग्राफ)। अपरिवर्तित, अपरिवर्तित छवि बाईं ओर है, और उसी छवि में दाईं ओर एक शेडर लगाया गया है। यह शेडर छवि के सभी प्रकाश क्षेत्रों को सफेद और सभी अंधेरे क्षेत्रों को चमकीले रंग की बनावट के साथ बदलकर काम करता है।

कंप्यूटर चित्रलेख में, एक शेडर एक कंप्यूटर प्रोग्राम है जो एक 3डी दृश्य के प्रतिपादन (कंप्यूटर ग्राफिक्स) के दौरान प्रकाश, अंधेरे और रंग के उचित स्तर की गणना करता है - एक प्रक्रिया जिसे छायांकन के रूप में जाना जाता है। कंप्यूटर ग्राफिक्स विशेष प्रभाव और वीडियो पोस्ट-प्रोसेसिंग के साथ-साथ ग्राफिक्स प्रोसेसिंग इकाइयों पर सामान्य-उद्देश्य कंप्यूटिंग में विभिन्न प्रकार के विशेष कार्य करने के लिए शेडर्स विकसित हुए हैं।

कंप्यूटर चित्रलेख में, एक शेडर एक कंप्यूटर प्रोग्राम है जो एक 3डी दृश्य के प्रतिपादन (कंप्यूटर ग्राफिक्स) के दौरान प्रकाश, अंधेरे और रंग के उचित स्तर की गणना करता है - एक प्रक्रिया जिसे छायांकन के रूप में जाना जाता है। कंप्यूटर ग्राफिक्स विशेष प्रभाव और वीडियो पोस्ट-प्रोसेसिंग में विभिन्न प्रकार के विशेष कार्य करने के लिए शेडर्स विकसित हुए हैं।

पारंपरिक शेडर्स उच्च स्तर के लचीलेपन के साथ ग्राफिक्स हार्डवेयर पर रेंडरिंग (कंप्यूटर ग्राफिक्स) प्रभाव की गणना करते हैं। अधिकांश शेडर्स को ग्राफ़िक्स प्रोसेसिंग युनिट (जीपीयू) के लिए कोडित (और चालू) किया जाता है,[1] हालांकि यह एक सख्त आवश्यकता नहीं है। छायांकन भाषाओं का उपयोग GPU की रेंडरिंग पाइपलाइन को प्रोग्राम करने के लिए किया जाता है, जिसने अतीत की फिक्स्ड-फ़ंक्शन पाइपलाइन को अधिक स्थान दिया है जो केवल सामान्य वर्टेक्स शेडर और [[पिक्सेल शेडर]]|पिक्सेल-शेडिंग फ़ंक्शन के लिए अनुमत है; शेडर्स के साथ, अनुकूलित प्रभावों का उपयोग किया जा सकता है। सभी पिक्सेल, वर्टेक्स (कंप्यूटर ग्राफ़िक्स), और/या टेक्सचर (कंप्यूटर ग्राफ़िक्स) के 3डी निर्देशांक और रंग (ह्यू, रंगीनपन , चमक , और कंट्रास्ट (दृष्टि)) का उपयोग अंतिम रूप से प्रदान की गई छवि के निर्माण के लिए किया जाता है, जिसे परिभाषित कलन विधि का उपयोग करके बदला जा सकता है। एक शेडर में, और बाहरी चर (कंप्यूटर विज्ञान) द्वारा संशोधित किया जा सकता है या शेडर को कॉल करने वाले कंप्यूटर प्रोग्राम द्वारा शुरू की गई बनावट।[citation needed]

फिल्म निर्माण पोस्ट प्रोसेसिंग (छवियां)इमेज) में शेडर्स का व्यापक रूप से उपयोग किया जाता है | पोस्ट-प्रोसेसिंग, कंप्यूटर जनित इमेजरी, और वीडियो गेम में कई तरह के प्रभाव पैदा करने के लिए। सरल प्रकाश मॉडल से परे, शेडर्स के अधिक जटिल उपयोगों में शामिल हैं: एक छवि के रंग, रंगीनता, चमक (एचएसएल और एचएसवी | एचएसएल / एचएसवी) या कंट्रास्ट (दृष्टि) को बदलना; डिफोकस विपथन, हल्का खिलना , वॉल्यूमेट्रिक लाइटिंग, साधारण मानचित्रण (डेप्थ इफेक्ट्स के लिए), bokeh , सार्डिन को मापना, posterization , उभार का मानचित्रण , डिस्टॉर्शन (ऑप्टिक्स), क्रोमा कीइंग (तथाकथित ब्लूस्क्रीन / हरा पर्दा इफेक्ट्स के लिए), किनारे का पता लगाना और मोशन पहचान, साथ ही साइकेडेलिया प्रभाव जैसे कि डेमोसीन में देखा गया।[clarification needed]

इतिहास

शेडर शब्द का यह प्रयोग पिक्सर द्वारा उनके रेंडरमैन इंटरफ़ेस विशिष्टता के संस्करण 3.0 के साथ जनता के लिए पेश किया गया था, जो मूल रूप से मई 1988 में प्रकाशित हुआ था।[2] जैसे-जैसे ग्राफिक्स प्रोसेसिंग यूनिट विकसित हुई, OpenGL और Direct3D जैसी प्रमुख ग्राफिक्स सॉफ्टवेयर पुस्तकालय ने शेडर्स का समर्थन करना शुरू कर दिया। पहला शेडर-सक्षम जीपीयू केवल पिक्सेल छायांकन का समर्थन करता था, लेकिन डेवलपर्स को शेडर्स की शक्ति का एहसास होने के बाद वर्टेक्स शेडर्स जल्दी से पेश किए गए थे। प्रोग्रामेबल पिक्सेल शेडर वाला पहला वीडियो कार्ड Nvidia GeForce 3 (NV20) था, जिसे 2001 में रिलीज़ किया गया था।[3] ज्यामिति शेड्स को Direct3D 10 और OpenGL 3.2 के साथ पेश किया गया था। आखिरकार, ग्राफिक्स हार्डवेयर एक एकीकृत शेडर मॉडल की ओर विकसित हुआ।

डिजाइन

शेडर्स सरल प्रोग्राम हैं जो वर्टेक्स (कंप्यूटर ग्राफिक्स) या पिक्सेल के लक्षणों का वर्णन करते हैं। वर्टेक्स शेडर्स एक वर्टेक्स की विशेषताओं (स्थिति, बनावट मानचित्रण, रंग, आदि) का वर्णन करते हैं, जबकि पिक्सेल शेड्स एक पिक्सेल के लक्षणों (रंग, z-बफरिंग | जेड-डेप्थ और अल्फा रचना वैल्यू) का वर्णन करते हैं। एक ज्यामितीय आदिम (संभवतः टेसलेशन (कंप्यूटर ग्राफिक्स) के बाद) में प्रत्येक शीर्ष के लिए एक वर्टेक्स शेडर कहा जाता है; इस प्रकार एक वर्टेक्स इन, एक (अपडेटेड) वर्टेक्स आउट। प्रत्येक शीर्ष को तब एक सतह (मेमोरी के ब्लॉक) पर पिक्सेल की एक श्रृंखला के रूप में प्रस्तुत किया जाता है जो अंततः स्क्रीन पर भेजा जाएगा।

शेडर्स ग्राफिक्स हार्डवेयर के एक हिस्से को प्रतिस्थापित करते हैं जिसे आमतौर पर फिक्स्ड फंक्शन पाइपलाइन (FFP) कहा जाता है, तथाकथित क्योंकि यह हार्ड-कोडेड तरीके से कंप्यूटर ग्राफिक्स प्रकाश और बनावट का मानचित्रण करता है। शेडर्स इस हार्ड-कोडेड दृष्टिकोण के लिए प्रोग्राम करने योग्य विकल्प प्रदान करते हैं।[4] मूल ग्राफिक्स पाइपलाइन इस प्रकार है:

  • सीपीयू ग्राफिक्स कार्ड पर स्थित ग्राफिक्स प्रोसेसिंग यूनिट को निर्देश (संकलित छायांकन भाषा कार्यक्रम) और ज्यामिति डेटा भेजता है।
  • वर्टेक्स शेडर के भीतर, ज्यामिति रूपांतरित हो जाती है।
  • यदि एक ज्यामिति शेडर ग्राफिक प्रोसेसिंग यूनिट में है और सक्रिय है, तो दृश्य में ज्यामिति के कुछ परिवर्तन किए जाते हैं।
  • यदि एक टेसलेशन शेडर ग्राफिक प्रोसेसिंग यूनिट में है और सक्रिय है, तो दृश्य में ज्यामितीय उपखंड (कंप्यूटर ग्राफिक्स) हो सकते हैं।
  • परिकलित ज्यामिति त्रिभुजाकार (त्रिकोणों में विभाजित) है।
  • त्रिकोणों को फ़्रैगमेंट क्वाड्स में विभाजित किया गया है (एक फ़्रैगमेंट क्वाड 2 × 2 फ़्रैगमेंट प्रिमिटिव है)।
  • खंड चतुर्भुज को फ्रैगमेंट शेडर के अनुसार संशोधित किया जाता है।
  • गहराई परीक्षण किया जाता है; पास होने वाले टुकड़े स्क्रीन पर लिखे जाएंगे और फ्रेम बफर में मिश्रित हो सकते हैं।

प्रदर्शित करने के लिए त्रि-आयामी (या द्वि-आयामी) डेटा को उपयोगी द्वि-आयामी डेटा में बदलने के लिए ग्राफिक पाइपलाइन इन चरणों का उपयोग करती है। सामान्य तौर पर, यह एक बड़ा पिक्सेल मैट्रिक्स या फ्रेम बफर होता है।

प्रकार

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

2डी शेड्स

2डी शेड्स डिजिटल छवियों पर कार्य करते हैं, जिन्हें कंप्यूटर ग्राफिक्स के क्षेत्र में बनावट (कंप्यूटर ग्राफिक्स) भी कहा जाता है। वे पिक्सेल की विशेषताओं को संशोधित करते हैं। 2D शेडर 3D ज्यामिति के प्रतिपादन में भाग ले सकते हैं। वर्तमान में 2D शेडर का एकमात्र प्रकार पिक्सेल शेडर है।

पिक्सेल शेड्स

पिक्सेल शेडर्स, जिन्हें फ़्रैगमेंट (कंप्यूटर ग्राफ़िक्स) शेडर्स के रूप में भी जाना जाता है, प्रत्येक फ़्रैगमेंट के रंग और अन्य विशेषताओं की गणना करते हैं: रेंडरिंग कार्य की एक इकाई जो अधिकतम एकल आउटपुट पिक्सेल को प्रभावित करती है। सबसे सरल प्रकार के पिक्सेल शेड्स एक रंग मान के रूप में एक स्क्रीन पिक्सेल का उत्पादन करते हैं; एकाधिक इनपुट/आउटपुट वाले अधिक जटिल शेड भी संभव हैं।[5] पिक्सेल शेड्स में हमेशा एक ही रंग के आउटपुट से लेकर प्रकाश वैल्यू लागू करने, बम्प मैपिंग, शैडो, स्पेक्युलर हाइलाइट्स, पारदर्शता और अन्य घटनाएं होती हैं। वे खंड की गहराई (जेड-बफरिंग के लिए) को बदल सकते हैं, या यदि एकाधिक रेंडर लक्ष्य सक्रिय हैं तो एक से अधिक रंग आउटपुट कर सकते हैं। 3डी ग्राफिक्स में, एक पिक्सेल शेडर अकेले कुछ प्रकार के जटिल प्रभाव उत्पन्न नहीं कर सकता है क्योंकि यह दृश्य की ज्यामिति (यानी वर्टेक्स डेटा) के ज्ञान के बिना केवल एक ही टुकड़े पर काम करता है। हालांकि, पिक्सेल शेडर्स को स्क्रीन निर्देशांक तैयार करने का ज्ञान होता है, और यदि पूरी स्क्रीन की सामग्री शेडर को बनावट के रूप में पारित की जाती है तो स्क्रीन और आस-पास के पिक्सेल का नमूना ले सकते हैं। यह तकनीक गौस्सियन धुंधलापन , या सेल शेडर|कार्टून/सेल शेडर्स के लिए एज डिटेक्शन/एन्हांसमेंट जैसे द्वि-आयामी पोस्ट प्रोसेसिंग (छवियां) प्रभावों की एक विस्तृत विविधता को सक्षम कर सकती है। ग्राफिक्स पाइपलाइन में किसी भी दो-आयामी छवियों- स्प्राइट (कंप्यूटर ग्राफिक्स) या बनावट (कंप्यूटर ग्राफिक्स) के मध्यवर्ती चरणों में पिक्सेल शेडर्स को भी लागू किया जा सकता है, जबकि वर्टेक्स शेडर्स को हमेशा 3 डी दृश्य की आवश्यकता होती है। उदाहरण के लिए, एक पिक्सेल शेडर एकमात्र प्रकार का शेडर है जो वीडियो पोस्टप्रोसेसिंग या विडियो स्ट्रीम के लिए वीडियो फिल्टर के रूप में कार्य कर सकता है, क्योंकि यह रेखांकन किया गया है।

3डी शेड्स

3D शेडर मॉडल की गिनती या अन्य ज्यामिति पर कार्य करते हैं, लेकिन मॉडल या बहुभुज जाल बनाने के लिए उपयोग किए जाने वाले रंगों और बनावटों तक भी पहुंच सकते हैं। वर्टेक्स शेड्स सबसे पुराने प्रकार के 3D शेडर हैं, जो आम तौर पर प्रति-शीर्ष आधार पर संशोधन करते हैं। नए ज्योमेट्री शेड्स शेडर के भीतर से नए वर्टिकल उत्पन्न कर सकते हैं। टेस्सेलेशन शेडर नवीनतम 3डी शेडर हैं; वे विवरण जोड़ने के लिए सभी शीर्षों के बैचों पर एक साथ कार्य करते हैं—जैसे कि किसी मॉडल को त्रिभुजों के छोटे समूहों में उप-विभाजित करना या रनटाइम पर अन्य आदिम, घटता और :wikt:bumps जैसी चीज़ों में सुधार करना, या अन्य विशेषताओं को बदलना।

वर्टेक्स शेड्स

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

ज्यामिति शेड्स

ज्यामिति शेड्स को Direct3D 10 और OpenGL 3.2 में पेश किया गया था; पहले एक्सटेंशन के उपयोग के साथ OpenGL 2.0+ में उपलब्ध था।[7] इस प्रकार के शेडर उन आदिम से नए ग्राफिक्स आदिम (ज्यामिति) उत्पन्न कर सकते हैं, जैसे अंक, रेखाएँ और त्रिकोण, जो ग्राफिक्स पाइपलाइन की शुरुआत में भेजे गए थे।[8] ज्योमेट्री शेडर प्रोग्राम को वर्टेक्स शेडर्स के बाद निष्पादित किया जाता है। वे संभवतः आसन्न जानकारी के साथ इनपुट के रूप में एक संपूर्ण आदिम लेते हैं। उदाहरण के लिए, त्रिभुजों पर काम करते समय, तीन कोने ज्यामिति शेडर के इनपुट होते हैं। शेडर तब शून्य या अधिक आदिम का उत्सर्जन कर सकता है, जो रेखापुंज होते हैं और उनके टुकड़े अंततः एक पिक्सेल शेडर में पारित हो जाते हैं।

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

टेसलेशन शेड्स

OpenGL 4.0 और Direct3D 11 के अनुसार, एक नया शेडर वर्ग जिसे टेसलेशन शेडर कहा जाता है, जोड़ा गया है। यह पारंपरिक मॉडल में दो नए शेडर चरणों को जोड़ता है: टेसलेशन कंट्रोल शेड्स (जिसे हल शेड्स के रूप में भी जाना जाता है) और टेसलेशन मूल्यांकन शेडर्स (डोमेन शेडर्स के रूप में भी जाना जाता है), जो एक साथ सरल जालों को रन-टाइम के अनुसार महीन जालों में विभाजित करने की अनुमति देते हैं। एक गणितीय कार्य के लिए। फ़ंक्शन को विभिन्न प्रकार के चर से संबंधित किया जा सकता है, विशेष रूप से विस्तार के सक्रिय स्तर (कंप्यूटर ग्राफिक्स) की अनुमति देने के लिए देखने वाले कैमरे से दूरी। विस्तार-स्तर स्केलिंग। यह कैमरे के करीब की वस्तुओं को बारीक विवरण देने की अनुमति देता है, जबकि आगे की वस्तुओं में अधिक मोटे जाल हो सकते हैं, फिर भी गुणवत्ता में तुलनीय लगते हैं। यह मेमोरी से बहुत जटिल लोगों को डाउनसैंपलिंग करने के बजाय शेडर इकाइयों के अंदर एक बार मेश को परिष्कृत करने की अनुमति देकर आवश्यक मेश बैंडविड्थ को भी काफी कम कर सकता है। कुछ एल्गोरिदम किसी भी मनमाना जाल को बढ़ा सकते हैं, जबकि अन्य सबसे विशिष्ट कोने और किनारों को निर्देशित करने के लिए जाल में संकेत देने की अनुमति देते हैं।

आदिम और मेश शेड्स

सर्का 2017, ामद वेगा microआर्किटेक्चर ने एक नए शेडर चरण के लिए समर्थन जोड़ा - आदिम शेडर्स - ज्यामिति को संसाधित करने के लिए आवश्यक डेटा तक पहुंच के साथ शेडर्स की गणना करने के लिए कुछ समान।[9][10] इसी तरह, एनवीडिया ने 2018 में अपने ट्यूरिंग (माइक्रोआर्किटेक्चर) के साथ मेश और टास्क शेडर्स पेश किए जो समान कार्यक्षमता प्रदान करते हैं और एएमडी के आदिम शेडर्स की तरह कंप्यूट शेडर्स के बाद भी मॉडल किए जाते हैं।[11][12] 2020 में, एएमडी और एनवीडिया ने आरडीएनए (माइक्रोआर्किटेक्चर)#आरडीएनए 2 और एम्पीयर (माइक्रोआर्किटेक्चर) माइक्रोआर्किटेक्चर जारी किए, जो डायरेक्टएक्स#डायरेक्टएक्स 12 अल्टीमेट के माध्यम से मेश शेडिंग का समर्थन करते हैं।[13] ये मेश शेड्स GPU को अधिक जटिल एल्गोरिदम को संभालने की अनुमति देते हैं, CPU से GPU पर अधिक काम को लोड करते हैं, और एल्गोरिथम गहन रेंडरिंग में, परिमाण के एक क्रम से एक दृश्य में त्रिकोणों की संख्या या फ्रेम दर में वृद्धि करते हैं।[14] इंटेल ने घोषणा की कि 2022 की पहली तिमाही में इंटेल आर्क अल्केमिस्ट जीपीयू शिपिंग मेश शेड्स को सपोर्ट करेगा।[15]


रे ट्रेसिंग शेड्स

किरण अनुरेखण (ग्राफिक्स) शेड्स Microsoft द्वारा DirectX Raytracing के माध्यम से, Khronos Group द्वारा Vulkan (API), GLSL, और SPIR-V द्वारा समर्थित हैं।[16] धातु (एपीआई) के माध्यम से एप्पल इंक द्वारा।

कंप्यूट शेडर्स

कंप्यूट शेडर्स ग्राफिक्स अनुप्रयोगों तक ही सीमित नहीं हैं, लेकिन जीपीजीपीयू के लिए समान निष्पादन संसाधनों का उपयोग करते हैं। उनका उपयोग ग्राफिक्स पाइपलाइनों में किया जा सकता है उदा। एनिमेशन या लाइटिंग एल्गोरिदम में अतिरिक्त चरणों के लिए (उदाहरण के लिए टाइल किए गए आगे प्रतिपादन)। कुछ रेंडरिंग एपीआई कंप्यूट शेडर्स को ग्राफिक्स पाइपलाइन के साथ डेटा संसाधनों को आसानी से साझा करने की अनुमति देते हैं।

समानांतर प्रसंस्करण

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

शेडर्स के साथ एक प्रोग्रामिंग मॉडल प्रतिपादन के लिए एक उच्च क्रम फ़ंक्शन के समान है, शेडर्स को तर्कों के रूप में लेना, और इंटरमीडिएट परिणामों के बीच एक विशिष्ट डेटा प्रवाह प्रदान करना, दोनों डेटा समांतरता (पिक्सेल, कोने आदि में) और पाइपलाइन समांतरता (चरणों के बीच) को सक्षम करना। (नक्शा घटाना भी देखें)।

प्रोग्रामिंग

जिस भाषा में शेडर प्रोग्राम किए जाते हैं वह लक्षित वातावरण पर निर्भर करता है। आधिकारिक OpenGL और OpenGL ES छायांकन भाषा OpenGL छायांकन भाषा है, जिसे GLSL के रूप में भी जाना जाता है, और आधिकारिक Direct3D छायांकन भाषा HLSL है, जिसे HLSL के रूप में भी जाना जाता है। सीजी (प्रोग्रामिंग भाषा), एक तृतीय-पक्ष छायांकन भाषा जो ओपनजीएल और डायरेक्ट 3 डी शेडर्स दोनों को आउटपुट करती है, NVIDIA द्वारा विकसित की गई थी; हालाँकि 2012 से इसे हटा दिया गया है। Apple ने अपनी स्वयं की छायांकन भाषा जारी की, जिसे Shading language#Metal Shading Language as the part of the Metal (iOS API) कहा जाता है।

जीयूआई शेडर संपादक

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

यह भी देखें

संदर्भ