सामान्य नक्शे मुख्यतः नीले क्यों होते हैं?


44

एक यादृच्छिक रंग के बजाय सामान्य नक्शे मुख्यतः नीले क्यों होते हैं?

मुझे लगता है कि एक 3D ऑब्जेक्ट के सामान्य वैक्टर हर दिशा में इंगित कर सकते हैं, जैसे:

(1.0, 0.1, 0.5), (0.1, -0.5, 0.3), (-0.51, 0.46, -1.0) ... 

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

जवाबों:


71

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

मॉडल-स्पेस सामान्य नक्शा उदाहरण

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

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

सामान्य रूप से (कोई सज़ा नहीं) के घटक से लेकर [-1, 1]। लेकिन एक छवि में रंग के घटक [0, 1](या [0, 255]आमतौर पर वे सामान्यीकृत हैं [0, 1]) से लेकर होते हैं । इसलिए मानदंड बड़े किए जाते हैं और ऐसे ऑफसेट किए जाते हैं कि सामान्य (0, 0, 1)रंग बन जाता है (0.5, 0.5, 1)। यह हल्का नीला रंग है जिसे आप सामान्य नक्शे में देखते हैं, और यह स्पर्शरेखा-स्थान के मानदंडों का उपयोग करते समय प्रक्षेपित सामान्य से कोई विचलन इंगित करता है।

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


6
इस स्पष्टीकरण से प्यार करें - संक्षिप्त, इसमें गणित भी शामिल है, सामान्य मानचित्रों के लिए उपयोग किए जाने वाले विभिन्न प्रकारों पर विस्तृत और वे क्यों उपयोग किए जाते हैं।
टॉम 'ब्लू' पिडॉक

शुक्रियाbitangent और binormalसही के बीच अंतर पाने के लिए धन्यवाद
इमललेट

2
@imallett हाँ, सतहों में एक सामान्य, स्पर्शरेखा और कड़वापन होता है, जबकि वक्रों में एक स्पर्शरेखा, सामान्य और असामान्य होती है। कम से कम मेरी समझ तो यही है।
bcrist

8

सामान्य नक्शा ज्यादातर एक सतह से बाहर की ओर इंगित करता है। मान लें कि आप XYZ सामान्य वैक्टर के जेड घटक की सामान्य मैपिंग के साथ "गहराई" दिशा में जा रहे हैं और आरजीबी रंग अंतरिक्ष के बी घटक के लिए एक मैपिंग है, तो आप मुख्य रूप से नीले रंग के होने वाले सबसे सामान्य वैक्टर के साथ समाप्त हो जाएंगे।

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

एक लाल रंग की पूरी सतह का कोई मतलब नहीं होगा। यह एक ऐसी सतह को इंगित करेगा जो पूरी तरह से दाईं ओर का सामना कर रही है। यह सिर्फ ज्यामिति से तैयार किया जाएगा, न कि सामान्य नक्शे का हिस्सा।


3
इसे थोड़ा और स्पष्ट करने के लिए, normalmap आपके दृष्टिकोण से सामान्य-वेक्टर नहीं रखता है, लेकिन यह चेहरे के दृष्टिकोण से normalvector रखता है, इसलिए आपके चेहरे से आपके सामान्य होने के बाद, आप इसे इस के साथ मिलाते हैं normalmaps-normalvector। और चूंकि इसके ज्यादातर नीले, जो (0, 0, 1) है, इसका मतलब है कि आपके पास पहले से ही सामान्य है जो नहीं बदलता है। (इस बारे में सोचें, जैसे आप इसे खींचने से पहले फर्श पर हर चेहरे को सपाट रखेंगे, और फिर सामान्य से सामान्य मशीन का उपयोग करें, यह ज्यादातर ऊपर की तरफ होगा, अगर इसके दाएं या बाएं, आपके जाल के साथ कुछ गलत है)।
tkausl
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.