शेडर: Difference between revisions

From Vigyanwiki
No edit summary
Line 16: Line 16:
"शेडर" शब्द के इस प्रयोग को [[पिक्सर]]  द्वारा उनके [[रेंडरमैन इंटरफ़ेस]] विशिष्टता के संस्करण 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 डी]] जैसी प्रमुख ग्राफिक्स [[सॉफ्टवेयर पुस्तकालय]] ने शेडर्स का समर्थन करना शुरू कर दिया। पहला शेडर-सक्षम जीपीयू केवल [[पिक्सेल छायांकन]] का समर्थन करता था, लेकिन डेवलपर्स को शेडर्स की शक्ति का एहसास होने के पश्चात [[वर्टेक्स शेडर्स]] जल्दी से पेश किए गए थे। प्रोग्रामेबल पिक्सेल शेडर वाला पहला वीडियो कार्ड 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 के साथ सम्मुख किया गया था। आखिरकार, ग्राफिक्स हार्डवेयर एक [[एकीकृत शेडर मॉडल]] की ओर विकसित हुआ  
जैसे-जैसे ग्राफिक्स प्रोसेसिंग यूनिट विकसित हुई, [[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 और ओपन जीएल 3.2 के साथ सम्मुख किया गया था। आखिरकार, ग्राफिक्स हार्डवेयर एक [[एकीकृत शेडर मॉडल]] की ओर विकसित हुआ  


== डिजाइन ==
== डिजाइन ==
Line 52: Line 52:


==== ज्यामिति शेड्स ====
==== ज्यामिति शेड्स ====
ज्यामिति शेड्स को डायरेक्ट 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 और ओपन जीएल 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>


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


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


==== आदिम और मेश शेड्स ====
==== आदिम और मेश शेड्स ====
Line 77: Line 77:


== प्रोग्रामिंग ==
== प्रोग्रामिंग ==
जिस भाषा में शेडर प्रोग्राम किए जाते हैं वह लक्षित वातावरण पर निर्भर करता है। आधिकारिक OpenGL और [[OpenGL ES|ओपनजीएल ईएस]] छायांकन भाषा ओपनजीएल ईएस छायांकन भाषा है, जिसे जीएलएसएल के रूप में भी जाना जाता है, और आधिकारिक डायरेक्ट 3डी छायांकन भाषा [[HLSL|उच्च स्तरीय छायांकन भाषा]] है, जिसे एचएलएसएल के रूप में भी जाना जाता है। [[सीजी (प्रोग्रामिंग भाषा)]], एक तृतीय-पक्ष छायांकन भाषा जो ओपनजीएल और डायरेक्ट 3डी शेडर्स दोनों को आउटपुट करती है, [[NVIDIA|एनवीडिया]] द्वारा विकसित की गई थी; हालाँकि 2012 से इसे हटा दिया गया है। एप्प्ल ने [[Metal (iOS API)|मेटल (आईओएस एपीआई)]] के भाग के रूप में मेटल शेडिंग भाषा नामक अपनी स्वयं की छायांकन भाषा जारी की।
जिस भाषा में शेडर प्रोग्राम किए जाते हैं वह लक्षित वातावरण पर निर्भर करता है। आधिकारिक ओपन जीएल और [[OpenGL ES|ओपनजीएल ईएस]] छायांकन भाषा ओपनजीएल ईएस छायांकन भाषा है, जिसे जीएलएसएल के रूप में भी जाना जाता है, और आधिकारिक डायरेक्ट 3डी छायांकन भाषा [[HLSL|उच्च स्तरीय छायांकन भाषा]] है, जिसे एचएलएसएल के रूप में भी जाना जाता है। [[सीजी (प्रोग्रामिंग भाषा)]], एक तृतीय-पक्ष छायांकन भाषा जो ओपनजीएल और डायरेक्ट 3डी शेडर्स दोनों को आउटपुट करती है, [[NVIDIA|एनवीडिया]] द्वारा विकसित की गई थी; हालाँकि 2012 से इसे हटा दिया गया है। एप्प्ल ने [[Metal (iOS API)|मेटल (आईओएस एपीआई)]] के भाग के रूप में मेटल शेडिंग भाषा नामक अपनी स्वयं की छायांकन भाषा जारी की।


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


== बाहरी संबंध ==
== बाहरी संबंध ==
* [http://www.opengl.org/registry/specs/EXT/geometry_shader4.txt OpenGL geometry shader extension]
* [http://www.opengl.org/registry/specs/EXT/geometry_shader4.txt ओपन जीएल geometry shader extension]
* [http://www.riemers.net/eng/Tutorials/DirectX/Csharp/series3.php Riemer's DirectX & HLSL Tutorial]: ''HLSL Tutorial using DirectX with much sample code''
* [http://www.riemers.net/eng/Tutorials/DirectX/Csharp/series3.php Riemer's DirectX & HLSL Tutorial]: ''HLSL Tutorial using DirectX with much sample code''
* [http://msdn2.microsoft.com/en-us/library/bb205123.aspx Pipeline Stages (डायरेक्ट 3 डी 10)]
* [http://msdn2.microsoft.com/en-us/library/bb205123.aspx Pipeline Stages (डायरेक्ट 3 डी 10)]

Revision as of 17:05, 24 March 2023

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

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

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

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

इतिहास

"शेडर" शब्द के इस प्रयोग को पिक्सर द्वारा उनके रेंडरमैन इंटरफ़ेस विशिष्टता के संस्करण 3.0 के साथ जनता के लिए पेश किया गया था, जो मूल रूप से मई 1988 में प्रकाशित हुआ था।[2]

जैसे-जैसे ग्राफिक्स प्रोसेसिंग यूनिट विकसित हुई, ओपन जीएल और डायरेक्ट 3 डी जैसी प्रमुख ग्राफिक्स सॉफ्टवेयर पुस्तकालय ने शेडर्स का समर्थन करना शुरू कर दिया। पहला शेडर-सक्षम जीपीयू केवल पिक्सेल छायांकन का समर्थन करता था, लेकिन डेवलपर्स को शेडर्स की शक्ति का एहसास होने के पश्चात वर्टेक्स शेडर्स जल्दी से पेश किए गए थे। प्रोग्रामेबल पिक्सेल शेडर वाला पहला वीडियो कार्ड Nvidia GeForce 3 (NV20) था, जिसे 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] ये मेश शेड्स GPU को अधिक जटिल एल्गोरिदम को संभालने की अनुमति देते हैं, CPU से GPU पर अधिक काम को लोड करते हैं, और एल्गोरिथम गहन रेंडरिंग में, परिमाण के एक क्रम से एक दृश्य में त्रिकोणों की संख्या या फ्रेम दर में वृद्धि करते हैं।[14]इंटेल ने घोषणा की कि 2022 की पहली तिमाही में इंटेल आर्क अल्केमिस्ट जीपीयू शिपिंग मेश शेडर्स को सपोर्ट करेगा।[15]

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

किरण अनुरेखण (ग्राफिक्स) शेड्स माइक्रोसॉफ्ट द्वारा डायरेक्टएक्स रेट्रेसिंग के माध्यम से, क्रोनोस समूह द्वारा वल्कन (एपीआई), जीएलएसएल, और एसपीआईआर-वी द्वारा समर्थित हैं,[16] Apple द्वारा धातु (एपीआई) के माध्यम से।

कंप्यूट शेडर

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

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

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

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

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

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

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

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

यह भी देखें

संदर्भ

  1. "LearnOpenGL - शेडर्स". learnopengl.com. Retrieved November 12, 2019.
  2. "The RenderMan Interface Specification".
  3. Lillypublished, Paul (May 19, 2009). "From Voodoo to GeForce: The Awesome History of 3D Graphics". PC Gamer – via www.pcgamer.com.
  4. "शेडरवर्क्स का अपडेट - डायरेक्टएक्स ब्लॉग". August 13, 2003.
  5. "GLSL Tutorial – Fragment Shader". June 9, 2011.
  6. "GLSL Tutorial – Vertex Shader". June 9, 2011.
  7. Geometry Shader - OpenGL. Retrieved on December 21, 2011.
  8. "Pipeline Stages (Direct3D 10) (Windows)". msdn.microsoft.com.
  9. "Radeon RX Vega Revealed: AMD promises 4K gaming performance for $499 - Trusted Reviews". July 31, 2017.
  10. "एएमडी के वेगा आर्किटेक्चर पर पर्दा आता है". January 5, 2017.
  11. "NVIDIA ट्यूरिंग आर्किटेक्चर इन-डेप्थ". September 14, 2018.
  12. "ट्यूरिंग मेश शेड्स का परिचय". September 17, 2018.
  13. "Announcing DirectX 12 Ultimate". DirectX Developer Blog (in English). March 19, 2020. Retrieved May 25, 2021.
  14. "मेष छायांकन के साथ न्याय में यथार्थवादी प्रकाश". NVIDIA Developer Blog (in English). May 21, 2021. Retrieved May 25, 2021.
  15. Smith, Ryan. "Intel Architecture Day 2021: A Sneak Peek At The Xe-HPG GPU Architecture". www.anandtech.com.
  16. "वल्कन रे ट्रेसिंग फाइनल स्पेसिफिकेशंस रिलीज़". Blog. Khronos Group. November 23, 2020. Retrieved 2021-02-22.


अग्रिम पठन


बाहरी संबंध