यह संभव है कि किरण के विपरीत इसके विपरीत को समझना आसान हो।
रेमिट्रिंग के साथ एक आदिम को प्रस्तुत करने के लिए, आपको एक फ़ंक्शन की आवश्यकता होती है, जो कि आदिम और इनपुट किरण को देखते हुए, आपको यह बताता है कि वास्तव में वह कहाँ आदिम को हिट करता है। फिर आप सभी संबंधित प्राथमिकताओं के खिलाफ किरण का परीक्षण कर सकते हैं, और निकटतम चौराहे को चुन सकते हैं। सीपीयू इस पर अच्छे हैं।
किरण के साथ, आपके पास इस तरह के एक सरल किरण चौराहे समारोह नहीं है। किरण पर एक बिंदु को देखते हुए, आप अनुमान लगा सकते हैं कि बिंदु सतह के कितने करीब है, लेकिन आपको यह नहीं पता है कि सतह को हिट करने के लिए आपको उस किरण को कितनी दूर तक फैलाने की आवश्यकता है।
तो, आप एक बार में एक कदम "मार्च" करते हैं:
किरण की "शुरुआत" पर - दृश्य प्रतिपादन के लिए पास का विमान, या बाउंडिंग वॉल्यूम के साथ चौराहे यदि यह दृश्य में सिर्फ एक वस्तु है। (नीचे दिए गए आरेख में P0)
सतह के कितने करीब हैं, इसका अनुमान लगाने के लिए अपनी दूरी के कार्य का मूल्यांकन करें। (आरेख में सबसे बड़ा वृत्त)
अपने अनुमान के अनुसार किरण के साथ आगे बढ़ें। यह कदम रूढ़िवादी रूप से छोटा होना चाहिए, इसलिए आपको विश्वास है कि आप कहीं भी सतह के माध्यम से सुरंग नहीं बनाएंगे।
अब आपके पास एक नया बिंदु है (नीचे P1) - एक नया अनुमान प्राप्त करें और दोहराएं।
तब तक अनुमान प्राप्त करना जारी रखें और तब तक आगे बढ़ते रहें जब तक कि आप सतह की दहलीज से कुछ दूरी पर न पहुँच जाएँ, या आप अपनी अधिकतम चरण गणना पर न चल जाएँ। (नीचे P4)
अब आपके पास सतह की गहराई है, और पास के नमूनों से मानदंड / परिवेश रोड़ा जैसी चीजों का अनुमान लगा सकते हैं, और इस डेटा का उपयोग पिक्सेल को प्रकाश और रंग करने के लिए कर सकते हैं।
जीपीयू रत्न 2, अध्याय 8 से उदाहरण आरेख
क्योंकि प्रत्येक किरण स्वतंत्र है और प्रत्येक चरण में केवल (आमतौर पर) स्थानीय जानकारी का उपयोग करती है, यह GPU पर समानांतर बनाने के लिए परिपक्व है। अक्सर, स्क्रीन पर केवल दो त्रिकोण खींचे जाएंगे। इनका रेखांकन करने के बाद, प्रत्येक पिंड विखंडन करने वाले के पास एक एकल किरण का प्रतिनिधित्व करता है। टुकड़ा shader उस किरण को तब तक मार्च करता है जब तक यह सतह तक नहीं पहुंच जाता है, परिणाम लौटाता है (अक्सर एक अलग पूर्ण-स्क्रीन पास में बनावट और छायांकन के लिए केवल गहराई मूल्य)।
सटीक चरण उस विशेष प्रभाव पर बहुत निर्भर करते हैं जिसे आप प्राप्त करने की कोशिश कर रहे हैं। Raymarching तकनीकों का उपयोग किया जाता है ...
- परम्परागत rasterized ज्यामिति (लंबन रोड़ा मानचित्रण) पर सतह विस्थापन अनुकरण करने के लिए heightfields
- स्क्रीनप्ले प्रतिबिंब जैसी चीजों के लिए दृश्य गहराई बफ़र्स
- 3 डी-सैंपल डेटासेट्स (अक्सर वैज्ञानिक / चिकित्सा) की कल्पना के लिए वॉल्यूम बनावट
- भग्न जैसी चीजों के प्रतिपादन के लिए निहित कार्य
- Iñigo Quilez के काम के रूप में प्रक्रियात्मक दूरी के क्षेत्र (ऊपर टिप्पणी में msell से महान लिंक)।
Raymarching का उपयोग प्रत्येक कदम पर सम्मिश्रण के साथ किया जाता है (अक्सर एक दूरी का आकलन करने के बजाय प्रत्येक बार निश्चित चरणों का उपयोग करके), इस तरह के उदाहरण के लिए, विकिपीडिया से उदाहरण के लिए ।
यह वास्तविक समय में विस्तृत बादलों को प्रस्तुत करने का एक लोकप्रिय तरीका बन गया है ।
यहां तक कि आंतरिक मानचित्रण , खिड़कियों के निर्माण के पीछे आंतरिक कमरे के विस्तार का एक तरीका है, जिसे किरण का एक रूप माना जा सकता है, जहां किरण को उस बिंदु से आगे बढ़ाया जाता है जो खिड़की से निकटतम दीवार, फर्श / छत, या फर्नीचर विमान में प्रवेश करती है।
यदि आपकी किसी विशिष्ट प्रकार की किरण का प्रभाव है, जिसमें आप रुचि रखते हैं, तो आप संभवतः विशिष्ट उदाहरणों के साथ एक नया प्रश्न पूछकर अधिक विस्तृत उत्तर प्राप्त कर सकते हैं। एक परिवार के रूप में, तकनीक एक छोटे से उत्तर में सब कुछ कवर करने के लिए बहुत विविध है। ;) मुझे आशा है कि यह आपको समझने के लिए एक रूपरेखा प्रदान करता है कि इन रंगों में हुड के नीचे क्या हो रहा है।