सामान्य बनाम सामान्य नक्शे


17

मैं 3D मॉडल को पार्स करने के लिए Assimp परिसंपत्ति आयातक ( http://assimp.sourceforge.net/lib_html/index.html ) का उपयोग कर रहा हूं ।

अब तक, मैंने केवल सामान्य वैक्टरों को बाहर निकाला है जो कि मेरी जाली में प्रत्येक शीर्ष के लिए परिभाषित हैं। फिर भी मुझे सामान्य नक्शे पर विभिन्न ट्यूटोरियल मिले हैं ...

जैसा कि मैं इसे सामान्य मानचित्रों के लिए समझता हूं, सामान्य वैक्टर सामान्य मानचित्र के प्रत्येक टेक्सल में संग्रहीत होते हैं, और आप इन्हें सामान्य बनावट से बाहर खींचते हैं।

मानदंडों को प्राप्त करने के दो तरीके क्यों हैं, जिनमें से एक को सबसे अच्छा अभ्यास माना जाता है और क्यों?

जवाबों:


31

संक्षिप्त जवाब

सामान्य मानचित्र और नॉर्मल दो अलग-अलग चीजें हैं: नॉर्मल्स किसी भी जाल / सतह की एक ज्यामितीय संपत्ति है इसका उपयोग छायांकन और प्रकाश गणना के लिए अनन्य नहीं है, लेकिन वास्तव में भौतिक विज्ञान में उदाहरण के लिए कई अन्य उपयोग हैं। सामान्य नक्शे ऐसे टेक्सचर होते हैं जो कंप्यूटर ग्राफिक्स में उपयोग किए जाने वाले सामान्य वैक्टर को धक्कों का अनुकरण करने के लिए एन्कोड करते हैं।

लंबा जवाब

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

ओपनजीएल मानदंडों में प्रति शीर्ष (इसलिए वर्टेक्स विशेषताएँ कहा जाता है) निर्दिष्ट किया जाता है, भले ही उन्हें केवल प्रत्येक चेहरे के लिए गणना की जा सकती है इस मामले में आपको एक चेहरे में प्रत्येक शीर्ष के लिए एक ही सामान्य निर्दिष्ट करने की आवश्यकता है। आम तौर पर ओपनगेल द्वारा एक चेहरे (त्रिकोण) के प्रत्येक शीर्ष पर इंटरपोल किया जा सकता है, ताकि आप प्रति पिक्सेल प्रति प्रतिबिंबित प्रकाश की गणना न कर सकें, इसलिए अधिक सटीक परिणाम दे सकते हैं ।

नॉर्मल मैपिंग : दूसरी तरफ कंप्यूटर ग्राफिक्स में एक ऐसी तकनीक है जो नॉरमल को टेक्सचर मैप में एनकोड करती है, इसलिए प्रत्येक नॉर्मल को टेक्सल में एनकोड किया जाता है। यह आमतौर पर धक्कों और डेंट्स (जैसे बम्प मैपिंग, लंबन मैपिंग) के प्रकाश को फीका करने के लिए उपयोग किया जाता है।

चूंकि मानदंड की गणना मेष / सतह के ज्यामितीय गुणों के आधार पर की जाती है, इसलिए नॉर्मल मैप्स आपको वैकल्पिक नॉर्म्स प्रदान करेंगे जो धक्कों को अधिक पॉलीगोन जोड़े बिना सतह पर विस्तार करने के लिए अनुकरण कर सकते हैं।

सामान्य नक्शे आमतौर पर बहुत अधिक विस्तृत 3 डी मॉडल का उपयोग करके उत्पन्न होते हैं, फिर इस मॉडल के आधार पर मानदंडों की गणना करते हैं और इसे सामान्य मानचित्र में एन्कोडिंग करते हैं।

हमें दोनों की आवश्यकता क्यों है?

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

ध्यान रखें कि एक सामान्य को सतह का ज्यामितीय गुण माना जाता है और केवल प्रकाश गणना की तुलना में इसके कई और उपयोग हैं। दूसरी ओर सामान्य नक्शे आमतौर पर सतही प्रभावों के लिए उपयोग किए जाते हैं।

स्पर्शरेखा रिक्त स्थान क्यों महत्वपूर्ण हैं, यह समझाने के लिए उत्तर देना:

संक्षिप्त उत्तर: अंतर्निहित ज्यामिति से सामान्य मानचित्र बनाने के लिए स्पर्शरेखा रिक्त स्थान का उपयोग किया जाता है।

[संपादित करें] स्पर्शरेखा स्थान में सामान्य मानचित्र और विश्व अंतरिक्ष में सामान्य मानचित्र का प्रतिनिधित्व करने के लिए छवि को जोड़ा गया।

यहां छवि विवरण दर्ज करें

लंबे उत्तर: नीचे दी गई तस्वीर यूवी प्लेन और सामान्य को दर्शाती है जो स्पर्शरेखा स्थान को परिभाषित करती है, जब एक सामान्य मानचित्र बनाते हैं तो हम पहले से ही जान जाएंगे कि उपयोग किए गए स्थान में हमेशा Z दिशा में नॉर्मल पॉइंटिंग होगी (इसीलिए सामान्य नक्शे नीले रंग के दिखते हैं) , यह हमें सतह वक्रता ** की अनदेखी करने में मदद करेगा।

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

यहां छवि विवरण दर्ज करें

उपर्युक्त दो चित्रों में यह स्पष्ट है कि स्पर्शरेखा स्थान सामान्य ज्यामिति (दाएं) को अंतर्निहित ज्यामिति से स्वतंत्र बनाता है क्योंकि सभी मानदंड समान दिशा में समान होते हैं, जिससे धक्कों के प्रभाव का अनुकरण किया जा सकता है।

** सतह वक्रता को उस राशि द्वारा परिभाषित किया जाता है जो एक ज्यामितीय वस्तु एक रेखा के मामले में सपाट, या सीधे होने से भटकती है लेकिन इसे संदर्भ के आधार पर अलग-अलग तरीकों से परिभाषित किया जाता है।

स्पर्शरेखा स्थान प्रतिनिधित्व


1
यदि आप एक चित्र दिखा सकते हैं कि कैसे एक सामान्य बनावट को अकेले एक सामान्य और स्पर्श क्षेत्र के बिना प्रति-शीर्ष आधार पर परिभाषित किए बिना लगातार उपयोग नहीं किया जा सकता है, तो आप इस शुरुआत को सबसे शुरुआत करने वाले ग्राफिक्स प्रोग्रामर के लिए इस शानदार मुद्दे पर सबसे अच्छा जवाब देंगे!
तेओद्रोन

अच्छा जवाब है, लेकिन मानदंडों को प्रत्येक चेहरे पर ओपनजीएल द्वारा प्रक्षेपित नहीं किया जाता है। आपको इसे अपने आप से करना होगा और OpenGL (या अपने shader कोड) के लिए प्रक्षेपित सामान्य की आपूर्ति करना होगा।
अनास्तासियोस जी

1
@AnastasiosG मुझे लगता है कि वह अलग-अलग डेटा के डिफ़ॉल्ट व्यवहार के बारे में बात कर रहा है क्योंकि यह एक त्रिकोण के पार प्रक्षेपित हो जाता है जब भी एक टुकड़ा एक विशिष्ट आदिम के लिए गणना की जाती है। मुझे पता है कि एक ध्वज था जिसे आप ओपनगेल को एक त्रिकोण के संभावित 3 शीर्ष मानदंडों में से एक विशिष्ट सामान्य का उपयोग करने के लिए कह सकते थे, लेकिन यह डिफ़ॉल्ट व्यवहार नहीं है जैसा कि मुझे पता है।
तियोड्रोन

1
@AnastasiosG मुझे लगा कि इस तरह के विवरण का कोई भी पक्ष जवाब नहीं देगा क्योंकि यह OpenGL का उपयोग करने के बारे में नहीं है। लेकिन अगर वह मदद करता है, तो निश्चित पाइपलाइन युग में आपको glGLhaodModel (GL_SMOOTH) इनवर्टर की आवश्यकता होती है जो ओपनपोल को प्रक्षेपित करने के लिए बताता है। प्रोग्राम योग्य पाइपलाइन युग में आप चर को अलग-अलग या छाया में / बाहर के रूप में परिभाषित करते हैं ताकि ओपनग्लोप्लेट प्रक्षेपित कर सके।
15

मैं जोड़ना चाहूंगा कि बम्प मैप बस (ज्यामितीय) मानदंड हैं जो एक काले और सफेद बनावट के आधार पर उठाए / उतारे गए हैं। :)
एंटालपी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.