पाथ ट्रेसिंग

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

यह भी देखें

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

टिप्पणियाँ

 * 1)  Lafortune, E, Mathematical Models and Monte Carlo Algorithms for Physically Based Rendering, (PhD thesis), 1996.
 * 2)  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.
 * 3)  Robison, Austin, "Interactive Ray Tracing on the GPU and NVIRT Overview", slide 37, I3D 2009.
 * 4)  Vray demo; Other examples include Octane Render, Arion, and Luxrender.
 * 5)  Veach, E., and Guibas, L. J. Metropolis light transport. In SIGGRAPH’97 (August 1997), pp. 65–76.
 * 6) 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.
 * 1)  Veach, E., and Guibas, L. J. Metropolis light transport. In SIGGRAPH’97 (August 1997), pp. 65–76.
 * 2) 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