शेडर: Difference between revisions
No edit summary |
|||
(53 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> एप्प्ल द्वारा [[धातु (एपीआई)]] के माध्यम से। | ||
=== [[कंप्यूट शेडर]] | === [[कंप्यूट शेडर]]स === | ||
कंप्यूट शेडर्स ग्राफिक्स अनुप्रयोगों तक ही सीमित नहीं हैं, | कंप्यूट शेडर्स ग्राफिक्स अनुप्रयोगों तक ही सीमित नहीं हैं, बल्कि [[जीपीजीपीयू]] के लिए समान निष्पादन संसाधनों का उपयोग करते हैं। उनका उपयोग ग्राफिक्स पाइपलाइनों में किया जा सकता है उदाहरण एनिमेशन या लाइटिंग एल्गोरिदम में अतिरिक्त चरणों के लिए (उदाहरण के लिए [[टाइल किए गए आगे प्रतिपादन]])। कुछ रेंडरिंग एपीआई कंप्यूट शेडर्स को ग्राफिक्स पाइपलाइन के साथ डेटा संसाधनों को आसानी से साझा करने की अनुमति देते हैं। | ||
== समानांतर प्रसंस्करण == | == समानांतर प्रसंस्करण == | ||
शेडर्स को एक समय में | शेडर्स को एक समय में मूल तत्त्वों के एक बड़े समूह में परिवर्तन लागू करने के लिए लिखा जाता है, उदाहरण के लिए, स्क्रीन के एक क्षेत्र में प्रत्येक पिक्सेल के लिए, या किसी मॉडल के प्रत्येक शीर्ष के लिए। यह [[समानांतर कंप्यूटिंग]] के लिए उपयुक्त है, और अधिकांश आधुनिक जीपीयू में इसे सुविधाजनक बनाने के लिए कई शेडर पाइपलाइन हैं, जो गणना थ्रूपुट में काफी सुधार करते हैं। | ||
शेडर्स के साथ एक प्रोग्रामिंग मॉडल प्रतिपादन के लिए एक उच्च क्रम फ़ंक्शन के समान है, शेडर्स को तर्कों के रूप में लेना, और मध्यवर्ती परिणामों के बीच एक विशिष्ट [[डेटा प्रवाह]] प्रदान करना, दोनों डेटा | शेडर्स के साथ एक प्रोग्रामिंग मॉडल प्रतिपादन के लिए एक उच्च क्रम फ़ंक्शन के समान है, शेडर्स को तर्कों के रूप में लेना, और मध्यवर्ती परिणामों के बीच एक विशिष्ट [[डेटा प्रवाह]] प्रदान करना, दोनों डेटा समांतरता (पिक्सेल, कोने आदि में) और पाइपलाइन समांतरता (चरणों के बीच) को सक्षम करना। | ||
== प्रोग्रामिंग == | == प्रोग्रामिंग == | ||
जिस भाषा में शेडर प्रोग्राम किए जाते हैं वह लक्षित वातावरण पर निर्भर करता है। आधिकारिक | जिस भाषा में शेडर प्रोग्राम किए जाते हैं वह लक्षित वातावरण पर निर्भर करता है। आधिकारिक ओपन जीएल और [[OpenGL ES|ओपनजीएल ईएस]] छायांकन भाषा ओपनजीएल ईएस छायांकन भाषा है, जिसे जीएलएसएल के रूप में भी जाना जाता है, और आधिकारिक डायरेक्ट 3डी छायांकन भाषा [[HLSL|उच्च स्तरीय छायांकन भाषा]] है, जिसे एचएलएसएल के रूप में भी जाना जाता है। [[सीजी (प्रोग्रामिंग भाषा)]], एक तृतीय-पक्ष छायांकन भाषा जो ओपनजीएल और डायरेक्ट 3डी शेडर्स दोनों को आउटपुट करती है, [[NVIDIA|एनवीडिया]] द्वारा विकसित की गई थी; यद्यपि 2012 से इसे हटा दिया गया है। एप्प्ल ने [[Metal (iOS API)|मेटल (आईओएस एपीआई)]] के भाग के रूप में मेटल शेडिंग भाषा नामक अपनी स्वयं की छायांकन भाषा जारी की। | ||
=== जीयूआई शेडर संपादक === | === जीयूआई शेडर संपादक === | ||
एकता, [[अवास्तविक इंजन]] और [[गोडोट (गेम इंजन)]] जैसे आधुनिक [[वीडियो गेम]] विकास प्लेटफार्मों में तेजी से [[नोड-आधारित संपादक]] सम्मलित होते हैं जो वास्तविक कोड की आवश्यकता के बिना शेडर बना सकते हैं; उपयोगकर्ता को इसके अतिरिक्त कनेक्टेड नोड्स के एक [[निर्देशित ग्राफ]] के साथ प्रस्तुत किया जाता है जो उपयोगकर्ताओं को विभिन्न बनावट, नक्शे और गणितीय कार्यों को फैलाने वाले रंग, विशिष्ट रंग और तीव्रता, खुरदरापन / धात्विकता, ऊंचाई, सामान्य, और इसी तरह आउटपुट मानों में निर्देशित करने की अनुमति देता है। स्वचालित संकलन तब ग्राफ़ को वास्तविक, संकलित शेडर में बदल देता है। | |||
== यह भी देखें == | == यह भी देखें == | ||
* जीएलएसएल | * जीएलएसएल | ||
Line 108: | Line 97: | ||
== बाहरी संबंध == | == बाहरी संबंध == | ||
* [http://www.opengl.org/registry/specs/EXT/geometry_shader4.txt | * [http://www.opengl.org/registry/specs/EXT/geometry_shader4.txt ओपन जीएल ज्यामिति शेडर एक्सटेंशन] | ||
* [http://www.riemers.net/eng/Tutorials/DirectX/Csharp/series3.php | * [http://www.riemers.net/eng/Tutorials/DirectX/Csharp/series3.php रीमर का डायरेक्टएक्स और एचएलएसएल ट्यूटोरियल]: ''HLSL Tutorial using DirectX with much sample code'' | ||
* [http://msdn2.microsoft.com/en-us/library/bb205123.aspx | * [http://msdn2.microsoft.com/en-us/library/bb205123.aspx पाइपलाइन चरण (डायरेक्ट 3 डी 10)] | ||
{{Authority control}} | {{Authority control}} | ||
[[Category: | [[Category:CS1 English-language sources (en)]] | ||
[[Category:Created On 14/03/2023]] | [[Category:Created On 14/03/2023]] | ||
[[Category:Lua-based templates]] | |||
[[Category:Machine Translated Page]] | |||
[[Category:Pages with broken file links]] | |||
[[Category:Pages with script errors]] | |||
[[Category:Templates Vigyan Ready]] | |||
[[Category:Templates that add a tracking category]] | |||
[[Category:Templates that generate short descriptions]] | |||
[[Category:Templates using TemplateData]] | |||
[[Category:Use mdy dates from October 2020]] | |||
[[Category:लकीर खींचने की क्रिया]] |
Latest revision as of 18:42, 21 April 2023
कंप्यूटर चित्रलेख में, एक शेडर एक कंप्यूटर प्रोग्राम है जो एक 3डी दृश्य के प्रतिपादन (कंप्यूटर ग्राफिक्स) के दौरान प्रकाश, अंधेरे और रंग के उचित स्तर की गणना करता है - एक प्रक्रिया जिसे छायांकन के रूप में जाना जाता है। कंप्यूटर ग्राफिक्स विशेष प्रभाव और वीडियो पोस्ट-प्रोसेसिंग के साथ-साथ ग्राफिक्स प्रोसेसिंग इकाइयों पर सामान्य-उद्देश्य कंप्यूटिंग में विभिन्न प्रकार के विशेष कार्य करने के लिए शेडर्स विकसित हुए हैं।
पारंपरिक शेडर्स उच्च स्तर के सुनम्यता के साथ ग्राफिक्स हार्डवेयर पर रेंडरिंग प्रभाव की गणना करते हैं। अधिकांश शेडर्स को ग्राफ़िक्स प्रोसेसिंग युनिट (जीपीयू) के लिए कोडित (और चालू) किया जाता है,[1] चूंकि इसकि एक सख्त आवश्यकता नहीं है। जीपीयू की रेंडरिंग पाइपलाइन को प्रोग्राम करने के लिए छायांकन भाषाओं का उपयोग किया जाता है, जिसने अधिकतर व्यतीत की फिक्स्ड-फ़ंक्शन पाइपलाइन को हटा दिया है जो केवल सामान्य ज्यामिति रूपांतरण और पिक्सेल-छायांकन कार्यों के लिए अनुमति देता है; शेडर्स के साथ, अनुकूलित प्रभावों का उपयोग किया जा सकता है। अंतिम रूप से प्रदान की गई छवि के निर्माण के लिए उपयोग किए जाने वाले सभी पिक्सेल, वर्टेक्स या टेक्सचर की स्थिति और रंग (ह्यू, रंगीनपन, चमक, और कंट्रास्ट (दृष्टि)) को एक शेडर में परिभाषित कलन विधि का उपयोग करके परवर्तीत किया जा सकता है, और कंप्यूटर प्रोग्राम द्वारा शेडर को कॉलिंग करने वाले बाहरी चर (कंप्यूटर विज्ञान) या बनावट द्वारा संशोधित किया जा सकता है।
फिल्म निर्माण पोस्ट प्रोसेसिंग (छवियां), कंप्यूटर-जनित इमेजरी और वीडियो गेम में कई तरह के प्रभाव पैदा करने के लिए शेडर्स का व्यापक रूप से उपयोग किया जाता है। साधारण प्रकाश प्रतिरूप के अतिरिक्त, शेडर्स के अधिक जटिल उपयोगों में सम्मलित हैं: एक छवि के रंग, संतृप्ति, चमक (एचएसएल / एचएसवी) या छवि के बनावट (दृष्टि) को बदलना; डिफोकस विपथन, हल्का खिलना, वॉल्यूमेट्रिक लाइटिंग, साधारण मानचित्रण (डेप्थ इफेक्ट्स के लिए), बोकेह, सार्डिन को मापना, पोस्टराइजेशन, उभार का मानचित्रण, डिस्टॉर्शन (ऑप्टिक्स), क्रोमा कीइंग (तथाकथितहरा पर्दा प्रभाव के लिए), किनारे का पता लगाना और मोशन डिटेक्शन, जैसे साथ ही साइकेडेलिया प्रभाव जैसे कि डेमोसीन में देखे गए है।
इतिहास
"शेडर" शब्द के इस प्रयोग को पिक्सर द्वारा उनके रेंडरमैन इंटरफ़ेस विशिष्टता के संस्करण 3.0 के साथ सार्वजनिक के लिए प्रस्तुत किया गया था, जो मूल रूप से मई 1988 में प्रकाशित हुआ था।[2]
जैसे-जैसे ग्राफिक्स प्रोसेसिंग यूनिट विकसित हुई, ओपन जीएल और डायरेक्ट 3 डी जैसी प्रमुख ग्राफिक्स सॉफ्टवेयर पुस्तकालय ने शेडर्स का समर्थन करना शुरू कर दिया। पहला शेडर-सक्षम जीपीयू केवल पिक्सेल छायांकन का समर्थन करता था, लेकिन डेवलपर्स को शेडर्स की शक्ति का एहसास होने के पश्चात वर्टेक्स शेडर्स जल्दी से प्रस्तुत किए गए। प्रोग्रामेबल पिक्सेल शेडर वाला पहला वीडियो कार्ड एनवीडिया जीईफ़ोर्स 3 (एनवी 20) था, जिसे 2001 में जारी किया गया था।[3] ज्यामिति शेड्स को डायरेक्ट 3 डी 10 और ओपन जीएल 3.2 के साथ प्रस्तुत किया गया था। आखिरकार, ग्राफिक्स हार्डवेयर एक एकीकृत शेडर मॉडल की ओर विकसित हुआ।
डिजाइन
शेडर्स सरल प्रोग्राम हैं जो वर्टेक्स (कंप्यूटर ग्राफिक्स) या पिक्सेल के लक्षणों का वर्णन करते हैं। वर्टेक्स शेडर्स एक वर्टेक्स की विशेषताओं (स्थिति, बनावट मानचित्रण, रंग, आदि) का वर्णन करते हैं, जबकि पिक्सेल शेड्स एक पिक्सेल के लक्षणों (रंग, जेड-बफरिंग, जेड-गहराई और अल्फा मान ) का वर्णन करते हैं। एक ज्यामितीय आदिम (संभवतः टेसलेशन (कंप्यूटर ग्राफिक्स) के पश्चात) में प्रत्येक शीर्ष के लिए एक वर्टेक्स शेडर बुलाया जाता है; इस प्रकार एक वर्टेक्स इन, एक (अपडेटेड) वर्टेक्स आउट होता है। प्रत्येक शीर्ष को तब एक सतह (मेमोरी के ब्लॉक) पर पिक्सेल की एक श्रृंखला के रूप में प्रस्तुत किया जाता है जो अंततः स्क्रीन पर भेजा जाएग।
शेडर्स ग्राफिक्स हार्डवेयर के एक भाग को प्रतिस्थापित करते हैं जिसे सामान्यतः फिक्स्ड फलन पाइपलाइन (एफएफपी) कहा जाता है, तथाकथित क्योंकि यह हार्ड-कोडेड तरीके से कंप्यूटर ग्राफिक्स प्रकाश और बनावट का मानचित्रण बनाता है। शेडर्स इस हार्ड-कोडेड दृष्टिकोण के लिए प्रोग्राम करने योग्य विकल्प प्रदान करते हैं।[4]
मूल ग्राफिक्स पाइपलाइन इस प्रकार है:
- सीपीयू ग्राफिक्स कार्ड पर स्थित ग्राफिक्स प्रोसेसिंग यूनिट को निर्देश (संकलित छायांकन भाषा कार्यक्रम) और ज्यामिति डेटा भेजता है।
- वर्टेक्स शेडर के भीतर, ज्यामिति रूपांतरित हो जाती है।
- यदि एक ज्यामिति शेडर ग्राफिक प्रोसेसिंग यूनिट में है और सक्रिय है, तो दृश्य में ज्यामिति के कुछ परिवर्तन किए जाते हैं।
- यदि एक टेसलेशन शेडर ग्राफिक प्रोसेसिंग यूनिट में है और सक्रिय है, तो दृश्य में ज्यामितीय उपखंड (कंप्यूटर ग्राफिक्स) को उप-विभाजित किया जा सकता है।
- परिकलित की गई ज्यामिति त्रिकोणीय है (त्रिकोणों में उप-विभाजित)।
- त्रिकोणों को फ़्रैगमेंट क्वाड्स में विभाजित किया गया है (एक फ़्रैगमेंट क्वाड 2 × 2 फ़्रैगमेंट प्रिमिटिव है)।
- खंड चतुर्भुज को फ्रैगमेंट शेडर के अनुसार संशोधित किया जाता है।
- गहनता परीक्षण किया जाता है; पास होने वाले फ़्रैगमेंट स्क्रीन पर लिखे जाएंगे और फ्रेम बफर में मिश्रित हो सकते हैं।
प्रदर्शित करने के लिए त्रि-आयामी (या द्वि-आयामी) डेटा को उपयोगी द्वि-आयामी डेटा में बदलने के लिए ग्राफिक पाइपलाइन इन चरणों का उपयोग करती है। सामान्यतः, यह एक बड़ा पिक्सेल मैट्रिक्स या फ्रेम बफर होता है।
प्रकार
सामान्य उपयोग में तीन प्रकार के शेडर हैं (पिक्सेल, वर्टेक्स, और ज्योमेट्री शेडर्स), जिनमें कई और इस समय में जोड़े गए हैं। जबकि पुराने ग्राफिक्स कार्ड प्रत्येक शेडर प्रकार के लिए अलग प्रसंस्करण इकाइयों का उपयोग करते हैं, नए कार्ड में एकीकृत शेडर होते हैं जो किसी भी प्रकार के शेडर को निष्पादित करने में सक्षम होते हैं। यह ग्राफिक्स कार्ड को प्रसंस्करण शक्ति का अधिक कुशल उपयोग करने की अनुमति देता है।
2डी शेड्स
2डी शेड्स डिजिटल छवियों पर कार्य करते हैं, जिन्हें कंप्यूटर ग्राफिक्स के क्षेत्र में बनावट (कंप्यूटर ग्राफिक्स) भी कहा जाता है। वे पिक्सेल की विशेषताओं को संशोधित करते हैं। 2डी शेडर 3डी ज्यामिति के प्रतिपादन में भाग ले सकते हैं। वर्तमान में 2डी शेडर का एकमात्र प्रकार पिक्सेल शेडर है।
पिक्सेल शेड्स
पिक्सेल शेडर्स, जिन्हें फ़्रैगमेंट (कंप्यूटर ग्राफ़िक्स) शेडर्स के रूप में भी जाना जाता है, प्रत्येक "फ़्रैगमेंट" के रंग और अन्य विशेषताओं की गणना करते हैं: रेंडरिंग कार्य की एक इकाई जो अधिकतम एकल आउटपुट पिक्सेल को प्रभावित करती है। सबसे सरल प्रकार के पिक्सेल शेड्स एक रंग महत्व के रूप में एक स्क्रीन पिक्सेल का उत्पादन करते हैं; एकाधिक इनपुट/आउटपुट वाले अधिक जटिल शेड भी संभव हैं।[5] पिक्सेल शेड्स में हमेशा एक ही रंग के आउटपुट से लेकर लाइटिंग वैल्यू लागू करने, बम्प मैपिंग, शैडो, स्पेक्युलर हाइलाइट्स, पारदर्शता और अन्य घटनाएं होती हैं। वे फ़्रैगमेंट की गहनता (जेड-बफरिंग के लिए) को बदल सकते हैं, यदि एकाधिक रेंडर लक्ष्य सक्रिय हैं तो एक से अधिक रंग आउटपुट कर सकते हैं। 3डी ग्राफिक्स में, एक पिक्सेल शेडर अकेले कुछ प्रकार के जटिल प्रभाव उत्पन्न नहीं कर सकता है क्योंकि यह दृश्य की ज्यामिति (अर्थात वर्टेक्स डेटा) के ज्ञान के बिना केवल एक ही फ़्रैगमेंट पर काम करता है। चूंकि, पिक्सेल शेडर्स को स्क्रीन निर्देशांक तैयार करने का ज्ञान होता है, और यदि पूरी स्क्रीन की सामग्री शेडर को बनावट के रूप में पारित की जाती है तो स्क्रीन और आस-पास के पिक्सेल का प्रतिरूप ले सकते हैं। यह तकनीक गौस्सियन धुंधलापन, कार्टून/सीएल शेडर्स के लिए ब्लर, या एज डिटेक्शन/एन्हांसमेंट जैसे द्वि-आयामी पोस्टप्रोसेसिंग प्रभावों की एक विस्तृत विविधता को सक्षम कर सकती है। ग्राफिक्स पाइपलाइन में किसी भी दो-आयामी छवियों- स्प्राइट (कंप्यूटर ग्राफिक्स) या बनावट (कंप्यूटर ग्राफिक्स) के मध्यवर्ती चरणों में पिक्सेल शेडर्स को भी लागू किया जा सकता है, जबकि वर्टेक्स शेडर्स को हमेशा 3डी दृश्य की आवश्यकता होती है। उदाहरण के लिए, एक पिक्सेल शेडर एकमात्र प्रकार का शेडर है जो वीडियो पोस्टप्रोसेसिंग के रूप में कार्य कर सकता है या विडियो स्ट्रीम के लिए वीडियो फिल्टर करने के पश्चात इसे रास्टराइज़ कर सकता है।
3डी शेड्स
3डी शेडर मॉडल की गिनती या अन्य ज्यामिति पर कार्य करते हैं, लेकिन मॉडल या बहुभुज जाल बनाने के लिए उपयोग किए जाने वाले रंगों और बनावटों तक भी पहुंच सकते हैं। वर्टेक्स शेड्स सबसे पुराने प्रकार के 3डी शेडर हैं, जो सामान्यतः प्रति-शीर्ष आधार पर संशोधन करते हैं। नए ज्योमेट्री शेड्स शेडर के भीतर से नए वर्टिकल उत्पन्न कर सकते हैं। टेस्सेलेशन शेडर नवीनतम 3डी शेडर हैं; वे विवरण जोड़ने के लिए एक साथ शीर्षों के बैचों पर कार्य करते हैं—जैसे कि किसी मॉडल को त्रिभुजों के छोटे समूहों में उप-विभाजित करना या रनटाइम पर अन्य आदिम, घटता और टक्कर जैसी चीज़ों को सुधारने के लिए, या अन्य विशेषताओं को बदलने के लिए।
वर्टेक्स शेड्स
वर्टेक्स शेड्स सबसे स्थापित और सामान्य प्रकार के 3डी शेडर हैं और ग्राफिक्स प्रोसेसर को दिए गए प्रत्येक वर्टेक्स (कंप्यूटर ग्राफिक्स) के लिए एक बार चलाए जाते हैं। इसका उद्देश्य वर्चुअल स्पेस में प्रत्येक वर्टेक्स की 3डी स्थिति को 2डी समन्वय में बदलना है, जिस पर यह स्क्रीन पर दिखाई देता है (साथ ही जेड-बफर के लिए गहराई मान)।[6] वर्टेक्स शेड्स स्थिति, रंग और बनावट निर्देशांक जैसे गुणों में अदल-बदल कर सकते हैं, लेकिन नए कोने ( द्विआधारी ग्राफ) नहीं बना सकते। वर्टेक्स शेडर का आउटपुट पाइपलाइन में अगले चरण में जाता है, जो या तो ज्यामिति शेडर है, यदि उपस्थित है, या रास्टेराइज़र है। वर्टेक्स शेडर्स 3डी मॉडल वाले किसी भी दृश्य में स्थिति, गति, प्रकाश और रंग के विवरण पर शक्तिशाली नियंत्रण सक्षम कर सकते हैं।
ज्यामिति शेड्स
ज्यामिति शेड्स को डायरेक्ट 3डी 10 और ओपन जीएल 3.2 में प्रस्तुत किया गया था; पहले एक्सटेंशन के उपयोग के साथ ओपन जीएल 2.0+ में उपलब्ध था।[7] इस प्रकार के शेडर उन आदिम से नए ग्राफिक्स आदिम (ज्यामिति) उत्पन्न कर सकता है, जैसे कि बिंदु, रेखाएँ और त्रिकोण, जो ग्राफिक्स पाइपलाइन की शुरुआत में भेजे गए थे।[8]
ज्योमेट्री शेडर प्रोग्राम को वर्टेक्स शेडर्स के पश्चात निष्पादित किया जाता है। वे संभवतः आसन्न जानकारी के साथ इनपुट के रूप में एक संपूर्ण आदिम लेते हैं। उदाहरण के लिए, त्रिभुजों पर काम करते समय, तीन कोने ज्यामिति शेडर के इनपुट होते हैं। शेडर तब शून्य या अधिक आदिम का उत्सर्जन कर सकता है, जो रास्टेराइज़र होते हैं और उनके फ़्रैगमेंट अंततः एक पिक्सेल शेडर में पारित हो जाते हैं।
ज्योमेट्री शेडर के विशिष्ट उपयोगों में पॉइंट स्प्राइट जेनरेशन, ज्योमेट्री टेसलेशन (कंप्यूटर ग्राफिक्स), छाया मात्रा एक्सट्रूज़न और घन नक्शा के लिए सिंगल पास रेंडरिंग सम्मलित हैं। ज्यामिति शेडर्स के लाभों का एक विशिष्ट वास्तविक शब्द उदाहरण स्वत: मेश जटिलता संशोधन होगा। एक वक्र के लिए नियंत्रण बिंदुओं का प्रतिनिधित्व करने वाली रेखा स्ट्रिप्स की एक श्रृंखला ज्यामिति शेडर को पास की जाती है और आवश्यक जटिलता के आधार पर शेडर स्वचालित रूप से अतिरिक्त लाइनें उत्पन्न कर सकता है जिनमें से प्रत्येक एक वक्र का बेहतर सन्निकटन प्रदान करता है।
टेसलेशन शेड्स
ओपन जीएल 4.0 और डायरेक्ट 3डी 11 के अनुसार, एक नया शेडर वर्ग जिसे टेसलेशन शेडर कहा जाता है, जोड़ा गया है। यह पारंपरिक मॉडल में दो नए शेडर चरण जोड़ता है: टेसलेशन कंट्रोल शेडर्स (जिसे हल शेडर्स के रूप में भी जाना जाता है) और टेसलेशन मूल्यांकन शेडर्स (डोमेन शेडर्स के रूप में भी जाना जाता है), जो एक साथ सरल मेश को गणितीय कार्य के अनुसार रन-टाइम में उत्कृष्ट मेश में उप-विभाजित करने की अनुमति देते हैं। फ़ंक्शन विभिन्न प्रकार के चर से संबंधित हो सकता है, विशेष रूप से सक्रिय लेवल-ऑफ-डिटेल्स स्केलिंग की अनुमति देगा देखने वाले कैमरे से दूरी के लिए। यह कैमरे के करीब की वस्तुओं को उत्कृष्ट विस्तार देने की अनुमति देता है, जबकि आगे की वस्तुओं में अधिक अपरिष्कृत मेश हो सकते हैं, जो फिर भी गुणवत्ता में तुलनीय लगते हैं। यह मेमोरी से बहुत जटिल इन्ही को डाउनसैंपलिंग करने के अतिरिक्त शेडर इकाइयों के अंदर एक बार मेश को परिष्कृत करने की अनुमति देकर आवश्यक मेश बैंडविड्थ को भी काफी कम कर सकता है। कुछ एल्गोरिद्म किसी भी आर्बिट्ररी मेश को अपसैंपल कर सकते हैं, जबकि अन्य मेश में "संकेत" के लिए अनुमति देते हैं जिससे कि सबसे विशिष्ट कोने और किनारों को निर्देशित किया जा सके।
आदिम और मेश शेड्स
सर्का 2017, एएमडी वेगा माइक्रोआर्किटेक्चर ने एक नए शेडर चरण-आदिम शेडर्स के लिए समर्थन जोड़ा - ज्यामिति को संसाधित करने के लिए आवश्यक डेटा तक पहुंच के साथ शेडर्स की गणना करने के लिए कुछ सीमा तक।[9][10] इसी तरह, एनवीडिया ने 2018 में अपने ट्यूरिंग (माइक्रोआर्किटेक्चर) के साथ मेश और टास्क शेड्स समक्ष किए जो समान कार्यक्षमता प्रदान करते हैं और एएमडी के आदिम शेडर्स को भी कंप्यूट शेडर्स के पश्चात प्रतिरूप किया जाता है।[11][12]
2020 में, एएमडी और एनवीडिया ने आरडीएनए 2 और एम्पीयर (माइक्रोआर्किटेक्चर) जारी किए, जो डायरेक्टएक्स 12 अल्टीमेट के माध्यम से मेश छायांकन का समर्थन करते हैं।[13] ये मेश शेड्स जीपीयू को अधिक जटिल एल्गोरिदम को संभालने की अनुमति देते हैं, सीपीयू से जीपीयू पर अधिक काम को लोड करते हैं, और एल्गोरिथम गहन रेंडरिंग में, परिमाण के एक क्रम से एक दृश्य में त्रिकोणों की संख्या या फ्रेम दर में वृद्धि करते हैं।[14]इंटेल ने घोषणा की कि 2022 की पहली तिमाही में इंटेल आर्क अल्केमिस्ट जीपीयू शिपिंग मेश शेडर्स को सपोर्ट करेगा।[15]
रे ट्रेसिंग शेड्स
किरण अनुरेखण (ग्राफिक्स) शेड्स माइक्रोसॉफ्ट द्वारा डायरेक्टएक्स रेट्रेसिंग के माध्यम से, क्रोनोस समूह द्वारा वल्कन (एपीआई), जीएलएसएल, और एसपीआईआर-वी द्वारा समर्थित हैं,[16] एप्प्ल द्वारा धातु (एपीआई) के माध्यम से।
कंप्यूट शेडरस
कंप्यूट शेडर्स ग्राफिक्स अनुप्रयोगों तक ही सीमित नहीं हैं, बल्कि जीपीजीपीयू के लिए समान निष्पादन संसाधनों का उपयोग करते हैं। उनका उपयोग ग्राफिक्स पाइपलाइनों में किया जा सकता है उदाहरण एनिमेशन या लाइटिंग एल्गोरिदम में अतिरिक्त चरणों के लिए (उदाहरण के लिए टाइल किए गए आगे प्रतिपादन)। कुछ रेंडरिंग एपीआई कंप्यूट शेडर्स को ग्राफिक्स पाइपलाइन के साथ डेटा संसाधनों को आसानी से साझा करने की अनुमति देते हैं।
समानांतर प्रसंस्करण
शेडर्स को एक समय में मूल तत्त्वों के एक बड़े समूह में परिवर्तन लागू करने के लिए लिखा जाता है, उदाहरण के लिए, स्क्रीन के एक क्षेत्र में प्रत्येक पिक्सेल के लिए, या किसी मॉडल के प्रत्येक शीर्ष के लिए। यह समानांतर कंप्यूटिंग के लिए उपयुक्त है, और अधिकांश आधुनिक जीपीयू में इसे सुविधाजनक बनाने के लिए कई शेडर पाइपलाइन हैं, जो गणना थ्रूपुट में काफी सुधार करते हैं।
शेडर्स के साथ एक प्रोग्रामिंग मॉडल प्रतिपादन के लिए एक उच्च क्रम फ़ंक्शन के समान है, शेडर्स को तर्कों के रूप में लेना, और मध्यवर्ती परिणामों के बीच एक विशिष्ट डेटा प्रवाह प्रदान करना, दोनों डेटा समांतरता (पिक्सेल, कोने आदि में) और पाइपलाइन समांतरता (चरणों के बीच) को सक्षम करना।
प्रोग्रामिंग
जिस भाषा में शेडर प्रोग्राम किए जाते हैं वह लक्षित वातावरण पर निर्भर करता है। आधिकारिक ओपन जीएल और ओपनजीएल ईएस छायांकन भाषा ओपनजीएल ईएस छायांकन भाषा है, जिसे जीएलएसएल के रूप में भी जाना जाता है, और आधिकारिक डायरेक्ट 3डी छायांकन भाषा उच्च स्तरीय छायांकन भाषा है, जिसे एचएलएसएल के रूप में भी जाना जाता है। सीजी (प्रोग्रामिंग भाषा), एक तृतीय-पक्ष छायांकन भाषा जो ओपनजीएल और डायरेक्ट 3डी शेडर्स दोनों को आउटपुट करती है, एनवीडिया द्वारा विकसित की गई थी; यद्यपि 2012 से इसे हटा दिया गया है। एप्प्ल ने मेटल (आईओएस एपीआई) के भाग के रूप में मेटल शेडिंग भाषा नामक अपनी स्वयं की छायांकन भाषा जारी की।
जीयूआई शेडर संपादक
एकता, अवास्तविक इंजन और गोडोट (गेम इंजन) जैसे आधुनिक वीडियो गेम विकास प्लेटफार्मों में तेजी से नोड-आधारित संपादक सम्मलित होते हैं जो वास्तविक कोड की आवश्यकता के बिना शेडर बना सकते हैं; उपयोगकर्ता को इसके अतिरिक्त कनेक्टेड नोड्स के एक निर्देशित ग्राफ के साथ प्रस्तुत किया जाता है जो उपयोगकर्ताओं को विभिन्न बनावट, नक्शे और गणितीय कार्यों को फैलाने वाले रंग, विशिष्ट रंग और तीव्रता, खुरदरापन / धात्विकता, ऊंचाई, सामान्य, और इसी तरह आउटपुट मानों में निर्देशित करने की अनुमति देता है। स्वचालित संकलन तब ग्राफ़ को वास्तविक, संकलित शेडर में बदल देता है।
यह भी देखें
- जीएलएसएल
- एसपीआईआर-वी
- एचएलएसएल
- गणना कर्नेल
- छायांकन भाषा
- जीपीजीपीयू
- सामान्य छायांकन एल्गोरिदम की सूची
- वेक्टर प्रोसेसर
संदर्भ
- ↑ "LearnOpenGL - शेडर्स". learnopengl.com. Retrieved November 12, 2019.
- ↑ "The RenderMan Interface Specification".
- ↑ Lillypublished, Paul (May 19, 2009). "From Voodoo to GeForce: The Awesome History of 3D Graphics". PC Gamer – via www.pcgamer.com.
- ↑ "शेडरवर्क्स का अपडेट - डायरेक्टएक्स ब्लॉग". August 13, 2003.
- ↑ "GLSL Tutorial – Fragment Shader". June 9, 2011.
- ↑ "GLSL Tutorial – Vertex Shader". June 9, 2011.
- ↑ Geometry Shader - OpenGL. Retrieved on December 21, 2011.
- ↑ "Pipeline Stages (Direct3D 10) (Windows)". msdn.microsoft.com.
- ↑ "Radeon RX Vega Revealed: AMD promises 4K gaming performance for $499 - Trusted Reviews". July 31, 2017.
- ↑ "एएमडी के वेगा आर्किटेक्चर पर पर्दा आता है". January 5, 2017.
- ↑ "NVIDIA ट्यूरिंग आर्किटेक्चर इन-डेप्थ". September 14, 2018.
- ↑ "ट्यूरिंग मेश शेड्स का परिचय". September 17, 2018.
- ↑ "Announcing DirectX 12 Ultimate". DirectX Developer Blog (in English). March 19, 2020. Retrieved May 25, 2021.
- ↑ "मेष छायांकन के साथ न्याय में यथार्थवादी प्रकाश". NVIDIA Developer Blog (in English). May 21, 2021. Retrieved May 25, 2021.
- ↑ Smith, Ryan. "Intel Architecture Day 2021: A Sneak Peek At The Xe-HPG GPU Architecture". www.anandtech.com.
- ↑ "वल्कन रे ट्रेसिंग फाइनल स्पेसिफिकेशंस रिलीज़". Blog. Khronos Group. November 23, 2020. Retrieved 2021-02-22.
अग्रिम पठन
- Upstill, Steve (1990). The RenderMan Companion: A Programmer's Guide to Realistic Computer Graphics. Addison-Wesley. ISBN 0-201-50868-0.
- Ebert, David S; Musgrave, F. Kenton; Peachey, Darwyn; Perlin, Ken; Worley, Steven (1994). Texturing and modeling: a procedural approach. AP Professional. ISBN 0-12-228730-4.
- Fernando, Randima; Kilgard, Mark (2003). The Cg Tutorial: The Definitive Guide to Programmable Real-Time Graphics. Addison-Wesley Professional. ISBN 0-321-19496-9.
- Rost, Randi J (2004). OpenGL Shading Language. Addison-Wesley Professional. ISBN 0-321-19789-5.
बाहरी संबंध
- ओपन जीएल ज्यामिति शेडर एक्सटेंशन
- रीमर का डायरेक्टएक्स और एचएलएसएल ट्यूटोरियल: HLSL Tutorial using DirectX with much sample code
- पाइपलाइन चरण (डायरेक्ट 3 डी 10)