शेडर: Difference between revisions
From Vigyanwiki
No edit summary |
|||
| (58 intermediate revisions by 4 users not shown) | |||
| Line 1: | Line 1: | ||
{{Short description|Type of program in a graphical processing unit (GPU)}} | {{Short description|Type of program in a graphical processing unit (GPU)}} | ||
{{Use mdy dates|date=October 2020}} | {{Use mdy dates|date=October 2020}}[[File:Phong-shading-sample (cropped).jpg|thumb|upright=1.3|[[ 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> चूंकि इसकि एक सख्त आवश्यकता नहीं है। जीपीयू की [[रेंडरिंग पाइपलाइन]] को प्रोग्राम करने के लिए छायांकन भाषाओं का उपयोग किया जाता है, जिसने अधिकतर व्यतीत की [[फिक्स्ड-फ़ंक्शन पाइपलाइन]] को हटा दिया है जो केवल सामान्य ज्यामिति रूपांतरण और [[पिक्सेल]]-छायांकन कार्यों के लिए अनुमति देता है; शेडर्स के साथ, अनुकूलित प्रभावों का उपयोग किया जा सकता है। अंतिम रूप से प्रदान की गई छवि के निर्माण के लिए उपयोग किए जाने वाले सभी पिक्सेल, वर्टेक्स या टेक्सचर की स्थिति और रंग (ह्यू, [[ रंगीनपन |रंगीनपन]], [[ चमक |चमक,]] और [[कंट्रास्ट (दृष्टि)]]) को एक शेडर में परिभाषित [[कलन विधि]] का उपयोग करके परवर्तीत किया जा सकता है, और कंप्यूटर प्रोग्राम द्वारा शेडर को कॉलिंग करने वाले बाहरी [[चर (कंप्यूटर विज्ञान)]] या बनावट द्वारा संशोधित किया जा सकता है। | ||
[[फिल्म निर्माण]] [[पोस्ट प्रोसेसिंग (छवियां)]], कंप्यूटर-जनित इमेजरी और [[वीडियो गेम]] में कई तरह के प्रभाव पैदा करने के लिए शेडर्स का व्यापक रूप से उपयोग किया जाता है। | [[फिल्म निर्माण]] [[पोस्ट प्रोसेसिंग (छवियां)]], कंप्यूटर-जनित इमेजरी और [[वीडियो गेम]] में कई तरह के प्रभाव पैदा करने के लिए शेडर्स का व्यापक रूप से उपयोग किया जाता है। साधारण प्रकाश प्रतिरूप के अतिरिक्त, शेडर्स के अधिक जटिल उपयोगों में सम्मलित हैं: एक छवि के रंग, संतृप्ति, चमक (एचएसएल / एचएसवी) या छवि के बनावट (दृष्टि) को बदलना; [[डिफोकस विपथन]], [[ हल्का खिलना |हल्का खिलना]], [[वॉल्यूमेट्रिक लाइटिंग]], [[ साधारण मानचित्रण |साधारण मानचित्रण]] (डेप्थ इफेक्ट्स के लिए), [[ 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> | ||
जैसे-जैसे ग्राफिक्स प्रोसेसिंग यूनिट विकसित हुई, [[OpenGL|ओपन जीएल]] और [[Direct3D]] जैसी प्रमुख ग्राफिक्स [[सॉफ्टवेयर पुस्तकालय]] ने शेडर्स का समर्थन करना शुरू कर दिया। पहला शेडर-सक्षम जीपीयू केवल [[पिक्सेल छायांकन]] का समर्थन करता था, लेकिन डेवलपर्स को शेडर्स की शक्ति का एहसास होने के | जैसे-जैसे ग्राफिक्स प्रोसेसिंग यूनिट विकसित हुई, [[OpenGL|ओपन जीएल]] और [[Direct3D|डायरेक्ट 3 डी]] जैसी प्रमुख ग्राफिक्स [[सॉफ्टवेयर पुस्तकालय]] ने शेडर्स का समर्थन करना शुरू कर दिया। पहला शेडर-सक्षम जीपीयू केवल [[पिक्सेल छायांकन]] का समर्थन करता था, लेकिन डेवलपर्स को शेडर्स की शक्ति का एहसास होने के पश्चात [[वर्टेक्स शेडर्स]] जल्दी से प्रस्तुत किए गए। प्रोग्रामेबल पिक्सेल शेडर वाला पहला वीडियो कार्ड एनवीडिया [[GeForce 3|जीईफ़ोर्स 3]] (एनवी 20) था, जिसे 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 और ओपन जीएल 3.2 के साथ प्रस्तुत किया गया था। आखिरकार, ग्राफिक्स हार्डवेयर एक [[एकीकृत शेडर मॉडल]] की ओर विकसित हुआ। | ||
== डिजाइन == | == डिजाइन == | ||
शेडर्स सरल प्रोग्राम हैं जो वर्टेक्स (कंप्यूटर ग्राफिक्स) या पिक्सेल के लक्षणों का वर्णन करते हैं। वर्टेक्स शेडर्स एक वर्टेक्स की विशेषताओं (स्थिति, बनावट मानचित्रण, रंग, आदि) का वर्णन करते हैं, जबकि पिक्सेल शेड्स एक पिक्सेल के लक्षणों (रंग, [[z-बफरिंग|जेड-बफरिंग]], जेड-गहराई और [[अल्फा रचना|अल्फा मान]] ) का वर्णन करते हैं। एक [[ज्यामितीय आदिम]] (संभवतः [[टेसलेशन (कंप्यूटर ग्राफिक्स)]] के | शेडर्स सरल प्रोग्राम हैं जो वर्टेक्स (कंप्यूटर ग्राफिक्स) या पिक्सेल के लक्षणों का वर्णन करते हैं। वर्टेक्स शेडर्स एक वर्टेक्स की विशेषताओं (स्थिति, बनावट मानचित्रण, रंग, आदि) का वर्णन करते हैं, जबकि पिक्सेल शेड्स एक पिक्सेल के लक्षणों (रंग, [[z-बफरिंग|जेड-बफरिंग]], जेड-गहराई और [[अल्फा रचना|अल्फा मान]] ) का वर्णन करते हैं। एक [[ज्यामितीय आदिम]] (संभवतः [[टेसलेशन (कंप्यूटर ग्राफिक्स)]] के पश्चात) में प्रत्येक शीर्ष के लिए एक वर्टेक्स शेडर बुलाया जाता है; इस प्रकार एक वर्टेक्स इन, एक (अपडेटेड) वर्टेक्स आउट होता है। प्रत्येक शीर्ष को तब एक सतह (मेमोरी के ब्लॉक) पर पिक्सेल की एक श्रृंखला के रूप में प्रस्तुत किया जाता है जो अंततः स्क्रीन पर भेजा जाएग। | ||
शेडर्स ग्राफिक्स हार्डवेयर के एक | शेडर्स ग्राफिक्स हार्डवेयर के एक भाग को प्रतिस्थापित करते हैं जिसे सामान्यतः फिक्स्ड फलन पाइपलाइन (एफएफपी) कहा जाता है, तथाकथित क्योंकि यह हार्ड-कोडेड तरीके से [[कंप्यूटर ग्राफिक्स प्रकाश]] और [[ बनावट का मानचित्रण |बनावट का मानचित्रण]] बनाता है। शेडर्स इस हार्ड-कोडेड दृष्टिकोण के लिए प्रोग्राम करने योग्य विकल्प प्रदान करते हैं।<ref>{{cite web|url=http://www.directx.com/shader/|title=शेडरवर्क्स का अपडेट - डायरेक्टएक्स ब्लॉग|date=August 13, 2003}}</ref> | ||
मूल [[ग्राफिक्स पाइपलाइन]] इस प्रकार है: | मूल [[ग्राफिक्स पाइपलाइन]] इस प्रकार है: | ||
| Line 31: | Line 25: | ||
* परिकलित की गई ज्यामिति त्रिकोणीय है (त्रिकोणों में उप-विभाजित)। | * परिकलित की गई ज्यामिति त्रिकोणीय है (त्रिकोणों में उप-विभाजित)। | ||
* त्रिकोणों को फ़्रैगमेंट क्वाड्स में विभाजित किया गया है (एक फ़्रैगमेंट क्वाड 2 × 2 फ़्रैगमेंट प्रिमिटिव है)। | * त्रिकोणों को फ़्रैगमेंट क्वाड्स में विभाजित किया गया है (एक फ़्रैगमेंट क्वाड 2 × 2 फ़्रैगमेंट प्रिमिटिव है)। | ||
* [[ खंड चतुर्भुज | खंड चतुर्भुज]] | * [[ खंड चतुर्भुज | खंड चतुर्भुज]] को फ्रैगमेंट शेडर के अनुसार संशोधित किया जाता है। | ||
* | * गहनता परीक्षण किया जाता है; पास होने वाले फ़्रैगमेंट स्क्रीन पर लिखे जाएंगे और [[फ्रेम बफर]] में मिश्रित हो सकते हैं। | ||
प्रदर्शित करने के लिए त्रि-आयामी (या द्वि-आयामी) डेटा को उपयोगी द्वि-आयामी डेटा में बदलने के लिए ग्राफिक पाइपलाइन इन चरणों का उपयोग करती है। | प्रदर्शित करने के लिए त्रि-आयामी (या द्वि-आयामी) डेटा को उपयोगी द्वि-आयामी डेटा में बदलने के लिए ग्राफिक पाइपलाइन इन चरणों का उपयोग करती है। सामान्यतः, यह एक बड़ा पिक्सेल मैट्रिक्स या फ्रेम बफर होता है। | ||
== प्रकार == | == प्रकार == | ||
सामान्य उपयोग में तीन प्रकार के शेडर हैं (पिक्सेल, वर्टेक्स, और ज्योमेट्री शेडर्स), जिनमें कई और इस समय में जोड़े गए हैं। जबकि पुराने ग्राफिक्स कार्ड प्रत्येक शेडर प्रकार के लिए अलग प्रसंस्करण इकाइयों का उपयोग करते हैं, नए कार्ड में [[एकीकृत शेडर]] होते हैं जो किसी भी प्रकार के शेडर को निष्पादित करने में सक्षम होते हैं। यह ग्राफिक्स कार्ड को प्रसंस्करण शक्ति का अधिक कुशल उपयोग करने की अनुमति देता है। | |||
=== 2डी शेड्स === | === 2डी शेड्स === | ||
2डी शेड्स डिजिटल छवियों पर कार्य करते हैं, जिन्हें कंप्यूटर ग्राफिक्स के क्षेत्र में बनावट (कंप्यूटर ग्राफिक्स) भी कहा जाता है। वे पिक्सेल की विशेषताओं को संशोधित करते हैं। | 2डी शेड्स डिजिटल छवियों पर कार्य करते हैं, जिन्हें कंप्यूटर ग्राफिक्स के क्षेत्र में बनावट (कंप्यूटर ग्राफिक्स) भी कहा जाता है। वे पिक्सेल की विशेषताओं को संशोधित करते हैं। 2डी शेडर 3डी ज्यामिति के प्रतिपादन में भाग ले सकते हैं। वर्तमान में 2डी शेडर का एकमात्र प्रकार पिक्सेल शेडर है। | ||
==== पिक्सेल शेड्स ==== | ==== पिक्सेल शेड्स ==== | ||
पिक्सेल शेडर्स, जिन्हें फ़्रैगमेंट (कंप्यूटर ग्राफ़िक्स) शेडर्स के रूप में भी जाना जाता है, प्रत्येक फ़्रैगमेंट के रंग और अन्य विशेषताओं की गणना करते हैं: | पिक्सेल शेडर्स, जिन्हें फ़्रैगमेंट (कंप्यूटर ग्राफ़िक्स) शेडर्स के रूप में भी जाना जाता है, प्रत्येक "फ़्रैगमेंट" के रंग और अन्य विशेषताओं की गणना करते हैं: रेंडरिंग कार्य की एक इकाई जो अधिकतम एकल आउटपुट पिक्सेल को प्रभावित करती है। सबसे सरल प्रकार के पिक्सेल शेड्स एक रंग महत्व के रूप में एक स्क्रीन पिक्सेल का उत्पादन करते हैं; एकाधिक इनपुट/आउटपुट वाले अधिक जटिल शेड भी संभव हैं।<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डी शेड्स === | ||
3डी शेडर [[मॉडल की गिनती]] या अन्य ज्यामिति पर कार्य करते हैं, लेकिन मॉडल या [[बहुभुज जाल]] बनाने के लिए उपयोग किए जाने वाले रंगों और बनावटों तक भी पहुंच सकते हैं। वर्टेक्स शेड्स सबसे पुराने प्रकार के 3डी शेडर हैं, जो सामान्यतः प्रति-शीर्ष आधार पर संशोधन करते हैं। नए ज्योमेट्री शेड्स शेडर के भीतर से नए वर्टिकल उत्पन्न कर सकते हैं। टेस्सेलेशन शेडर नवीनतम 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> वर्टेक्स शेड्स स्थिति, रंग और बनावट निर्देशांक जैसे गुणों में अदल-बदल कर सकते हैं, लेकिन नए कोने ( द्विआधारी ग्राफ) नहीं बना सकते। वर्टेक्स शेडर का आउटपुट पाइपलाइन में अगले चरण में जाता है, जो या तो ज्यामिति शेडर है, यदि उपस्थित है, या [[रास्टेराइज़र]] है। वर्टेक्स शेडर्स 3डी मॉडल वाले किसी भी दृश्य में स्थिति, गति, प्रकाश और रंग के विवरण पर शक्तिशाली नियंत्रण सक्षम कर सकते हैं। | ||
==== ज्यामिति शेड्स ==== | ==== ज्यामिति शेड्स ==== | ||
ज्यामिति शेड्स को | ज्यामिति शेड्स को डायरेक्ट 3डी 10 और ओपन जीएल 3.2 में प्रस्तुत किया गया था; पहले एक्सटेंशन के उपयोग के साथ ओपन जीएल 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> | ||
ज्योमेट्री शेडर प्रोग्राम को वर्टेक्स शेडर्स के | ज्योमेट्री शेडर प्रोग्राम को वर्टेक्स शेडर्स के पश्चात निष्पादित किया जाता है। वे संभवतः आसन्न जानकारी के साथ इनपुट के रूप में एक संपूर्ण आदिम लेते हैं। उदाहरण के लिए, त्रिभुजों पर काम करते समय, तीन कोने ज्यामिति शेडर के इनपुट होते हैं। शेडर तब शून्य या अधिक आदिम का उत्सर्जन कर सकता है, जो रास्टेराइज़र होते हैं और उनके फ़्रैगमेंट अंततः एक पिक्सेल शेडर में पारित हो जाते हैं। | ||
ज्योमेट्री शेडर के विशिष्ट उपयोगों में पॉइंट स्प्राइट जेनरेशन, ज्योमेट्री टेसलेशन (कंप्यूटर ग्राफिक्स), [[छाया मात्रा]] एक्सट्रूज़न और [[ घन नक्शा |घन नक्शा]] के लिए सिंगल पास रेंडरिंग | ज्योमेट्री शेडर के विशिष्ट उपयोगों में पॉइंट स्प्राइट जेनरेशन, ज्योमेट्री टेसलेशन (कंप्यूटर ग्राफिक्स), [[छाया मात्रा]] एक्सट्रूज़न और [[ घन नक्शा |घन नक्शा]] के लिए सिंगल पास रेंडरिंग सम्मलित हैं। ज्यामिति शेडर्स के लाभों का एक विशिष्ट वास्तविक शब्द उदाहरण स्वत: मेश जटिलता संशोधन होगा। एक वक्र के लिए नियंत्रण बिंदुओं का प्रतिनिधित्व करने वाली रेखा स्ट्रिप्स की एक श्रृंखला ज्यामिति शेडर को पास की जाती है और आवश्यक जटिलता के आधार पर शेडर स्वचालित रूप से अतिरिक्त लाइनें उत्पन्न कर सकता है जिनमें से प्रत्येक एक वक्र का बेहतर सन्निकटन प्रदान करता है। | ||
==== टेसलेशन शेड्स ==== | ==== टेसलेशन शेड्स ==== | ||
ओपन जीएल 4.0 और डायरेक्ट 3डी 11 के अनुसार, एक नया शेडर वर्ग जिसे टेसलेशन शेडर कहा जाता है, जोड़ा गया है। यह पारंपरिक मॉडल में दो नए शेडर चरण जोड़ता है: टेसलेशन कंट्रोल शेडर्स (जिसे हल शेडर्स के रूप में भी जाना जाता है) और टेसलेशन मूल्यांकन शेडर्स (डोमेन शेडर्स के रूप में भी जाना जाता है), जो एक साथ सरल मेश को गणितीय कार्य के अनुसार रन-टाइम में उत्कृष्ट मेश में उप-विभाजित करने की अनुमति देते हैं। फ़ंक्शन विभिन्न प्रकार के चर से संबंधित हो सकता है, विशेष रूप से सक्रिय लेवल-ऑफ-डिटेल्स स्केलिंग की अनुमति देगा देखने वाले कैमरे से दूरी के लिए। यह कैमरे के करीब की वस्तुओं को उत्कृष्ट विस्तार देने की अनुमति देता है, जबकि आगे की वस्तुओं में अधिक अपरिष्कृत मेश हो सकते हैं, जो फिर भी गुणवत्ता में तुलनीय लगते हैं। यह मेमोरी से बहुत जटिल इन्ही को डाउनसैंपलिंग करने के अतिरिक्त शेडर इकाइयों के अंदर एक बार मेश को परिष्कृत करने की अनुमति देकर आवश्यक मेश बैंडविड्थ को भी काफी कम कर सकता है। कुछ एल्गोरिद्म किसी भी आर्बिट्ररी मेश को अपसैंपल कर सकते हैं, जबकि अन्य मेश में "संकेत" के लिए अनुमति देते हैं जिससे कि सबसे विशिष्ट कोने और किनारों को निर्देशित किया जा सके। | |||
==== आदिम और मेश शेड्स ==== | ==== आदिम और मेश शेड्स ==== | ||
सर्का 2017, [[ ामद वेगा |एएमडी वेगा]] [[ microआर्किटेक्चर |माइक्रोआर्किटेक्चर]] ने एक नए शेडर चरण-आदिम शेडर्स के लिए समर्थन जोड़ा - ज्यामिति को संसाधित करने के लिए आवश्यक डेटा तक पहुंच के साथ शेडर्स की गणना करने के लिए कुछ | सर्का 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> ये मेश शेड्स | 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> ये मेश शेड्स जीपीयू को अधिक जटिल एल्गोरिदम को संभालने की अनुमति देते हैं, सीपीयू से जीपीयू पर अधिक काम को लोड करते हैं, और एल्गोरिथम गहन रेंडरिंग में, परिमाण के एक क्रम से एक दृश्य में त्रिकोणों की संख्या या फ्रेम दर में वृद्धि करते हैं।<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> | ||
==== रे ट्रेसिंग शेड्स ==== | ==== रे ट्रेसिंग शेड्स ==== | ||
[[ किरण अनुरेखण (ग्राफिक्स) ]] शेड्स [[Microsoft]] द्वारा [[DirectX Raytracing]] के माध्यम से, [[Khronos Group]] द्वारा [[Vulkan (API)]], [[GLSL]], और [[SPIR-V]] द्वारा समर्थित हैं,<ref>{{cite web |url=https://www.khronos.org/blog/vulkan-ray-tracing-final-specification-release |title=वल्कन रे ट्रेसिंग फाइनल स्पेसिफिकेशंस रिलीज़|date=2020-11-23 |df=mdy |department=Blog |website=[[Khronos Group]] |access-date=2021-02-22}}</ref> | [[ किरण अनुरेखण (ग्राफिक्स) | किरण अनुरेखण (ग्राफिक्स)]] शेड्स [[Microsoft|माइक्रोसॉफ्ट]] द्वारा [[DirectX Raytracing|डायरेक्टएक्स रेट्रेसिंग]] के माध्यम से, [[Khronos Group|क्रोनोस समूह]] द्वारा [[Vulkan (API)|वल्कन (एपीआई)]], [[GLSL|जीएलएसएल]], और [[SPIR-V|एसपीआईआर-वी]] द्वारा समर्थित हैं,<ref>{{cite web |url=https://www.khronos.org/blog/vulkan-ray-tracing-final-specification-release |title=वल्कन रे ट्रेसिंग फाइनल स्पेसिफिकेशंस रिलीज़|date=2020-11-23 |df=mdy |department=Blog |website=[[Khronos Group]] |access-date=2021-02-22}}</ref> एप्प्ल द्वारा [[धातु (एपीआई)]] के माध्यम से। | ||
=== [[कंप्यूट शेडर]] | === [[कंप्यूट शेडर]]स === | ||
कंप्यूट शेडर्स ग्राफिक्स अनुप्रयोगों तक ही सीमित नहीं हैं, | कंप्यूट शेडर्स ग्रा | ||