शेडर: Difference between revisions
No edit summary |
|||
| Line 6: | Line 6: | ||
}} | }} | ||
[[File:Phong-shading-sample (cropped).jpg|thumb|upright=1.3|[[ 3 डी मॉडलिंग ]] के प्रतिपादन में रोशनी और छाया वाले क्षेत्रों का उत्पादन करने के लिए शेडर्स का सबसे अधिक उपयोग किया जाता है। फोंग छायांकन (दाएं) गौरौड छायांकन पर एक सुधार है, और मूल फ्लैट छायांकन (बाएं) के | [[File:Phong-shading-sample (cropped).jpg|thumb|upright=1.3|[[ 3 डी मॉडलिंग ]] के प्रतिपादन में रोशनी और छाया वाले क्षेत्रों का उत्पादन करने के लिए शेडर्स का सबसे अधिक उपयोग किया जाता है। फोंग छायांकन (दाएं) गौरौड छायांकन पर एक सुधार है, और मूल फ्लैट छायांकन (बाएं) के पश्चात कभी विकसित किए गए पहले कंप्यूटर छायांकन मॉडलों में से एक था, जो रेंडर में घुमावदार सतहों की उपस्थिति को बहुत बढ़ाता है।]] | ||
[[File:Example of a Shader.png|thumb|upright=1.3|शेडर्स का एक और उपयोग विशेष प्रभावों के लिए है, यहां तक कि 2डी छवियों पर भी, (उदाहरण के लिए, एक [[वेबकैम]] से एक [[डिजिटल फोटोग्राफ]])। अपरिवर्तित, अपरिवर्तित छवि बाईं ओर है, और उसी छवि में दाईं ओर एक शेडर लगाया गया है। यह शेडर छवि के सभी प्रकाश क्षेत्रों को सफेद और सभी अंधेरे क्षेत्रों को चमकीले रंग की बनावट के साथ बदलकर काम करता है।]][[कंप्यूटर चित्रलेख]] में, एक शेडर एक [[कंप्यूटर प्रोग्राम]] है जो एक [[3डी दृश्य]] के [[प्रतिपादन (कंप्यूटर ग्राफिक्स)]] के दौरान प्रकाश, अंधेरे और [[रंग]] के उचित स्तर की गणना करता है - एक प्रक्रिया जिसे ''छायांकन'' के रूप में जाना जाता है। कंप्यूटर ग्राफिक्स [[विशेष प्रभाव]] और [[वीडियो पोस्ट-प्रोसेसिंग]] के साथ-साथ ग्राफिक्स प्रोसेसिंग इकाइयों पर सामान्य-उद्देश्य कंप्यूटिंग में विभिन्न प्रकार के विशेष कार्य करने के लिए शेडर्स विकसित हुए हैं। | [[File:Example of a Shader.png|thumb|upright=1.3|शेडर्स का एक और उपयोग विशेष प्रभावों के लिए है, यहां तक कि 2डी छवियों पर भी, (उदाहरण के लिए, एक [[वेबकैम]] से एक [[डिजिटल फोटोग्राफ]])। अपरिवर्तित, अपरिवर्तित छवि बाईं ओर है, और उसी छवि में दाईं ओर एक शेडर लगाया गया है। यह शेडर छवि के सभी प्रकाश क्षेत्रों को सफेद और सभी अंधेरे क्षेत्रों को चमकीले रंग की बनावट के साथ बदलकर काम करता है।]][[कंप्यूटर चित्रलेख]] में, एक शेडर एक [[कंप्यूटर प्रोग्राम]] है जो एक [[3डी दृश्य]] के [[प्रतिपादन (कंप्यूटर ग्राफिक्स)]] के दौरान प्रकाश, अंधेरे और [[रंग]] के उचित स्तर की गणना करता है - एक प्रक्रिया जिसे ''छायांकन'' के रूप में जाना जाता है। कंप्यूटर ग्राफिक्स [[विशेष प्रभाव]] और [[वीडियो पोस्ट-प्रोसेसिंग]] के साथ-साथ ग्राफिक्स प्रोसेसिंग इकाइयों पर सामान्य-उद्देश्य कंप्यूटिंग में विभिन्न प्रकार के विशेष कार्य करने के लिए शेडर्स विकसित हुए हैं। | ||
पारंपरिक शेडर्स उच्च स्तर के लचीलेपन के साथ ग्राफिक्स हार्डवेयर पर रेंडरिंग प्रभाव की गणना करते हैं। अधिकांश शेडर्स को [[ ग्राफ़िक्स प्रोसेसिंग युनिट | ग्राफ़िक्स प्रोसेसिंग युनिट]] (जीपीयू) के लिए कोडित (और चालू) किया जाता है,<ref name=":0">{{Cite web|url=https://learnopengl.com/Getting-started/Shaders|title=LearnOpenGL - शेडर्स|website=learnopengl.com|access-date=November 12, 2019}}</ref> | पारंपरिक शेडर्स उच्च स्तर के लचीलेपन के साथ ग्राफिक्स हार्डवेयर पर रेंडरिंग प्रभाव की गणना करते हैं। अधिकांश शेडर्स को [[ ग्राफ़िक्स प्रोसेसिंग युनिट | ग्राफ़िक्स प्रोसेसिंग युनिट]] (जीपीयू) के लिए कोडित (और चालू) किया जाता है,<ref name=":0">{{Cite web|url=https://learnopengl.com/Getting-started/Shaders|title=LearnOpenGL - शेडर्स|website=learnopengl.com|access-date=November 12, 2019}}</ref> चूंकि यह एक सख्त आवश्यकता नहीं है। जीपीयू की [[रेंडरिंग पाइपलाइन]] को प्रोग्राम करने के लिए छायांकन भाषाओं का उपयोग किया जाता है, जिसने ज्यादातर अतीत की [[फिक्स्ड-फ़ंक्शन पाइपलाइन]] को हटा दिया है जो केवल सामान्य ज्यामिति रूपांतरण और [[पिक्सेल]]-छायांकन कार्यों के लिए अनुमति देता है; शेडर्स के साथ, अनुकूलित प्रभावों का उपयोग किया जा सकता है।अंतिम रूप से प्रदान की गई छवि के निर्माण के लिए उपयोग किए जाने वाले सभी पिक्सेल, कोने और/या बनावट की स्थिति और रंग (ह्यू, [[ रंगीनपन |रंगीनपन]], [[ चमक |चमक,]] और [[कंट्रास्ट (दृष्टि)]]) को एक शेडर में परिभाषित [[कलन विधि]] का उपयोग करके बदला जा सकता है, एक शेडर में, और कंप्यूटर प्रोग्राम द्वारा शेडर को कॉल करने वाले बाहरी [[चर (कंप्यूटर विज्ञान)]] या बनावट द्वारा संशोधित किया जा सकता है। | ||
[[फिल्म निर्माण]] [[पोस्ट प्रोसेसिंग (छवियां)]], कंप्यूटर-जनित इमेजरी और [[वीडियो गेम]] में कई तरह के प्रभाव पैदा करने के लिए शेडर्स का व्यापक रूप से उपयोग किया जाता है। सरल प्रकाश मॉडल के | [[फिल्म निर्माण]] [[पोस्ट प्रोसेसिंग (छवियां)]], कंप्यूटर-जनित इमेजरी और [[वीडियो गेम]] में कई तरह के प्रभाव पैदा करने के लिए शेडर्स का व्यापक रूप से उपयोग किया जाता है। सरल प्रकाश मॉडल के अतिरिक्त, शेडर्स के अधिक जटिल उपयोगों में सम्मलित हैं: रंग,रंगीनपन, चमक (एचएसएल / एचएसवी) या छवि के कंट्रास्ट (दृष्टि) को बदलना; [[डिफोकस विपथन]], [[ हल्का खिलना ]], [[वॉल्यूमेट्रिक लाइटिंग]], [[ साधारण मानचित्रण ]] (डेप्थ इफेक्ट्स के लिए), [[ bokeh |बोकेह]], [[सार्डिन को मापना]], [[ posterization |पोस्टराइजेशन]], [[ उभार का मानचित्रण |उभार का मानचित्रण]] , डिस्टॉर्शन (ऑप्टिक्स), [[क्रोमा की]]इंग (तथाकथित ब्लूस्क्रीन /[[ हरा पर्दा ]] इफेक्ट्स के लिए), [[किनारे का पता लगाना]] और मोशन पहचान, जैसे साथ ही [[साइकेडेलिया]] प्रभाव जैसे कि [[डेमोसीन]] में देखे गए। | ||
== इतिहास == | == इतिहास == | ||
"शेडर" शब्द के इस प्रयोग को [[पिक्सर]] द्वारा उनके [[रेंडरमैन इंटरफ़ेस]] विशिष्टता के संस्करण 3.0 के साथ जनता के लिए पेश किया गया था, जो मूल रूप से मई 1988 में प्रकाशित हुआ था।<ref>{{Cite web|url=http://www.redrabbit-studios.com/coursework/renderman/prman/RISpec/index.html|title=The RenderMan Interface Specification}}</ref> | "शेडर" शब्द के इस प्रयोग को [[पिक्सर]] द्वारा उनके [[रेंडरमैन इंटरफ़ेस]] विशिष्टता के संस्करण 3.0 के साथ जनता के लिए पेश किया गया था, जो मूल रूप से मई 1988 में प्रकाशित हुआ था।<ref>{{Cite web|url=http://www.redrabbit-studios.com/coursework/renderman/prman/RISpec/index.html|title=The RenderMan Interface Specification}}</ref> | ||
जैसे-जैसे ग्राफिक्स प्रोसेसिंग यूनिट विकसित हुई, [[OpenGL|ओपन जीएल]] और [[Direct3D|डायरेक्ट 3 डी]] जैसी प्रमुख ग्राफिक्स [[सॉफ्टवेयर पुस्तकालय]] ने शेडर्स का समर्थन करना शुरू कर दिया। पहला शेडर-सक्षम जीपीयू केवल [[पिक्सेल छायांकन]] का समर्थन करता था, लेकिन डेवलपर्स को शेडर्स की शक्ति का एहसास होने के | जैसे-जैसे ग्राफिक्स प्रोसेसिंग यूनिट विकसित हुई, [[OpenGL|ओपन जीएल]] और [[Direct3D|डायरेक्ट 3 डी]] जैसी प्रमुख ग्राफिक्स [[सॉफ्टवेयर पुस्तकालय]] ने शेडर्स का समर्थन करना शुरू कर दिया। पहला शेडर-सक्षम जीपीयू केवल [[पिक्सेल छायांकन]] का समर्थन करता था, लेकिन डेवलपर्स को शेडर्स की शक्ति का एहसास होने के पश्चात [[वर्टेक्स शेडर्स]] जल्दी से पेश किए गए थे। प्रोग्रामेबल पिक्सेल शेडर वाला पहला वीडियो कार्ड Nvidia [[GeForce 3]] (NV20) था, जिसे 2001 में रिलीज़ किया गया था।<ref>{{Cite web|url=https://www.pcgamer.com/from-voodoo-to-geforce-the-awesome-history-of-3d-graphics/|title=From Voodoo to GeForce: The Awesome History of 3D Graphics|first=Paul|last=Lillypublished|website=PC Gamer |date=May 19, 2009|via=www.pcgamer.com}}</ref> ज्यामिति शेड्स को डायरेक्ट 3 डी 10 और OpenGL 3.2 के साथ सम्मुख किया गया था। आखिरकार, ग्राफिक्स हार्डवेयर एक [[एकीकृत शेडर मॉडल]] की ओर विकसित हुआ | ||
== डिजाइन == | == डिजाइन == | ||
शेडर्स सरल प्रोग्राम हैं जो वर्टेक्स (कंप्यूटर ग्राफिक्स) या पिक्सेल के लक्षणों का वर्णन करते हैं। वर्टेक्स शेडर्स एक वर्टेक्स की विशेषताओं (स्थिति, बनावट मानचित्रण, रंग, आदि) का वर्णन करते हैं, जबकि पिक्सेल शेड्स एक पिक्सेल के लक्षणों (रंग, [[z-बफरिंग|जेड-बफरिंग]], जेड-गहराई और [[अल्फा रचना|अल्फा मान]] ) का वर्णन करते हैं। एक [[ज्यामितीय आदिम]] (संभवतः [[टेसलेशन (कंप्यूटर ग्राफिक्स)]] के | शेडर्स सरल प्रोग्राम हैं जो वर्टेक्स (कंप्यूटर ग्राफिक्स) या पिक्सेल के लक्षणों का वर्णन करते हैं। वर्टेक्स शेडर्स एक वर्टेक्स की विशेषताओं (स्थिति, बनावट मानचित्रण, रंग, आदि) का वर्णन करते हैं, जबकि पिक्सेल शेड्स एक पिक्सेल के लक्षणों (रंग, [[z-बफरिंग|जेड-बफरिंग]], जेड-गहराई और [[अल्फा रचना|अल्फा मान]] ) का वर्णन करते हैं। एक [[ज्यामितीय आदिम]] (संभवतः [[टेसलेशन (कंप्यूटर ग्राफिक्स)]] के पश्चात) में प्रत्येक शीर्ष के लिए एक वर्टेक्स शेडर कहा जाता है; इस प्रकार एक वर्टेक्स इन, एक (अपडेटेड) वर्टेक्स आउट। प्रत्येक शीर्ष को तब एक सतह (मेमोरी के ब्लॉक) पर पिक्सेल की एक श्रृंखला के रूप में प्रस्तुत किया जाता है जो अंततः स्क्रीन पर भेजा जाएगा। | ||
शेडर्स ग्राफिक्स हार्डवेयर के एक | शेडर्स ग्राफिक्स हार्डवेयर के एक भाग को प्रतिस्थापित करते हैं जिसे सामान्यतः फिक्स्ड फंक्शन पाइपलाइन (एफएफपी) कहा जाता है, तथाकथित क्योंकि यह हार्ड-कोडेड तरीके से [[कंप्यूटर ग्राफिक्स प्रकाश]] और [[ बनावट का मानचित्रण ]]बनाता है। शेडर्स इस हार्ड-कोडेड दृष्टिकोण के लिए प्रोग्राम करने योग्य विकल्प प्रदान करते हैं।<ref>{{cite web|url=http://www.directx.com/shader/|title=शेडरवर्क्स का अपडेट - डायरेक्टएक्स ब्लॉग|date=August 13, 2003}}</ref> | ||
मूल [[ग्राफिक्स पाइपलाइन]] इस प्रकार है: | मूल [[ग्राफिक्स पाइपलाइन]] इस प्रकार है: | ||
| Line 43: | Line 43: | ||
==== पिक्सेल शेड्स ==== | ==== पिक्सेल शेड्स ==== | ||
पिक्सेल शेडर्स, जिन्हें फ़्रैगमेंट (कंप्यूटर ग्राफ़िक्स) शेडर्स के रूप में भी जाना जाता है, प्रत्येक फ़्रैगमेंट के रंग और अन्य विशेषताओं की गणना करते हैं: अधिकांश एकल आउटपुट पिक्सेल को प्रभावित करने वाले कार्य को प्रस्तुत करने की एक इकाई। सबसे सरल प्रकार के पिक्सेल शेड्स एक रंग मान के रूप में एक स्क्रीन पिक्सेल का उत्पादन करते हैं; एकाधिक इनपुट/आउटपुट वाले अधिक जटिल शेड भी संभव हैं।<ref>{{cite web|url=http://www.lighthouse3d.com/tutorials/glsl-tutorial/fragment-shader/|title=GLSL Tutorial – Fragment Shader|date=June 9, 2011}}</ref> पिक्सेल शेड्स में हमेशा एक ही रंग के आउटपुट से लेकर [[ प्रकाश |लाइटिंग]] वैल्यू लागू करने तक, बम्प मैपिंग, शैडो, [[स्पेक्युलर हाइलाइट|स्पेक्युलर हाइलाइट्स]], [[पारदर्शता]] और अन्य घटनाएं करने तक होती है। वे खंड की गहराई (जेड-बफरिंग के लिए) को बदल सकते हैं, या यदि एकाधिक रेंडर लक्ष्य सक्रिय हैं तो एक से अधिक रंग आउटपुट कर सकते हैं। 3डी ग्राफिक्स में, एक पिक्सेल शेडर अकेले कुछ प्रकार के जटिल प्रभाव उत्पन्न नहीं कर सकता है क्योंकि यह दृश्य की ज्यामिति ( | पिक्सेल शेडर्स, जिन्हें फ़्रैगमेंट (कंप्यूटर ग्राफ़िक्स) शेडर्स के रूप में भी जाना जाता है, प्रत्येक फ़्रैगमेंट के रंग और अन्य विशेषताओं की गणना करते हैं: अधिकांश एकल आउटपुट पिक्सेल को प्रभावित करने वाले कार्य को प्रस्तुत करने की एक इकाई। सबसे सरल प्रकार के पिक्सेल शेड्स एक रंग मान के रूप में एक स्क्रीन पिक्सेल का उत्पादन करते हैं; एकाधिक इनपुट/आउटपुट वाले अधिक जटिल शेड भी संभव हैं।<ref>{{cite web|url=http://www.lighthouse3d.com/tutorials/glsl-tutorial/fragment-shader/|title=GLSL Tutorial – Fragment Shader|date=June 9, 2011}}</ref> पिक्सेल शेड्स में हमेशा एक ही रंग के आउटपुट से लेकर [[ प्रकाश |लाइटिंग]] वैल्यू लागू करने तक, बम्प मैपिंग, शैडो, [[स्पेक्युलर हाइलाइट|स्पेक्युलर हाइलाइट्स]], [[पारदर्शता]] और अन्य घटनाएं करने तक होती है। वे खंड की गहराई (जेड-बफरिंग के लिए) को बदल सकते हैं, या यदि एकाधिक रेंडर लक्ष्य सक्रिय हैं तो एक से अधिक रंग आउटपुट कर सकते हैं। 3डी ग्राफिक्स में, एक पिक्सेल शेडर अकेले कुछ प्रकार के जटिल प्रभाव उत्पन्न नहीं कर सकता है क्योंकि यह दृश्य की ज्यामिति (अर्थात वर्टेक्स डेटा) के ज्ञान के बिना केवल एक ही टुकड़े पर काम करता है। चूंकि, पिक्सेल शेडर्स को स्क्रीन निर्देशांक तैयार करने का ज्ञान होता है, और यदि पूरी स्क्रीन की सामग्री शेडर को बनावट के रूप में पारित की जाती है तो स्क्रीन और आस-पास के पिक्सेल का नमूना ले सकते हैं। यह तकनीक [[ गौस्सियन धुंधलापन |गौस्सियन धुंधलापन]] ,कार्टून/सीएल शेडर्स के लिए ब्लर, या एज डिटेक्शन/एन्हांसमेंट जैसे द्वि-आयामी पोस्टप्रोसेसिंग प्रभावों की एक विस्तृत विविधता को सक्षम कर सकती है। ग्राफिक्स पाइपलाइन में किसी भी दो-आयामी छवियों- [[स्प्राइट (कंप्यूटर ग्राफिक्स)]] या बनावट (कंप्यूटर ग्राफिक्स) के मध्यवर्ती चरणों में पिक्सेल शेडर्स को भी लागू किया जा सकता है, जबकि वर्टेक्स शेडर्स को हमेशा 3 डी दृश्य की आवश्यकता होती है। उदाहरण के लिए, एक पिक्सेल शेडर एकमात्र प्रकार का शेडर है जो [[वीडियो पोस्टप्रोसेसिंग]] के रूप में कार्य कर सकता है या [[ विडियो स्ट्रीम |विडियो स्ट्रीम]] के लिए [[वीडियो फिल्टर]] करने के पश्चात इसे रेखापुंज कर सकता है। | ||
=== 3डी शेड्स === | === 3डी शेड्स === | ||
3D शेडर [[मॉडल की गिनती]] या अन्य ज्यामिति पर कार्य करते हैं, लेकिन मॉडल या [[बहुभुज जाल]] बनाने के लिए उपयोग किए जाने वाले रंगों और बनावटों तक भी पहुंच सकते हैं। वर्टेक्स शेड्स सबसे पुराने प्रकार के 3D शेडर हैं, जो | 3D शेडर [[मॉडल की गिनती]] या अन्य ज्यामिति पर कार्य करते हैं, लेकिन मॉडल या [[बहुभुज जाल]] बनाने के लिए उपयोग किए जाने वाले रंगों और बनावटों तक भी पहुंच सकते हैं। वर्टेक्स शेड्स सबसे पुराने प्रकार के 3D शेडर हैं, जो सामान्यतः प्रति-शीर्ष आधार पर संशोधन करते हैं। नए ज्योमेट्री शेड्स शेडर के भीतर से नए वर्टिकल उत्पन्न कर सकते हैं। टेस्सेलेशन शेडर नवीनतम 3डी शेडर हैं; वे विवरण जोड़ने के लिए एक साथ शीर्षों के बैचों पर कार्य करते हैं—जैसे कि किसी मॉडल को त्रिभुजों के छोटे समूहों में उप-विभाजित करना या रनटाइम पर अन्य आदिम,घटता और टक्कर जैसी चीज़ों को सुधारने के लिए, या अन्य विशेषताओं को बदलने के लिए। | ||
==== वर्टेक्स शेड्स ==== | ==== वर्टेक्स शेड्स ==== | ||
वर्टेक्स शेड्स सबसे स्थापित और सामान्य प्रकार के 3डी शेडर हैं और ग्राफिक्स प्रोसेसर को दिए गए प्रत्येक वर्टेक्स (कंप्यूटर ग्राफिक्स) के लिए एक बार चलाए जाते हैं। इसका उद्देश्य वर्चुअल स्पेस में प्रत्येक वर्टेक्स की 3डी स्थिति को 2डी समन्वय में बदलना है, जिस पर यह स्क्रीन पर दिखाई देता है (साथ ही जेड-बफर के लिए गहराई मान)।<ref>{{cite web|url=http://www.lighthouse3d.com/tutorials/glsl-tutorial/vertex-shader/|title=GLSL Tutorial – Vertex Shader|date=June 9, 2011}}</ref> वर्टेक्स शेड्स स्थिति, रंग और बनावट निर्देशांक जैसे गुणों में हेरफेर कर सकते हैं, लेकिन नए कोने नहीं बना सकते। वर्टेक्स शेडर का आउटपुट पाइपलाइन में अगले चरण में जाता है, जो या तो ज्यामिति शेडर है, यदि | वर्टेक्स शेड्स सबसे स्थापित और सामान्य प्रकार के 3डी शेडर हैं और ग्राफिक्स प्रोसेसर को दिए गए प्रत्येक वर्टेक्स (कंप्यूटर ग्राफिक्स) के लिए एक बार चलाए जाते हैं। इसका उद्देश्य वर्चुअल स्पेस में प्रत्येक वर्टेक्स की 3डी स्थिति को 2डी समन्वय में बदलना है, जिस पर यह स्क्रीन पर दिखाई देता है (साथ ही जेड-बफर के लिए गहराई मान)।<ref>{{cite web|url=http://www.lighthouse3d.com/tutorials/glsl-tutorial/vertex-shader/|title=GLSL Tutorial – Vertex Shader|date=June 9, 2011}}</ref> वर्टेक्स शेड्स स्थिति, रंग और बनावट निर्देशांक जैसे गुणों में हेरफेर कर सकते हैं, लेकिन नए कोने नहीं बना सकते। वर्टेक्स शेडर का आउटपुट पाइपलाइन में अगले चरण में जाता है, जो या तो ज्यामिति शेडर है, यदि उपस्थित है, या [[रास्टेराइज़र]] है। वर्टेक्स शेडर्स 3D मॉडल वाले किसी भी दृश्य में स्थिति, गति, प्रकाश और रंग के विवरण पर शक्तिशाली नियंत्रण सक्षम कर सकते हैं। | ||
==== ज्यामिति शेड्स ==== | ==== ज्यामिति शेड्स ==== | ||
ज्यामिति शेड्स को डायरेक्ट 3 डी 10 और OpenGL 3.2 में पेश किया गया था; पहले एक्सटेंशन के उपयोग के साथ OpenGL 2.0+ में उपलब्ध था।<ref>[http://www.opengl.org/wiki/Geometry_Shader Geometry Shader - OpenGL]. Retrieved on December 21, 2011.</ref> इस प्रकार के शेडर उन आदिम से नए ग्राफिक्स [[आदिम (ज्यामिति)]] उत्पन्न कर सकता है, जैसे कि बिंदु, रेखाएँ और त्रिकोण, जो ग्राफिक्स पाइपलाइन की शुरुआत में भेजे गए थे।<ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/bb205123(VS.85).aspx|title=Pipeline Stages (Direct3D 10) (Windows)|website=msdn.microsoft.com}}</ref> | ज्यामिति शेड्स को डायरेक्ट 3 डी 10 और OpenGL 3.2 में पेश किया गया था; पहले एक्सटेंशन के उपयोग के साथ OpenGL 2.0+ में उपलब्ध था।<ref>[http://www.opengl.org/wiki/Geometry_Shader Geometry Shader - OpenGL]. Retrieved on December 21, 2011.</ref> इस प्रकार के शेडर उन आदिम से नए ग्राफिक्स [[आदिम (ज्यामिति)]] उत्पन्न कर सकता है, जैसे कि बिंदु, रेखाएँ और त्रिकोण, जो ग्राफिक्स पाइपलाइन की शुरुआत में भेजे गए थे।<ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/bb205123(VS.85).aspx|title=Pipeline Stages (Direct3D 10) (Windows)|website=msdn.microsoft.com}}</ref> | ||
ज्योमेट्री शेडर प्रोग्राम को वर्टेक्स शेडर्स के | ज्योमेट्री शेडर प्रोग्राम को वर्टेक्स शेडर्स के पश्चात निष्पादित किया जाता है। वे संभवतः आसन्न जानकारी के साथ इनपुट के रूप में एक संपूर्ण आदिम लेते हैं। उदाहरण के लिए, त्रिभुजों पर काम करते समय, तीन कोने ज्यामिति शेडर के इनपुट होते हैं। शेडर तब शून्य या अधिक आदिम का उत्सर्जन कर सकता है, जो रेखापुंज होते हैं और उनके टुकड़े अंततः एक पिक्सेल शेडर में पारित हो जाते हैं। | ||
ज्योमेट्री शेडर के विशिष्ट उपयोगों में पॉइंट स्प्राइट जेनरेशन, ज्योमेट्री टेसलेशन (कंप्यूटर ग्राफिक्स), [[छाया मात्रा]] एक्सट्रूज़न और [[ घन नक्शा |घन नक्शा]] के लिए सिंगल पास रेंडरिंग | ज्योमेट्री शेडर के विशिष्ट उपयोगों में पॉइंट स्प्राइट जेनरेशन, ज्योमेट्री टेसलेशन (कंप्यूटर ग्राफिक्स), [[छाया मात्रा]] एक्सट्रूज़न और [[ घन नक्शा |घन नक्शा]] के लिए सिंगल पास रेंडरिंग सम्मलित हैं। ज्यामिति शेडर्स के लाभों का एक विशिष्ट वास्तविक दुनिया उदाहरण स्वत: जाल जटिलता संशोधन होगा। एक वक्र के लिए नियंत्रण बिंदुओं का प्रतिनिधित्व करने वाली रेखा स्ट्रिप्स की एक श्रृंखला ज्यामिति शेडर को पास की जाती है और आवश्यक जटिलता के आधार पर शेडर स्वचालित रूप से अतिरिक्त लाइनें उत्पन्न कर सकता है जिनमें से प्रत्येक एक वक्र का बेहतर सन्निकटन प्रदान करता है। | ||
==== टेसलेशन शेड्स ==== | ==== टेसलेशन शेड्स ==== | ||
OpenGL 4.0 और डायरेक्ट 3 डी 11 के अनुसार, एक नया शेडर वर्ग जिसे टेसलेशन शेडर कहा जाता है, जोड़ा गया है। यह पारंपरिक मॉडल में दो नए शेडर चरण जोड़ता है: टेसलेशन कंट्रोल शेडर्स (जिसे हल शेडर्स के रूप में भी जाना जाता है) और टेसलेशन मूल्यांकन शेडर्स (डोमेन शेडर्स के रूप में भी जाना जाता है), जो एक साथ सरल जालों को गणितीय कार्य के अनुसार रन-टाइम में महीन जालों में उप-विभाजित करने की अनुमति देते हैं। फ़ंक्शन विभिन्न प्रकार के चर से संबंधित हो सकता है, विशेष रूप से सक्रिय स्तर के विस्तार स्केलिंग की अनुमति देने के लिए देखने वाले कैमरे से दूरी। यह कैमरे के करीब की वस्तुओं को बारीक विवरण देने की अनुमति देता है, जबकि आगे की वस्तुओं में अधिक मोटे जाल हो सकते हैं, फिर भी गुणवत्ता में तुलनीय लगते हैं। यह मेमोरी से बहुत जटिल लोगों को डाउनसैंपलिंग करने के | OpenGL 4.0 और डायरेक्ट 3 डी 11 के अनुसार, एक नया शेडर वर्ग जिसे टेसलेशन शेडर कहा जाता है, जोड़ा गया है। यह पारंपरिक मॉडल में दो नए शेडर चरण जोड़ता है: टेसलेशन कंट्रोल शेडर्स (जिसे हल शेडर्स के रूप में भी जाना जाता है) और टेसलेशन मूल्यांकन शेडर्स (डोमेन शेडर्स के रूप में भी जाना जाता है), जो एक साथ सरल जालों को गणितीय कार्य के अनुसार रन-टाइम में महीन जालों में उप-विभाजित करने की अनुमति देते हैं। फ़ंक्शन विभिन्न प्रकार के चर से संबंधित हो सकता है, विशेष रूप से सक्रिय स्तर के विस्तार स्केलिंग की अनुमति देने के लिए देखने वाले कैमरे से दूरी। यह कैमरे के करीब की वस्तुओं को बारीक विवरण देने की अनुमति देता है, जबकि आगे की वस्तुओं में अधिक मोटे जाल हो सकते हैं, फिर भी गुणवत्ता में तुलनीय लगते हैं। यह मेमोरी से बहुत जटिल लोगों को डाउनसैंपलिंग करने के अतिरिक्तशेडर इकाइयों के अंदर एक बार मेश को परिष्कृत करने की अनुमति देकर आवश्यक मेश बैंडविड्थ को भी काफी कम कर सकता है। कुछ एल्गोरिद्म किसी भी मनमाना मेश को अपसैंपल कर सकते हैं, जबकि अन्य मेश में "संकेत" के लिए अनुमति देते हैं जिससे कि सबसे विशिष्ट कोने और किनारों को निर्देशित किया जा सके। | ||
==== आदिम और मेश शेड्स ==== | ==== आदिम और मेश शेड्स ==== | ||
सर्का 2017, [[ ामद वेगा |एएमडी वेगा]] [[ microआर्किटेक्चर |माइक्रोआर्किटेक्चर]] ने एक नए शेडर चरण-आदिम शेडर्स के लिए समर्थन जोड़ा - ज्यामिति को संसाधित करने के लिए आवश्यक डेटा तक पहुंच के साथ शेडर्स की गणना करने के लिए कुछ हद तक।<ref>{{cite web|url=http://www.trustedreviews.com/news/amd-vega-specs-performance-release-date-technology-explained|title=Radeon RX Vega Revealed: AMD promises 4K gaming performance for $499 - Trusted Reviews|date=July 31, 2017}}</ref><ref>{{Cite web|url=https://techreport.com/review/31224/the-curtain-comes-up-on-amds-vega-architecture/|title=एएमडी के वेगा आर्किटेक्चर पर पर्दा आता है|date=January 5, 2017}}</ref> इसी तरह, एनवीडिया ने 2018 में अपने [[ट्यूरिंग (माइक्रोआर्किटेक्चर)]] के साथ मेश और टास्क शेड्स पेश किए जो समान कार्यक्षमता प्रदान करते हैं और जैसे एएमडी के आदिम शेडर्स को भी कंप्यूट शेडर्स के | सर्का 2017, [[ ामद वेगा |एएमडी वेगा]] [[ microआर्किटेक्चर |माइक्रोआर्किटेक्चर]] ने एक नए शेडर चरण-आदिम शेडर्स के लिए समर्थन जोड़ा - ज्यामिति को संसाधित करने के लिए आवश्यक डेटा तक पहुंच के साथ शेडर्स की गणना करने के लिए कुछ हद तक।<ref>{{cite web|url=http://www.trustedreviews.com/news/amd-vega-specs-performance-release-date-technology-explained|title=Radeon RX Vega Revealed: AMD promises 4K gaming performance for $499 - Trusted Reviews|date=July 31, 2017}}</ref><ref>{{Cite web|url=https://techreport.com/review/31224/the-curtain-comes-up-on-amds-vega-architecture/|title=एएमडी के वेगा आर्किटेक्चर पर पर्दा आता है|date=January 5, 2017}}</ref> इसी तरह, एनवीडिया ने 2018 में अपने [[ट्यूरिंग (माइक्रोआर्किटेक्चर)]] के साथ मेश और टास्क शेड्स पेश किए जो समान कार्यक्षमता प्रदान करते हैं और जैसे एएमडी के आदिम शेडर्स को भी कंप्यूट शेडर्स के पश्चात तैयार किया जाता है।<ref>{{cite web|url=https://devblogs.nvidia.com/nvidia-turing-architecture-in-depth/|title=NVIDIA ट्यूरिंग आर्किटेक्चर इन-डेप्थ|date=September 14, 2018}}</ref><ref>{{cite web|url=https://devblogs.nvidia.com/introduction-turing-mesh-shaders/|title=ट्यूरिंग मेश शेड्स का परिचय|date=September 17, 2018}}</ref> | ||
2020 में, एएमडी और एनवीडिया ने आरडीएनए 2 और [[एम्पीयर (माइक्रोआर्किटेक्चर)]] जारी किए, जो डायरेक्टएक्स 12 अल्टीमेट के माध्यम से मेश छायांकन का समर्थन करते हैं।<ref>{{Cite web|date=2020-03-19|title=Announcing DirectX 12 Ultimate|url=https://devblogs.microsoft.com/directx/announcing-directx-12-ultimate/|access-date=2021-05-25|website=DirectX Developer Blog|language=en-US}}</ref> ये मेश शेड्स GPU को अधिक जटिल एल्गोरिदम को संभालने की अनुमति देते हैं, CPU से GPU पर अधिक काम को लोड करते हैं, और एल्गोरिथम गहन रेंडरिंग में, परिमाण के एक क्रम से एक दृश्य में त्रिकोणों की संख्या या फ्रेम दर में वृद्धि करते हैं।<ref>{{Cite web|date=2021-05-21|title=मेष छायांकन के साथ न्याय में यथार्थवादी प्रकाश|url=https://developer.nvidia.com/blog/realistic-lighting-in-justice-with-mesh-shading/|access-date=2021-05-25|website=NVIDIA Developer Blog|language=en-US}}</ref>इंटेल ने घोषणा की कि 2022 की पहली तिमाही में इंटेल आर्क अल्केमिस्ट जीपीयू शिपिंग मेश शेडर्स को सपोर्ट करेगा।<ref>{{Cite web|url=https://www.anandtech.com/show/16895/a-sneak-peek-at-intels-xe-hpg-gpu-architecture|title=Intel Architecture Day 2021: A Sneak Peek At The Xe-HPG GPU Architecture|first=Ryan|last=Smith|website=www.anandtech.com}}</ref> | 2020 में, एएमडी और एनवीडिया ने आरडीएनए 2 और [[एम्पीयर (माइक्रोआर्किटेक्चर)]] जारी किए, जो डायरेक्टएक्स 12 अल्टीमेट के माध्यम से मेश छायांकन का समर्थन करते हैं।<ref>{{Cite web|date=2020-03-19|title=Announcing DirectX 12 Ultimate|url=https://devblogs.microsoft.com/directx/announcing-directx-12-ultimate/|access-date=2021-05-25|website=DirectX Developer Blog|language=en-US}}</ref> ये मेश शेड्स GPU को अधिक जटिल एल्गोरिदम को संभालने की अनुमति देते हैं, CPU से GPU पर अधिक काम को लोड करते हैं, और एल्गोरिथम गहन रेंडरिंग में, परिमाण के एक क्रम से एक दृश्य में त्रिकोणों की संख्या या फ्रेम दर में वृद्धि करते हैं।<ref>{{Cite web|date=2021-05-21|title=मेष छायांकन के साथ न्याय में यथार्थवादी प्रकाश|url=https://developer.nvidia.com/blog/realistic-lighting-in-justice-with-mesh-shading/|access-date=2021-05-25|website=NVIDIA Developer Blog|language=en-US}}</ref>इंटेल ने घोषणा की कि 2022 की पहली तिमाही में इंटेल आर्क अल्केमिस्ट जीपीयू शिपिंग मेश शेडर्स को सपोर्ट करेगा।<ref>{{Cite web|url=https://www.anandtech.com/show/16895/a-sneak-peek-at-intels-xe-hpg-gpu-architecture|title=Intel Architecture Day 2021: A Sneak Peek At The Xe-HPG GPU Architecture|first=Ryan|last=Smith|website=www.anandtech.com}}</ref> | ||
| Line 77: | Line 77: | ||
== प्रोग्रामिंग == | == प्रोग्रामिंग == | ||
जिस भाषा में शेडर प्रोग्राम किए जाते हैं वह लक्षित वातावरण पर निर्भर करता है। आधिकारिक OpenGL और [[OpenGL ES|ओपनजीएल ईएस]] छायांकन भाषा ओपनजीएल ईएस छायांकन भाषा है, जिसे जीएलएसएल के रूप में भी जाना जाता है, और आधिकारिक डायरेक्ट 3 डी छायांकन भाषा [[HLSL|उच्च स्तरीय छायांकन भाषा]] है, जिसे एचएलएसएल के रूप में भी जाना जाता है। [[सीजी (प्रोग्रामिंग भाषा)]], एक तृतीय-पक्ष छायांकन भाषा जो ओपनजीएल और डायरेक्ट 3 डी शेडर्स दोनों को आउटपुट करती है, [[NVIDIA|एनवीडिया]] द्वारा विकसित की गई थी; हालाँकि 2012 से इसे हटा दिया गया है। एप्प्ल ने [[Metal (iOS API)|मेटल (आईओएस एपीआई)]] के | जिस भाषा में शेडर प्रोग्राम किए जाते हैं वह लक्षित वातावरण पर निर्भर करता है। आधिकारिक OpenGL और [[OpenGL ES|ओपनजीएल ईएस]] छायांकन भाषा ओपनजीएल ईएस छायांकन भाषा है, जिसे जीएलएसएल के रूप में भी जाना जाता है, और आधिकारिक डायरेक्ट 3 डी छायांकन भाषा [[HLSL|उच्च स्तरीय छायांकन भाषा]] है, जिसे एचएलएसएल के रूप में भी जाना जाता है। [[सीजी (प्रोग्रामिंग भाषा)]], एक तृतीय-पक्ष छायांकन भाषा जो ओपनजीएल और डायरेक्ट 3 डी शेडर्स दोनों को आउटपुट करती है, [[NVIDIA|एनवीडिया]] द्वारा विकसित की गई थी; हालाँकि 2012 से इसे हटा दिया गया है। एप्प्ल ने [[Metal (iOS API)|मेटल (आईओएस एपीआई)]] के भाग के रूप में मेटल शेडिंग भाषा नामक अपनी स्वयं की छायांकन भाषा जारी की। | ||
=== जीयूआई शेडर संपादक === | === जीयूआई शेडर संपादक === | ||
आधुनिक [[वीडियो गेम]] विकास प्लेटफॉर्म जैसे कि एकता, [[अवास्तविक इंजन]] और [[गोडोट (गेम इंजन)]] में तेजी से [[नोड-आधारित संपादक]] | आधुनिक [[वीडियो गेम]] विकास प्लेटफॉर्म जैसे कि एकता, [[अवास्तविक इंजन]] और [[गोडोट (गेम इंजन)]] में तेजी से [[नोड-आधारित संपादक]] सम्मलित होते हैं जो वास्तविक कोड की आवश्यकता के बिना शेडर बना सकते हैं; उपयोगकर्ता को इसके अतिरिक्तकनेक्टेड नोड्स के एक [[निर्देशित ग्राफ]] के साथ प्रस्तुत किया जाता है जो उपयोगकर्ताओं को विभिन्न बनावट, नक्शे और गणितीय कार्यों को फैलाने वाले रंग, स्पेक्युलर रंग और तीव्रता जैसे आउटपुट मानों में निर्देशित करने की अनुमति देता है। स्वचालित संकलन तब ग्राफ़ को वास्तविक, संकलित शेडर में बदल देता है। | ||
== यह भी देखें == | == यह भी देखें == | ||
* जीएलएसएल | * जीएलएसएल | ||
Revision as of 16:08, 24 March 2023
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
(Learn how and when to remove this template message)
|
कंप्यूटर चित्रलेख में, एक शेडर एक कंप्यूटर प्रोग्राम है जो एक 3डी दृश्य के प्रतिपादन (कंप्यूटर ग्राफिक्स) के दौरान प्रकाश, अंधेरे और रंग के उचित स्तर की गणना करता है - एक प्रक्रिया जिसे छायांकन के रूप में जाना जाता है। कंप्यूटर ग्राफिक्स विशेष प्रभाव और वीडियो पोस्ट-प्रोसेसिंग के साथ-साथ ग्राफिक्स प्रोसेसिंग इकाइयों पर सामान्य-उद्देश्य कंप्यूटिंग में विभिन्न प्रकार के विशेष कार्य करने के लिए शेडर्स विकसित हुए हैं।
पारंपरिक शेडर्स उच्च स्तर के लचीलेपन के साथ ग्राफिक्स हार्डवेयर पर रेंडरिंग प्रभाव की गणना करते हैं। अधिकांश शेडर्स को ग्राफ़िक्स प्रोसेसिंग युनिट (जीपीयू) के लिए कोडित (और चालू) किया जाता है,[1] चूंकि यह एक सख्त आवश्यकता नहीं है। जीपीयू की रेंडरिंग पाइपलाइन को प्रोग्राम करने के लिए छायांकन भाषाओं का उपयोग किया जाता है, जिसने ज्यादातर अतीत की फिक्स्ड-फ़ंक्शन पाइपलाइन को हटा दिया है जो केवल सामान्य ज्यामिति रूपांतरण और पिक्सेल-छायांकन कार्यों के लिए अनुमति देता है; शेडर्स के साथ, अनुकूलित प्रभावों का उपयोग किया जा सकता है।अंतिम रूप से प्रदान की गई छवि के निर्माण के लिए उपयोग किए जाने वाले सभी पिक्सेल, कोने और/या बनावट की स्थिति और रंग (ह्यू, रंगीनपन, चमक, और कंट्रास्ट (दृष्टि)) को एक शेडर में परिभाषित कलन विधि का उपयोग करके बदला