पाथ ट्रेसिंग: Difference between revisions

From Vigyanwiki
(Created page with "{{for multi|tracing network paths|traceroute|other uses|Tracing (disambiguation)}} {{short description|Computer graphics method}} <!-- Deleted image removed: Image:SunroomIn...")
 
(TEXT)
Line 1: Line 1:
{{for multi|tracing network paths|traceroute|other uses|Tracing (disambiguation)}}
{{for multi|जालक्रम पथ अनुरेखण|ट्रेसरूट|अन्य उपयोग|अनुरेखण (विसंदिग्धीकरण)}}
{{short description|Computer graphics method}}
{{short description|Computer graphics method}}
<!-- Deleted image removed: [[Image:SunroomIndigoRender2007.jpg|right|thumb|300px|Path tracing excels in indoor scenes in which complicated indirect light would confound lesser methods.]] -->
<!-- Deleted image removed: [[Image:SunroomIndigoRender2007.jpg|right|thumb|300px|Path tracing excels in indoor scenes in which complicated indirect light would confound lesser methods.]] -->
[[File:Path tracing 001.png|right|thumb|350px|तकनीक की उल्लेखनीय विशेषताओं का प्रदर्शन करते हुए, पथ अनुरेखण का उपयोग करके प्रस्तुत की गई छवि]]पाथ-ट्रेसिंग एक [[कंप्यूटर चित्रलेख]] [[मोंटे कार्लो विधि]] है जिसमें त्रि-आयामी दृश्यों की रेंडरिंग (कंप्यूटर ग्राफिक्स) की विधि ऐसी है कि वैश्विक [[रोशनी]] वास्तविकता के प्रति वफादार है। मौलिक रूप से, [[कलन विधि]] एक वस्तु की सतह पर एक बिंदु पर पहुंचने वाली सभी रोशनी पर [[मोंटे कार्लो एकीकरण]] है। यह रोशनी तब एक सतह परावर्तक समारोह ([[बीआरडीएफ]]) द्वारा कम हो जाती है ताकि यह निर्धारित किया जा सके कि यह कितना दृष्टिकोण कैमरे की ओर जाएगा। यह एकीकरण प्रक्रिया आउटपुट छवि में प्रत्येक पिक्सेल के लिए दोहराई जाती है। सतहों के भौतिक रूप से सटीक मॉडल, वास्तविक प्रकाश स्रोतों (प्रकाश बल्ब) के सटीक मॉडल और वैकल्पिक रूप से सही कैमरों के साथ संयुक्त होने पर, पथ अनुरेखण स्थिर छवियों का उत्पादन कर सकता है जो तस्वीरों से अप्रभेद्य हैं।
[[File:Path tracing 001.png|right|thumb|350px|तकनीक की उल्लेखनीय विशेषताओं का प्रदर्शन करते हुए, पथ अनुरेखण का उपयोग करके प्रस्तुत की गई छवि]]पथ-अनुरेखण एक [[कंप्यूटर चित्रलेख]] [[मोंटे कार्लो विधि]] है जिसमें त्रि-आयामी दृश्यों की प्रतिपादन (कंप्यूटर ग्राफिक्स) विधि ऐसी है कि वैश्विक [[रोशनी]] वास्तविकता के प्रति दृढ़ है। मौलिक रूप से, [[कलन विधि]] किसी वस्तु की सतह पर एक बिंदु पर आने वाली सभी रोशनी को एकीकृत कर रही है। यह रोशनी तब एक सतह परावर्तक फलन ([[बीआरडीएफ]]) द्वारा कम हो जाती है ताकि यह निर्धारित किया जा सके कि यह कितना दृष्टिकोण कैमरे की ओर जाएगा। यह एकीकरण प्रक्रिया आउटपुट छवि में प्रत्येक पिक्सेल के लिए दोहराई जाती है। सतहों के भौतिक रूप से सटीक प्रतिरूप, वास्तविक प्रकाश स्रोतों (प्रकाश बल्ब) के सटीक प्रतिरूप और वैकल्पिक रूप से सही कैमरों के साथ संयुक्त होने पर, पथ अनुरेखण स्थिर छवियों का उत्पादन कर सकता है जो तस्वीरों से अप्रभेद्य हैं।


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


इसकी सटीकता, [[निष्पक्ष प्रतिपादन]] प्रकृति और एल्गोरिथम सादगी के कारण, अन्य प्रतिपादन एल्गोरिदम की गुणवत्ता का परीक्षण करते समय संदर्भ-चित्र उत्पन्न करने के लिए पथ-अनुरेखण का उपयोग किया जाता है। हालांकि, पथ-अनुरेखण-एल्गोरिदम अपेक्षाकृत अक्षम है: [[छवि शोर]] से मुक्त उच्च-गुणवत्ता वाली छवियां प्राप्त करने के लिए बहुत बड़ी संख्या में किरणों का पता लगाया जाना चाहिए। कई प्रकार पेश किए गए हैं जो कई दृश्यों के लिए मूल एल्गोरिथ्म की तुलना में अधिक कुशल हैं, जिनमें Path_tracing#BiDirection_path-tracing|द्विदिशात्मक पथ-अनुरेखण, [[वॉल्यूमेट्रिक पथ अनुरेखण]]|वॉल्यूमेट्रिक पथ-अनुरेखण, और [[ महानगर प्रकाश परिवहन ]]|मेट्रोपोलिस-प्रकाश-परिवहन शामिल हैं।
इसकी सटीकता, [[निष्पक्ष प्रतिपादन]] प्रकृति और कलन विधि सादगी के कारण, अन्य प्रतिपादन कलन विधि की गुणवत्ता का परीक्षण करते समय संदर्भ-चित्र उत्पन्न करने के लिए पथ-अनुरेखण का उपयोग किया जाता है। हालांकि, पथ-अनुरेखण-कलन विधि अपेक्षाकृत अक्षम है: [[छवि शोर]] से मुक्त उच्च-गुणवत्ता वाली छवियां प्राप्त करने के लिए बहुत बड़ी संख्या में किरणों का पता लगाया जाना चाहिए। कई प्रकार प्रस्तुत किए गए हैं जो कई दृश्यों के लिए मूल कलन विधि की तुलना में अधिक कुशल हैं, जिनमें द्विदिशात्मक पथ-अनुरेखण, [[वॉल्यूमेट्रिक पथ अनुरेखण|आयतनमितीय पथ अनुरेखण]], और [[ महानगर प्रकाश परिवहन | महानगर प्रकाश परिवहन]] सम्मिलित हैं।


== इतिहास ==
== इतिहास ==


{{further|Rendering (computer graphics)#Chronology of important published ideas}}
{{further|प्रतिपादन (कंप्यूटर ग्राफिक्स)#महत्वपूर्ण प्रकाशित विचारों का कालक्रम}}


रेंडरिंग समीकरण और कंप्यूटर-ग्राफिक्स में इसका उपयोग 1986 में [[जेम्स काजिया]] द्वारा प्रस्तुत किया गया था।{{Ref|kajiya1986rendering}} रेंडरिंग समीकरण के इंटीग्रल के लिए मोंटे कार्लो इंटीग्रेशन को खोजने के लिए एक एल्गोरिथम के रूप में पाथ ट्रेसिंग की शुरुआत की गई थी। एक दशक बाद, लाफोर्ट्यून ने द्विदिश पथ-अनुरेखण सहित कई परिशोधन का सुझाव दिया।{{Ref|lafortune1996mathematical}}
रेंडरिंग समीकरण और कंप्यूटर-ग्राफिक्स में इसका उपयोग 1986 में [[जेम्स काजिया]] द्वारा प्रस्तुत किया गया था।{{Ref|kajiya1986rendering}} रेंडरिंग समीकरण के पूर्णांकी के लिए मोंटे कार्लो एकीकरण को खोजने के लिए एक कलन विधि के रूप में पथ अनुरेखण को प्रारम्भ किया गया। एक दशक बाद, लाफोर्ट्यून ने द्विदिश पथ-अनुरेखण सहित कई परिशोधन का सुझाव दिया।{{Ref|lafortune1996mathematical}}


मेट्रोपोलिस लाइट ट्रांसपोर्ट, कठिन दृश्यों के प्रदर्शन को बढ़ाने के लिए पहले से खोजे गए रास्तों को परेशान करने की एक विधि, 1997 में एरिक वीच और लियोनिदास जे. गुइबास द्वारा पेश की गई थी।
मेट्रोपोलिस सुगम परिवहन, कठिन दृश्यों के प्रदर्शन को बढ़ाने के लिए पहले से खोजे गए रास्तों को परेशान करने की एक विधि, 1997 में एरिक वीच और लियोनिदास जे. गुइबास द्वारा प्रस्तुत की गई थी।


हाल ही में, [[ CPU ]] और [[जीपीयू]] छवियों को अधिक तेज़ी से प्रस्तुत करने के लिए पर्याप्त शक्तिशाली हो गए हैं, जिससे पथ अनुरेखण एल्गोरिदम में अधिक व्यापक रुचि पैदा हुई है। टिम परसेल ने पहली बार 2002 में जीपीयू पर चल रहे एक वैश्विक रोशनी एल्गोरिथम प्रस्तुत किया।{{Ref|purcell2002ray}} फरवरी 2009 में, [[NVIDIA]] के ऑस्टिन रॉबिसन ने जीपीयू पर चलने वाले पथ अनुरेखक के पहले व्यावसायिक कार्यान्वयन का प्रदर्शन किया {{Ref|robisonNVIRT}}, और अन्य कार्यान्वयनों का अनुसरण किया गया है, जैसे कि अगस्त 2009 में व्लादिमीर कोयलाज़ोव। {{Ref|pathGPUimplementations}} इसे [[GPGPU]] प्रोग्रामिंग टूलकिट जैसे [[CUDA]] और [[OpenCL]] और GPU रे ट्रेसिंग SDK जैसे [[OptiX]] की परिपक्वता से सहायता मिली थी।
हाल ही में, [[ CPU |CPU]] और [[जीपीयू]] छवियों को अधिक तेज़ी से प्रस्तुत करने के लिए पर्याप्त शक्तिशाली हो गए हैं, जिससे पथ अनुरेखण कलन विधि में अधिक व्यापक रुचि पैदा हुई है। टिम परसेल ने पहली बार 2002 में जीपीयू पर चल रहे एक वैश्विक रोशनी कलन विधि प्रस्तुत किया।{{Ref|purcell2002ray}} फरवरी 2009 में, [[NVIDIA|न]]विदिआ के ऑस्टिन रॉबिसन ने जीपीयू पर चलने वाले पथ अनुरेखक के पहले व्यावसायिक कार्यान्वयन का प्रदर्शन किया {{Ref|robisonNVIRT}}, और अन्य कार्यान्वयनों का अनुसरण किया गया है, जैसे कि अगस्त 2009 में व्लादिमीर कोयलाज़ोव। {{Ref|pathGPUimplementations}} इसे [[GPGPU]] प्रोग्रामिंग टूलकिट जैसे [[CUDA]] और [[OpenCL|ओपनसीएल]] और GPU किरण अनुरेखण SDK जैसे [[OptiX]] की परिपक्वता से सहायता मिली थी।


पथ-अनुरेखण ने फिल्म उद्योग में एक महत्वपूर्ण भूमिका निभाई है। पहले की फिल्में सीजी-विजुअल-इफेक्ट्स और एनीमेशन बनाने के लिए स्कैनलाइन रेंडरिंग | स्कैनलाइन-रेंडरर्स पर निर्भर करती थीं। 1998 में, [[ब्लू स्काई स्टूडियो]]ज ने अपने मालिकाना CGI स्टूडियो पाथ-ट्रेसिंग-रेंडरर के साथ [[अकादमी पुरस्कार]] | अकादमी-पुरस्कार विजेता लघु-फिल्म बनी (1998 फिल्म) प्रदान की, जिसमें सॉफ्ट शैडो और अप्रत्यक्ष-रोशनी-प्रभाव शामिल थे। [[सोनी पिक्चर्स इमेजवर्क्स]] की मॉन्स्टर हाउस (फिल्म), 2006 में, व्यावसायिक [[अर्नोल्ड (सॉफ्टवेयर)]] रेंडरर का उपयोग करते हुए, पूरी तरह से पथ-अनुरेखक में प्रस्तुत की जाने वाली पहली एनिमेटेड फीचर फिल्म थी। इसके अलावा, [[वॉल्ट डिज्नी एनिमेशन स्टूडियो]] 2014 में [[बिग हीरो 6 (फिल्म)]] के निर्माण के बाद से हाइपरियन के रूप में जाने जाने वाले अपने स्वयं के अनुकूलित पथ अनुरेखक का उपयोग कर रहा है।{{Ref|DisneyHyperion}} [[पिक्सर एनिमेशन स्टूडियो]] ने अपने वाणिज्यिक [[रेंडरमैन]] रेंडरर के लिए पथ अनुरेखण को भी अपनाया है।
पथ-अनुरेखण ने फिल्म उद्योग में एक महत्वपूर्ण भूमिका निभाई है। पहले की फिल्में सीजी-दृश्य प्रभाव और अनुप्राणन बनाने के लिए स्कैनलाइन-रेंडरर्स पर निर्भर करती थीं। 1998 में, [[ब्लू स्काई स्टूडियो]]ज ने अपने मालिकाना CGI स्टूडियो पथ-अनुरेखण-रेंडरर के साथ [[अकादमी पुरस्कार]] विजेता लघु-फिल्म [[बनी]] (1998 फिल्म) प्रदान की, जिसमें शीतल परछाई और अप्रत्यक्ष-रोशनी-प्रभाव सम्मिलित थे। [[सोनी पिक्चर्स इमेजवर्क्स]] की मॉन्स्टर हाउस (फिल्म), 2006 में, व्यावसायिक [[अर्नोल्ड (सॉफ्टवेयर)]] रेंडरर का उपयोग करते हुए, पूरी तरह से पथ-अनुरेखक में प्रस्तुत की जाने वाली पहली अनुप्राणित फीचर फिल्म थी। इसके अतिरिक्त, [[वॉल्ट डिज्नी एनिमेशन स्टूडियो|वॉल्ट डिज्नी अनुप्राणन स्टूडियो]] 2014 में [[बिग हीरो 6 (फिल्म)]] के निर्माण के बाद से हाइपरियन के रूप में जाने जाने वाले अपने स्वयं के अनुकूलित पथ अनुरेखक का उपयोग कर रहा है।{{Ref|DisneyHyperion}} [[पिक्सर एनिमेशन स्टूडियो|पिक्सर अनुप्राणन स्टूडियो]] ने अपने वाणिज्यिक [[रेंडरमैन]] रेंडरर के लिए पथ अनुरेखण को भी अपनाया है।


== विवरण ==
== विवरण ==
Line 26: Line 26:
वास्तविक दुनिया में, वस्तुएं और सतहें इस तथ्य के कारण दिखाई देती हैं कि वे प्रकाश को प्रतिबिंबित कर रहे हैं। यह परावर्तित प्रकाश बदले में अन्य वस्तुओं को रोशन करता है। उस सरल अवलोकन से, दो सिद्धांत अनुसरण करते हैं।
वास्तविक दुनिया में, वस्तुएं और सतहें इस तथ्य के कारण दिखाई देती हैं कि वे प्रकाश को प्रतिबिंबित कर रहे हैं। यह परावर्तित प्रकाश बदले में अन्य वस्तुओं को रोशन करता है। उस सरल अवलोकन से, दो सिद्धांत अनुसरण करते हैं।


I. दिए गए इनडोर दृश्य के लिए, कमरे में प्रत्येक वस्तु को हर दूसरी वस्तु को रोशनी देने में योगदान देना चाहिए।
I. दिए गए आंतरिक दृश्य के लिए, कमरे में प्रत्येक वस्तु को हर दूसरी वस्तु को रोशनी देने में योगदान देना चाहिए।


द्वितीय। दूसरा, प्रकाश स्रोत से निकलने वाली रोशनी और सतह से परावर्तित रोशनी के बीच कोई अंतर नहीं है।
ii. दूसरा, प्रकाश स्रोत से निकलने वाली रोशनी और सतह से परावर्तित रोशनी के बीच कोई अंतर नहीं है।


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


तृतीय। सतहों से आने वाली रोशनी को एक विशेष दिशा में बिखरना चाहिए जो आने वाली रोशनी की आने वाली दिशा का कुछ कार्य है, और बाहर जाने वाली दिशा का नमूना लिया जा रहा है।
III. सतहों से आने वाली रोशनी को एक विशेष दिशा में बिखरना चाहिए जो आने वाली रोशनी की आने वाली दिशा का कुछ कार्य है, और बाहर जाने वाली दिशा का प्रतिरूप लिया जा रहा है।


काजिया का समीकरण इन तीन सिद्धांतों का एक पूर्ण सारांश है, और पथ-अनुरेखण, जो समीकरण के समाधान का अनुमान लगाता है, इसके कार्यान्वयन में उनके प्रति वफादार रहता है। ऑप्टिक्स के अन्य सिद्धांत हैं जो काजिया के समीकरण का फोकस नहीं हैं, और इसलिए एल्गोरिथम द्वारा अक्सर मुश्किल या गलत तरीके से अनुकरण किया जाता है। पथ अनुरेखण तीन सिद्धांतों में निहित ऑप्टिकल घटना से भ्रमित है। उदाहरण के लिए,
काजिया का समीकरण इन तीन सिद्धांतों का एक पूर्ण सारांश है, और पथ-अनुरेखण, जो समीकरण के समाधान का अनुमान लगाता है, इसके कार्यान्वयन में उनके प्रति वफादार रहता है। दृग्विद्या के अन्य सिद्धांत हैं जो काजिया के समीकरण का केंद्रबिन्दु नहीं हैं, और इसलिए कलन विधि द्वारा प्रायः मुश्किल या गलत तरीके से अनुकरण किया जाता है। पथ अनुरेखण तीन सिद्धांतों में निहित ऑप्टिकल घटना से भ्रमित है। उदाहरण के लिए,


* उज्ज्वल, तेज कास्टिक (ऑप्टिक्स); अंतरिक्ष में रोशनी के घनत्व से चमक का पैमाना।
* उज्ज्वल, तेज क्षारक (दृग्विद्या); अंतरिक्ष में रोशनी के घनत्व से चमक का पैमाना।
* अधस्तल प्रकीर्णन| उपसतह-प्रकीर्णन; उपरोक्त सिद्धांत III का उल्लंघन।
* अधस्तल प्रकीर्णन| उपसतह-प्रकीर्णन; उपरोक्त सिद्धांत III का उल्लंघन।
* रंगीन विपथन, प्रतिदीप्ति, इंद्रधनुषीपन; प्रकाश आवृत्तियों का एक स्पेक्ट्रम है।
* रंगीन विपथन, प्रतिदीप्ति, इंद्रधनुषीपन; प्रकाश आवृत्तियों का एक वर्णक्रम है।


== एल्गोरिथम ==
== कलन विधि ==


निम्नलिखित [[स्यूडोकोड]] सहज पथ-अनुरेखण करने के लिए एक प्रक्रिया है। ट्रेसपाथ फ़ंक्शन पिक्सेल के एकल नमूने की गणना करता है, जहां केवल गैदरिंग पथ पर विचार किया जाता है।
निम्नलिखित [[स्यूडोकोड]] सहज पथ-अनुरेखण करने के लिए एक प्रक्रिया है। ट्रेसपाथ फलनपिक्सेल के एकल प्रतिरूप की गणना करता है, जहां केवल गैदरिंग पथ पर विचार किया जाता है।


<वाक्यविन्यास लैंग = सी लाइन = 1>
<वाक्यविन्यास लैंग = सी लाइन = 1>
कलर ट्रेसपाथ (रे रे, काउंट डेप्थ) {
कलर ट्रेसपाथ (रे रे, काउंट डेप्थ) {
   अगर (गहराई> = अधिकतम गहराई) {
    काले रंग की वापसी; // पर्याप्त बार बाउंस हुआ।
 
  }
   Color TracePath(Ray ray, count depth) {
 
  if (depth >= MaxDepth) {
    return Black; // Bounced enough times


   ray.FindNearestObject();
   ray.FindNearestObject();
  अगर (रे.हिटसमथिंग == गलत) {
    काले रंग की वापसी; // कुछ भी हिट नहीं हुआ।
  }


  सामग्री सामग्री = ray.thingHit-> सामग्री;
  if (ray.hitSomething == false) {
  रंग उत्सर्जन = सामग्री। उत्सर्जन;
    return Black; // Nothing was hit.
  }


  // यहां से कोई भी दिशा चुनें और चलते रहें।
    Material material = ray.thingHit->material;
  रे न्यूरे;
  newRay.origin = ray.pointWhereObjWasHit;


  // यह कोसाइन-भारित वितरण नहीं है!
  Color emittance = material.emittance;
  newRay.direction = RandomUnitVectorInHemisphereOf (ray.normalWhereObjWasHit);
  // Pick a random direction from here and keep going.
  Ray newRay;
  newRay.origin = ray.pointWhereObjWasHit;
  // This is NOT a cosine-weighted distribution!
  newRay.direction = RandomUnitVectorInHemisphereOf(ray.normalWhereObjWasHit);


  // नई किरण की संभावना
    // Probability of the newRay
  कास्ट फ्लोट पी = 1/(2 * पीआई);


  // इस किरण के लिए BRDF की गणना करें (लैम्बर्टियन प्रतिबिंब मानते हुए)
  const float p = 1 / (2 * PI);
  फ्लोट cos_theta = DotProduct (newRay.direction, ray.normalWhereObjWasHit);
  रंग बीआरडीएफ = सामग्री। प्रतिबिंब / पीआई;
  // Compute the BRDF for this ray (assuming Lambertian reflection)
  float cos_theta = DotProduct(newRay.direction, ray.normalWhereObjWasHit);
  Color BRDF = material.reflectance / PI;
  // Recursively trace reflected light sources.
  Color incoming = TracePath(newRay, depth + 1);
  // Apply the Rendering Equation here.
  return emittance + (BRDF * incoming * cos_theta / p);


  // पुनरावर्ती रूप से परावर्तित प्रकाश स्रोतों का पता लगाएं।
}
  आने वाला रंग = ट्रेसपाथ (न्यूरे, गहराई + 1);


   // रेंडरिंग समीकरण को यहां लागू करें।
   void Render(Image finalImage, count numSamples) {
  वापसी उत्सर्जन + (बीआरडीएफ * आवक * cos_theta / p);
}


शून्य रेंडर (इमेज फाइनल इमेज, काउंट नंबर्स) {
  foreach (pixel in finalImage) {
  foreach (फाइनलइमेज में पिक्सेल) {
    foreach (i in numSamples) {
    foreach (मैं numSamples में) {
      Ray r = camera.generateRay(pixel);
      रे आर = कैमरा.जनरेटरे (पिक्सेल);
      pixel.color += TracePath(r, 0);
      पिक्सेल रंग + = ट्रेसपाथ (आर, 0);
    }
    }
    pixel.color /= numSamples; // Average samples.
    pixel.color /= numSamples; // औसत नमूने।
  }
  }
}
}
</वाक्यविन्यास हाइलाइट>
</वाक्यविन्यास हाइलाइट>


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


ऊर्जा के संरक्षण को सुनिश्चित करने के लिए ध्यान में रखने के लिए अन्य विचार हैं। विशेष रूप से, सरल मामले में, विसरित बीआरडीएफ का प्रतिबिंब अधिक नहीं होना चाहिए <math>\frac{1}{\pi}</math> या वस्तु प्राप्त होने से अधिक प्रकाश को प्रतिबिंबित करेगी (हालांकि यह उपयोग की गई नमूना योजना पर निर्भर करती है, और सही होना मुश्किल हो सकता है)।
ऊर्जा के संरक्षण को सुनिश्चित करने के लिए ध्यान में रखने के लिए अन्य विचार हैं। विशेष रूप से, सरल स्तिथि में, विसरित बीआरडीएफ का प्रतिबिंब <math>\frac{1}{\pi}</math> से अधिक नहीं होना चाहिए या वस्तु प्राप्त होने से अधिक प्रकाश को प्रतिबिंबित करेगी (हालांकि यह उपयोग की गई प्रतिरूप योजना पर निर्भर करती है, और सही होना कठिन हो सकता है)।


== द्विदिश पथ-अनुरेखण ==
== द्विदिश पथ-अनुरेखण ==


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


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


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


== प्रदर्शन ==
== प्रदर्शन ==


[[File:Path tracing sampling values.png|thumb|right|प्रति पिक्सेल नमूनों की संख्या बढ़ने पर शोर कम हो जाता है। शीर्ष बाएँ प्रति पिक्सेल 1 नमूना दिखाता है, और प्रत्येक वर्ग को बाएँ से दाएँ दोगुना करता है।]]एक पाथ-ट्रेसर [[छवि]] के [[पिक्सेल]] का लगातार नमूना लेता है। छवि प्रति पिक्सेल केवल कुछ नमूनों के बाद पहचानी जाने लगती है, शायद 100। हालाँकि, छवि को अभिसरण करने और शोर को स्वीकार्य स्तर तक कम करने के लिए आमतौर पर अधिकांश छवियों के लिए लगभग 5000 नमूने लगते हैं, और [[पैथोलॉजिकल (गणित)]] मामलों के लिए बहुत अधिक। शोर विशेष रूप से एनिमेशन के लिए एक समस्या है, जिससे उन्हें यादृच्छिक धब्बों की सामान्य रूप से अवांछित फिल्म-अनाज की गुणवत्ता मिलती है।
[[File:Path tracing sampling values.png|thumb|right|प्रति पिक्सेल नमूनों की संख्या बढ़ने पर शोर कम हो जाता है। शीर्ष बाएँ प्रति पिक्सेल 1 प्रतिरूप दिखाता है, और प्रत्येक वर्ग को बाएँ से दाएँ दोगुना करता है।]]एक पथ-अनुरेखक [[छवि]] के [[पिक्सेल]] का लगातार प्रतिरूप लेता है। छवि प्रति पिक्सेल केवल कुछ नमूनों के बाद पहचानी जाने लगती है, शायद 100। हालाँकि, छवि को अभिसरण करने और शोर को स्वीकार्य स्तर तक कम करने के लिए सामान्यतः अधिकांश छवियों के लिए लगभग 5000 प्रतिरूप लगते हैं, और [[पैथोलॉजिकल (गणित)|विकृतिजन्य (गणित)]] स्तिथियों के लिए बहुत अधिक प्रतिरूप लगते हैं। शोर विशेष रूप से अनुप्राणन के लिए एक समस्या है, जिससे उन्हें यादृच्छिक धब्बों की सामान्य रूप से अवांछित चलचित्र-कण की गुणवत्ता मिलती है।


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


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


== बिखराव वितरण कार्य ==
== बिखराव वितरण कार्य ==
[[Image:Bidirectional scattering distribution function.svg|thumb|right|बिखराव वितरण कार्य]]सतहों के परावर्तक गुणों (मात्रा, दिशा और रंग) को द्विदिश परावर्तन वितरण फ़ंक्शन का उपयोग करके प्रतिरूपित किया जाता है। संचरित प्रकाश के समतुल्य (प्रकाश जो वस्तु के माध्यम से जाता है) द्विदिश बिखरने वाले वितरण समारोह हैं। एक पाथ-ट्रेसर जटिल, सावधानी से तैयार किए गए या -मापे गए वितरण कार्यों का पूरा लाभ उठा सकता है, जो किसी वस्तु की उपस्थिति (कंप्यूटर-ग्राफिक्स-शब्दों में सामग्री, बनावट, या छायांकन) को नियंत्रित करता है।
[[Image:Bidirectional scattering distribution function.svg|thumb|right|बिखराव वितरण कार्य]]सतहों के परावर्तक गुणों (मात्रा, दिशा और रंग) को द्विदिश परावर्तन वितरण फलन का उपयोग करके प्रतिरूपित किया जाता है। संचरित प्रकाश के समतुल्य (प्रकाश जो वस्तु के माध्यम से जाता है) द्विदिश बिखरने वाले वितरण फलन हैं। एक पथ-अनुरेखक जटिल, सावधानी से तैयार किए गए या -मापे गए वितरण कार्यों का पूरा लाभ उठा सकता है, जो किसी वस्तु की उपस्थिति (कंप्यूटर-ग्राफिक्स-शब्दों में सामग्री, बनावट, या छायांकन) को नियंत्रित करता है।


== यह भी देखें ==
== यह भी देखें ==


* अर्नोल्ड (सॉफ्टवेयर)
* अर्नोल्ड (सॉफ्टवेयर)
* [[ब्लेंडर (सॉफ्टवेयर)]] - 3डी प्रोग्राम जो साइकल को एकीकृत करता है, एक पाथ-ट्रेसिंग-जीपीयू-त्वरित रेंडरिंग इंजन
* [[ब्लेंडर (सॉफ्टवेयर)]] - 3डी प्रोग्राम जो साइकल को एकीकृत करता है, एक पथ-अनुरेखण-जीपीयू-त्वरित रेंडरिंग इंजन
* [[ऑक्टेन रेंडर]]
* [[ऑक्टेन रेंडर]]
* [[पिक्सर रेंडरमैन]]
* [[पिक्सर रेंडरमैन]]

Revision as of 01:23, 22 March 2023

तकनीक की उल्लेखनीय विशेषताओं का प्रदर्शन करते हुए, पथ अनुरेखण का उपयोग करके प्रस्तुत की गई छवि

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

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

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

इतिहास

रेंडरिंग समीकरण और कंप्यूटर-ग्राफिक्स में इसका उपयोग 1986 में जेम्स काजिया द्वारा प्रस्तुत किया गया था।[1] रेंडरिंग समीकरण के पूर्णांकी के लिए मोंटे कार्लो एकीकरण को खोजने के लिए एक कलन विधि के रूप में पथ अनुरेखण को प्रारम्भ किया गया। एक दशक बाद, लाफोर्ट्यून ने द्विदिश पथ-अनुरेखण सहित कई परिशोधन का सुझाव दिया।[2]

मेट्रोपोलिस सुगम परिवहन, कठिन दृश्यों के प्रदर्शन को बढ़ाने के लिए पहले से खोजे गए रास्तों को परेशान करने की एक विधि, 1997 में एरिक वीच और लियोनिदास जे. गुइबास द्वारा प्रस्तुत की गई थी।

हाल ही में, CPU और जीपीयू छवियों को अधिक तेज़ी से प्रस्तुत करने के लिए पर्याप्त शक्तिशाली हो गए हैं, जिससे पथ अनुरेखण कलन विधि में अधिक व्यापक रुचि पैदा हुई है। टिम परसेल ने पहली बार 2002 में जीपीयू पर चल रहे एक वैश्विक रोशनी कलन विधि प्रस्तुत किया।[3] फरवरी 2009 में, विदिआ के ऑस्टिन रॉबिसन ने जीपीयू पर चलने वाले पथ अनुरेखक के पहले व्यावसायिक कार्यान्वयन का प्रदर्शन किया [4], और अन्य कार्यान्वयनों का अनुसरण किया गया है, जैसे कि अगस्त 2009 में व्लादिमीर कोयलाज़ोव। [5] इसे GPGPU प्रोग्रामिंग टूलकिट जैसे CUDA और ओपनसीएल और GPU किरण अनुरेखण SDK जैसे OptiX की परिपक्वता से सहायता मिली थी।

पथ-अनुरेखण ने फिल्म उद्योग में एक महत्वपूर्ण भूमिका निभाई है। पहले की फिल्में सीजी-दृश्य प्रभाव और अनुप्राणन बनाने के लिए स्कैनलाइन-रेंडरर्स पर निर्भर करती थीं। 1998 में, ब्लू स्काई स्टूडियोज ने अपने मालिकाना CGI स्टूडियो पथ-अनुरेखण-रेंडरर के साथ अकादमी पुरस्कार विजेता लघु-फिल्म बनी (1998 फिल्म) प्रदान की, जिसमें शीतल परछाई और अप्रत्यक्ष-रोशनी-प्रभाव सम्मिलित थे। सोनी पिक्चर्स इमेजवर्क्स की मॉन्स्टर हाउस (फिल्म), 2006 में, व्यावसायिक अर्नोल्ड (सॉफ्टवेयर) रेंडरर का उपयोग करते हुए, पूरी तरह से पथ-अनुरेखक में प्रस्तुत की जाने वाली पहली अनुप्राणित फीचर फिल्म थी। इसके अतिरिक्त, वॉल्ट डिज्नी अनुप्राणन स्टूडियो 2014 में बिग हीरो 6 (फिल्म) के निर्माण के बाद से हाइपरियन के रूप में जाने जाने वाले अपने स्वयं के अनुकूलित पथ अनुरेखक का उपयोग कर रहा है।[6] पिक्सर अनुप्राणन स्टूडियो ने अपने वाणिज्यिक रेंडरमैन रेंडरर के लिए पथ अनुरेखण को भी अपनाया है।

विवरण

काजिया का प्रतिपादन समीकरण प्रकाशिकी के तीन विशेष सिद्धांतों का पालन करता है; वैश्विक रोशनी का सिद्धांत, तुल्यता का सिद्धांत (परावर्तित प्रकाश उत्सर्जित प्रकाश के बराबर है), और दिशा का सिद्धांत (परावर्तित प्रकाश और बिखरे हुए प्रकाश की एक दिशा होती है)।

वास्तविक दुनिया में, वस्तुएं और सतहें इस तथ्य के कारण दिखाई देती हैं कि वे प्रकाश को प्रतिबिंबित कर रहे हैं। यह परावर्तित प्रकाश बदले में अन्य वस्तुओं को रोशन करता है। उस सरल अवलोकन से, दो सिद्धांत अनुसरण करते हैं।

I. दिए गए आंतरिक दृश्य के लिए, कमरे में प्रत्येक वस्तु को हर दूसरी वस्तु को रोशनी देने में योगदान देना चाहिए।

ii. दूसरा, प्रकाश स्रोत से निकलने वाली रोशनी और सतह से परावर्तित रोशनी के बीच कोई अंतर नहीं है।

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

III. सतहों से आने वाली रोशनी को एक विशेष दिशा में बिखरना चाहिए जो आने वाली रोशनी की आने वाली दिशा का कुछ कार्य है, और बाहर जाने वाली दिशा का प्रतिरूप लिया जा रहा है।

काजिया का समीकरण इन तीन सिद्धांतों का एक पूर्ण सारांश है, और पथ-अनुरेखण, जो समीकरण के समाधान का अनुमान लगाता है, इसके कार्यान्वयन में उनके प्रति वफादार रहता है। दृग्विद्या के अन्य सिद्धांत हैं जो काजिया के समीकरण का केंद्रबिन्दु नहीं हैं, और इसलिए कलन विधि द्वारा प्रायः मुश्किल या गलत तरीके से अनुकरण किया जाता है। पथ अनुरेखण तीन सिद्धांतों में निहित ऑप्टिकल घटना से भ्रमित है। उदाहरण के लिए,

  • उज्ज्वल, तेज क्षारक (दृग्विद्या); अंतरिक्ष में रोशनी के घनत्व से चमक का पैमाना।
  • अधस्तल प्रकीर्णन| उपसतह-प्रकीर्णन; उपरोक्त सिद्धांत III का उल्लंघन।
  • रंगीन विपथन, प्रतिदीप्ति, इंद्रधनुषीपन; प्रकाश आवृत्तियों का एक वर्णक्रम है।

कलन विधि

निम्नलिखित स्यूडोकोड सहज पथ-अनुरेखण करने के लिए एक प्रक्रिया है। ट्रेसपाथ फलनपिक्सेल के एकल प्रतिरूप की गणना करता है, जहां केवल गैदरिंग पथ पर विचार किया जाता है।

<वाक्यविन्यास लैंग = सी लाइन = 1> कलर ट्रेसपाथ (रे रे, काउंट डेप्थ) {


 Color TracePath(Ray ray, count depth) {
  if (depth >= MaxDepth) {
    return Black;  // Bounced enough times
 ray.FindNearestObject();
  if (ray.hitSomething == false) {
    return Black;  // Nothing was hit.
  }
   Material material = ray.thingHit->material;
  Color emittance = material.emittance;

  // Pick a random direction from here and keep going.
  Ray newRay;
  newRay.origin = ray.pointWhereObjWasHit;

  // This is NOT a cosine-weighted distribution!
  newRay.direction = RandomUnitVectorInHemisphereOf(ray.normalWhereObjWasHit);
   // Probability of the newRay
  const float p = 1 / (2 * PI);

  // Compute the BRDF for this ray (assuming Lambertian reflection)
  float cos_theta = DotProduct(newRay.direction, ray.normalWhereObjWasHit);
  Color BRDF = material.reflectance / PI;

  // Recursively trace reflected light sources.
  Color incoming = TracePath(newRay, depth + 1);

  // Apply the Rendering Equation here.
  return emittance + (BRDF * incoming * cos_theta / p);
}
 void Render(Image finalImage, count numSamples) {
  foreach (pixel in finalImage) {
    foreach (i in numSamples) {
      Ray r = camera.generateRay(pixel);
      pixel.color += TracePath(r, 0);
    }
    pixel.color /= numSamples;  // Average samples.
  }

} </वाक्यविन्यास हाइलाइट>

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

ऊर्जा के संरक्षण को सुनिश्चित करने के लिए ध्यान में रखने के लिए अन्य विचार हैं। विशेष रूप से, सरल स्तिथि में, विसरित बीआरडीएफ का प्रतिबिंब से अधिक नहीं होना चाहिए या वस्तु प्राप्त होने से अधिक प्रकाश को प्रतिबिंबित करेगी (हालांकि यह उपयोग की गई प्रतिरूप योजना पर निर्भर करती है, और सही होना कठिन हो सकता है)।

द्विदिश पथ-अनुरेखण

पूर्णांकी का प्रतिरूप निम्नलिखित दो अलग-अलग तरीकों में से किसी एक द्वारा किया जा सकता है:

  • पश्चगामी-पथ-अनुरेखण, जहां पथ कैमरे से प्रारम्भ होकर दृश्य के चारों ओर उछलते हुए तब तक उत्पन्न होते हैं जब तक कि वे एक प्रकाश स्रोत का सामना नहीं करते। इसे पीछे की ओर संदर्भित किया जाता है क्योंकि कैमरे से पथ प्रारम्भ करना और प्रकाश स्रोत की ओर जाना उस दिशा के विपरीत होता है जिस दिशा में प्रकाश वास्तव में यात्रा कर रहा होता है। यह अभी भी एक ही परिणाम उत्पन्न करता है क्योंकि सभी प्रकाशिक तंत्र प्रतिवर्ती हैं।
  • सुगम-अनुरेखण (या आग्रवर्ती-पथ-अनुरेखण), जहां पथ प्रकाश स्रोतों से प्रारम्भ होते हैं और कैमरे के सामने आने तक दृश्य के चारों ओर उछलते हैं।

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

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

प्रदर्शन

प्रति पिक्सेल नमूनों की संख्या बढ़ने पर शोर कम हो जाता है। शीर्ष बाएँ प्रति पिक्सेल 1 प्रतिरूप दिखाता है, और प्रत्येक वर्ग को बाएँ से दाएँ दोगुना करता है।

एक पथ-अनुरेखक छवि के पिक्सेल का लगातार प्रतिरूप लेता है। छवि प्रति पिक्सेल केवल कुछ नमूनों के बाद पहचानी जाने लगती है, शायद 100। हालाँकि, छवि को अभिसरण करने और शोर को स्वीकार्य स्तर तक कम करने के लिए सामान्यतः अधिकांश छवियों के लिए लगभग 5000 प्रतिरूप लगते हैं, और विकृतिजन्य (गणित) स्तिथियों के लिए बहुत अधिक प्रतिरूप लगते हैं। शोर विशेष रूप से अनुप्राणन के लिए एक समस्या है, जिससे उन्हें यादृच्छिक धब्बों की सामान्य रूप से अवांछित चलचित्र-कण की गुणवत्ता मिलती है।

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

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

बिखराव वितरण कार्य

बिखराव वितरण कार्य

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

यह भी देखें

टिप्पणियाँ

  1. ^ Kajiya, J. T. (1986). "The rendering equation". Proceedings of the 13th annual conference on Computer graphics and interactive techniques. ACM. CiteSeerX 10.1.1.63.1402.
  2. ^ Lafortune, E, Mathematical Models and Monte Carlo Algorithms for Physically Based Rendering, (PhD thesis), 1996.
  3. ^ Purcell, T J; Buck, I; Mark, W; and Hanrahan, P, "Ray Tracing on Programmable Graphics Hardware", Proc. SIGGRAPH 2002, 703 – 712. See also Purcell, T, Ray tracing on a stream processor (PhD thesis), 2004.
  4. ^ Robison, Austin, "Interactive Ray Tracing on the GPU and NVIRT Overview", slide 37, I3D 2009.
  5. ^ Vray demo; Other examples include Octane Render, Arion, and Luxrender.
  6. ^ Seymour, Mike. "Disney's new Production Renderer 'Hyperion' – Yes, Disney!". fxguide. Retrieved 16 September 2017.
  7. ^ Veach, E., and Guibas, L. J. Metropolis light transport. In SIGGRAPH’97 (August 1997), pp. 65–76.
  8. SmallPt is an educational path tracer by Kevin Beason. It uses 99 lines of C++ (including scene description). This page has a good set of examples of noise resulting from this technique. [Category:Global illumination algorith