बम्प, सामान्य और विस्थापन मानचित्रों को गामा को सही क्यों नहीं किया जाना चाहिए?


9

तो मैं काफी तकनीकी दृष्टिकोण से इस पर अपना सिर लपेटने की कोशिश कर रहा हूं।

जब आप अपने shader में Bump या Normal या Displacement का मैप जोड़ते हैं तो उन्हें गामा सही नहीं होना चाहिए। लेकिन फैलाना बनावट होना चाहिए। लेकिन क्यों?

जब आप JPEG, PNG या TIFF जैसे प्रारूप के साथ 8bit (या 16bit Integer) में किसी फ़ाइल को सहेजते हैं तो उन्हें 0.4545 (1 / 2.2) का गामा जल जाता है। इसलिए एक कैमरा वास्तविक दुनिया (जो रैखिक है) से प्रकाश को पकड़ लेता है। और जब फोटो को JPEG के रूप में 1 / 2.2 के गामा मान के रूप में सहेजा जाता है, तो सूचना को 8bit में संपीड़ित करने के तरीके के रूप में जोड़ा जाता है, और तब जब आप मॉनिटर पर छवि देखते हैं जो 2.2 का एक गामा जोड़ता है जिससे ल्यूमिनेंस को फिर से रैखिक बना देता है।

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

अगर मैं 3ds Max में एक Bump मेप को 2.2 के इनपुट गामा के साथ लोड करता हूं, जैसे कि डिफ्यूज टेक्सचर के साथ करता है, तो diffuse सही दिखता है, लेकिन बंप गलत दिखता है, इसलिए मुझे bump के लिए 1.0 में इनपुट गामा सेट करना होगा इसे सही दिखने के लिए, लेकिन जैसा कि मैंने कहा: क्यों, दोनों छवि फ़ाइलों में 1 / 2.2 गामा जल गया है, है ना?

जवाबों:


5

तथ्य यह है कि एक तस्वीर गामा अंतरिक्ष में संग्रहीत है, पीएनजी या जेपीईजी के साथ नहीं करना है, यह इस तथ्य के साथ करना है कि यह एक तस्वीर है।

कैमरा 50% तीव्रता का पता लगाता है, लेकिन इसे 127 के बजाय 187 के रूप में सहेजने जा रहा है, क्योंकि रंग की जानकारी रखने के लिए यह अधिक कुशल है जो मानव आंखों के लिए मायने रखता है जब आपके पास केवल 256 अलग-अलग संभावित मान होते हैं। और यदि आप ऐसा बताते हैं तो फ़ोटोशॉप करता है।

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

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


आप फ़ोटोशॉप को गामा के साथ एक छवि को बचाने के लिए कैसे कह सकते हैं जैसा कि आपने ऊपर कहा था: "और अगर आप ऐसा बताते हैं तो फ़ोटोशॉप करता है।"
क्रिस्टोफर हेलैंडर

यह "क्यों" बिल्कुल नहीं समझाता है। यह सिर्फ "क्या" दोहराता है।
user1118321

@ user1118321: मेरा मानना ​​है कि यह करता है। मैंने इसे स्पष्ट करने के प्रयास में जोर दिया।
जूलियन गुर्टाल्ट

खैर, सच है लेकिन यह अभी भी वास्तव में क्यों नहीं समझाता है। मुझे लगता है मैं एक ही समस्या है मैं सिर्फ इस तरह के संपीड़न द्वारा किए गए लाभ या हानि की कमी का उल्लेख करता हूं। कोई ज़रूरत नहीं है, लेकिन ऐसा क्यों है कि छवियों का डेटा मानव इंद्रियों के कारण अजीब है, जबकि हमारी स्थानिक तर्क प्रकृति में अधिक रैखिक है (जहां तक ​​3 डी ऐप का संबंध है)
joojaa

3

JPG, PNG या अन्य किसी भी 8 बिट इमेज फॉर्मेट में आंतरिक रूप से 1 / 2.2 गामा नहीं है। वे सिर्फ 0-255 से मान स्टोर करते हैं। उस डेटा की व्याख्या कैसे की जाती है यह उस सॉफ्टवेयर पर निर्भर करता है जो उन फाइलों को पढ़ता और लिखता है। दिलचस्प तथ्य यह है कि अधिकांश छवि संपादन सॉफ्टवेयर डिफ़ॉल्ट रूप से गामा रंग स्थान का उपयोग करता है। सभी ब्रश, प्रभाव, फिल्टर और यहां तक ​​कि रंग बीनने वाले सभी गामा स्थान में काम करते हैं। बस फ़ोटोशॉप में रंग बीनने वाले पर ग्रे के रंगों को देखें। वे एक रैखिक वितरण का पालन नहीं करते हैं।

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


यहाँ एक YouTube वीडियो यह भी समझा रहा है कि एक छवि में संग्रहीत मूल्य 1 / 2.2 है (लेकिन वह इसे सरल करता है और केवल यह कहता है कि यह वर्गमूल है, पाठ में इसका एक अस्वीकरण है।) कंप्यूटर का रंग टूटा हुआ है - MinutePhileics लिंक।
क्रिस्टोफर हेलैंडर

@KristofferHelander हां, लेकिन वह कहते हैं कि यह केवल कैमरा है जो मानों को वर्गमूल के रूप में संग्रहीत करता है और केवल वह डिस्प्ले जो इसे वापस बनाता है। फ़ोटोशॉप जैसे छवि संपादन सॉफ्टवेयर तो बस खुले और बिना किसी रूपांतरण के छवि को बचाएं, जिसके परिणामस्वरूप वीडियो में कलाकृतियों को दिखाया जाता है जब आप रंगों को मिश्रण करने का प्रयास करते हैं।
क्विंचिलियन

अगर मैं इस पर गलत हूं तो मुझे सुधारें। जब मैं फ़ोटोशॉप में एक ढाल रैंप खींचता हूं जो स्क्रीन पर मेरे लिए रैखिक दिखता है, तो उस रैंप में मूल्य वास्तव में रैखिक होते हैं। लेकिन फ़ोटोशॉप 1 / 2.2 का एक देखने वाला गामा जोड़ता है क्योंकि मॉनिटर 2.2 का गामा जोड़ता है, इस प्रकार चित्र पिक्सेल मान रैखिक होते हैं और वे रेखीय दिखते हैं। लेकिन यह 1 / 2.2 गामा केवल एक देखने वाला गामा है जो फ़ोटोशॉप छवि को प्रदर्शित करने के लिए उपयोग करता है, यह छवि में बेक नहीं किया जाता है, और इसलिए छवि के लिए कोई गामा सुधार 3 डी सॉफ्टवेयर में करने की आवश्यकता नहीं है, (गामा 1.0 का उपयोग करें) मान पहले से ही रैखिक हैं?
क्रिस्टोफर हेलैंडर

@KristofferHelander goo.gl/yqkeUP निचला ढाल भौतिक चमक को दर्शाता है। यदि फ़ोटोशॉप ढाल को चित्रित करने या छवि को प्रदर्शित करने के लिए 1 / 2.2 का एक गामा लागू करता है, तो आप नीचे ढाल देखेंगे। इसके बजाय, आप शीर्ष एक को देखते हैं, जो संयोग से रैखिक प्रतीत होता है, लेकिन नहीं है। यह फ़ोटो देखने के लिए भी काम नहीं करेगा। कैमरे ने फोटो को बचाते समय 1 / 2.2 लागू किया, फिर फ़ोटोशॉप एक और 1 / 2.2 लागू करेगा, लेकिन डिस्प्ले केवल एक बार 2.2 का गामा जोड़ता है। यह सही नहीं लगेगा।
13

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

3

परिचय

यह इस बात पर निर्भर करता है कि आप मानचित्र कैसे बनाते हैं! आगे बढ़ने से पहले निम्नलिखित पर विचार करें और इसे थोड़ी देर के लिए डूबने दें:

  1. छवि को आपकी आंखों के लाभ के लिए एक गामा सुधार के साथ प्रदर्शित किया जाता है
  2. डेटा अभी भी डेटा है। गामा सुधार प्रदर्शन भाग के लिए है न कि डेटा भाग के लिए।

अब एक बम्प मानचित्र एक पेंट अनुप्रयोग के साथ आकर्षित करने के लिए बहुत कठिन है। क्योंकि यह देखने के लिए मुश्किल है कि क्या आप सही ढंग से रैखिक थे। इसलिए आप मूल्यों को देखते हुए ऐसी चीजों का उपयोग करते हैं। अब यहाँ पकड़ है:

  • यदि आप तय करते हैं कि 128 आपकी तीव्रता में आधा है तो वह वास्तविकता है। चूंकि डेटा स्ट्रीम में आपकी एन्कोडिंग है। डेटा वह है जो आप इसकी व्याख्या करते हैं क्योंकि यह मानव आंखों और मॉनिटर के लिए नहीं है। कौन परवाह करता है कि मॉनीटर उन सभी के रूप में मूल्यों को दिखाता है कि आप इसे संपादित करने वाले डेटा की व्याख्या कैसे करते हैं।

टक्कर / विस्थापन मानचित्र बनाना

ठीक है, तो अब मैंने वर्णन किया है कि डेटा व्याख्या तक है। लेकिन आप डेटा को रैखिक क्यों समझेंगे? क्योंकि तब आप अपनी साइड प्रोफाइल को बेहतर तरीके से डिजाइन कर सकते हैं। देखें कि आप क्या कर सकते हैं अपने ब्रश की 100% अपारदर्शिता के बारे में सोचें क्योंकि आप जिस ऊँचाई को उठाना चाहते हैं या जिस परत को बनाना चाहते हैं। तब आप अपने स्टैंप ब्रश के आकार को डिजाइन करने के लिए घटता उपकरण का उपयोग कर सकते हैं (क्योंकि आपको लगता है कि डेटा रैखिक है)।

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

चित्र 1 : एक सक्शन कप स्टाम्प।

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

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

चित्र 2 : समान छवि विस्थापित और व्याख्या की गई रेखीय (ध्यान दें कि मैंने अपने डिफ़ॉल्ट bb आकार में फिट होने के लिए ऊंचाई को थोड़ा बढ़ाया है), इस उद्देश्य के लिए काम कर रहा है।

तकनीकी रूप से रैखिक बेहतर है।

एक सिंथेटिक मानचित्र का दूसरों के खर्च पर कुछ मूल्यों को संपीड़ित करने का कोई लाभ नहीं है। रैखिक स्वाभाविक रूप से बेहतर है क्योंकि आपके टक्कर का प्रसार इस तरह से बेहतर है। यही कारण है कि आप इसे गामा सही तरीके से एन्कोडिंग संसाधनों को बर्बाद कर रहे हैं।

दूसरे एक छवि को यह निर्दिष्ट करने की आवश्यकता नहीं है कि यह किस रंग के स्थान पर है। इसकी छवि संपादकों का मानना ​​है कि यह sRGB एन्कोडेड है। आपके पास एक ही व्याख्या करने का कोई कारण नहीं है, कोई जानकारी का मतलब सिर्फ इतना नहीं है: "किसी ने भी यह लिखने के लिए परेशान नहीं किया कि वे क्या सोच रहे थे"। तो शायद बिंदु बनाया जाना चाहिए आपको इसे रैखिक टैग करना चाहिए। लेकिन यहाँ रगड़ना है ... आपका कंप्यूटर आसानी से सुलभ रैखिक प्रोफ़ाइल के साथ नहीं आता है।

फ़ोटोशॉप और ब्लर के बारे में क्या?

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

लेकिन आप इसे ठीक करने के लिए 2 चीजों में से एक कर सकते हैं:

  1. धुंधला के गामा सुधार को अक्षम करें
  2. अपने कार्य स्थान को एक रेखीय प्रोफ़ाइल पर सेट करें

निष्कर्ष

इसका कारण आपके पास कठिन समय है

  1. आप नहीं जानते कि दूसरे लोग क्या सोचते हैं, आप बस यह नहीं जानते कि उन्हें गामा सही होना चाहिए या नहीं।
  2. कि एक अनुप्रयोग है कि छवियों को छवियों के रूप में व्यवहार करता है का उपयोग कर

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


आपके इनपुट के लिए धन्यवाद - वाह! :) मुझे इस पर एक नज़र होगी जब मुझे अधिक खाली समय मिलेगा। मैं तुम्हें वापस मिल जाएगा, धन्यवाद!
क्रिस्टोफर हेलैंडर

Even people who do not know about gamma tend to do it linear for bump/displacement for some reasonसंभवतः इसलिए कि वे नक्शे तैयार किए गए हैं।
तारा

3

वास्तव में, यदि आपका बम्प या विस्थापन मानचित्र उस 0.45 गामा सुधार के साथ सहेजा गया है, तो यह गलत है। इन मानचित्रों में रंग के बजाय ज्यामितीय जानकारी होती है, और इस तरह, बस रेखीय रूप से एन्कोड किया जाना चाहिए।

संबंधित समस्या और Adobe Photoshop के लिए एक फिक्स के लिए, इस स्लाइड डेक को देखें: https://docs.google.com/pretation/d/1vS5nAAnXbZ8Pt6-dXxy-xEXDkjjXTmNnthNGccorl0/edit#slide=id.g14b3e28660_0


यह एक सामान्य मानचित्र के लिए विशेष रूप से सच है आप उम्मीद कर रहे थे कि वेक्टर की लंबाई 1.
पॉलएच
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.