16bit अर्ध-फ्लोट रैखिक HDR छवियों के रूप में (फैलाना / अल्बेडो) बनावट?


10

इसलिए मैं कुछ समय के लिए इस बारे में सोच रहा था और उत्तर के लिए Google पर कोशिश की लेकिन बिना किसी सफलता के।

यदि आपके सभी बनावट 8bit LDR चित्र हैं, जैसे JPEGs, तो संभावित रूप से एक्सपोज़र कंट्रोल / टोन मैपिंग के साथ संघर्ष का कारण नहीं बन सकता। यदि आप अपनी छवि के रेंडरिंग एक्सपोज़र को समायोजित करते हैं, जो कि वास्तव में नहीं होने वाले बनावट में विस्तार को उजागर करना चाहिए, क्योंकि उन्हें कम गतिशील रेंज द्वारा क्लैंप किया गया था। तो क्या यह भी समझ में नहीं आता है कि एचडीआर छवियों के रूप में बनावट भी है, जिसे .exr के रूप में सहेजा गया है, एक अच्छा रंग प्रतिनिधित्व प्राप्त करने के लिए 16bit आधे फ्लोट के साथ रैखिक रंग अंतरिक्ष में (32 बिट "पूर्ण" फ्लोट ओवरकिल हो सकता है?)। अधिक विस्तृत और सही रंग मान रखने के लिए भी, मैं समझ सकता हूं, जीआई पर प्रभाव पड़ता है और रंग की गणना कैसे की जाती है?

या यह केवल आवश्यक नहीं है क्योंकि हम जो प्रतिपादन चाहते हैं उसका अंतिम परिणाम संभवतः बनावट के एक्सपोज़र स्तर के समान होने वाला है जब इसे किसी भी तरह से फोटो खींचा गया था? और चूंकि कैमरा ज्यादातर 12-14bit में शूट करता है, इसलिए आपको बनावट के कई एक्सपोज़र लेने होंगे और उन सभी को एक एचडीआरआई में एक साथ रखने के लिए अतिरिक्त काम करना होगा।

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

जवाबों:


8

फिल्म निर्माण में, हम लगभग कभी भी रंग / अल्बेडो के लिए 8-बिट बनावट का उपयोग नहीं करते हैं, क्योंकि बैंडिंग, आदि (जेपीईजी विशेष रूप से समस्याग्रस्त है क्योंकि कल्पना से, यह रैखिक मूल्यों के बजाय sRGB है।) हम या तो 'आधा' (16 बिट फ्लोट) का उपयोग करते हैं। ) या रंग / अल्बेडो बनावट के लिए 16-बिट अहस्ताक्षरित पूर्णांक मान।


1
वाह, धन्यवाद @LarryGritz! आपको सोनी पिक्चर्स इमेजवर्क्स के लिए काम करने पर विचार करते हुए, मैं आपको एक बहुत विश्वसनीय स्रोत के रूप में ले जाऊंगा! :) लेकिन आप इन बनावटों को कैसे पकड़ते हैं? अधिकांश कैमरे केवल 14bit RAW फ़ाइलों में शूट करते हैं, क्या आपके पास 16bit रैखिक सेंसर के साथ विशेष कैमरे हैं? या क्या आप बनावट के लिए कई तरह के एक्सपोजर लेते हैं, जैसे कि एचडीआरआई आधारित प्रकाश व्यवस्था के लिए एक करता है? या आप बस 14bit कैमरा RAW के साथ कैप्चर करते हैं और इसे "16bit" के रूप में सहेजते हैं? ओउ, और आप किस फ़ाइल प्रारूप का उपयोग करते हैं .tiff (.tx, .ex) या .exr? आपके इनपुट के लिए फिर से धन्यवाद!! :)
क्रिस्टोफर हेलेंडर

1
@ क्रिस्तोफर हेललैंडर: 0-1 रेंज के 16 बिट प्रतिनिधित्व को 14 बिट कैप्चर से परिवर्तित करना गुणन द्वारा आसानी से प्राप्त किया जाता है। लेकिन हमारे अधिकांश बनावट चित्रित हैं, फोटो खिंचवाने नहीं - कभी-कभी उन्हें सीधे 16 बिट प्रारूप में चित्रित किया जाता है, कभी-कभी उन्हें एसआरजीबी में चित्रित किया जाता है और फिर बनावट के रूप में उपयोग के लिए "रैखिक" होने पर 16 बिट में बदल दिया जाता है। अल्बेडो बनावट के लिए एचडीआर की कोई आवश्यकता नहीं है।
लैरी ग्रिट्ज़

1
@ क्रिस्टोफरफेरलैंडर: एल्बिडो बनावट के लिए, हम 16 बिट पूर्णांक डेटा (जिसे हम .tx कहते हैं, के साथ TIFF का उपयोग करते हैं, केवल TIFF प्रारूप है, लेकिन TIP फ़ाइल के भीतर एकाधिक सबमिशन के रूप में संग्रहीत MIP- मैप मल्टीस्ट्रेसिंग के साथ उपयोग करते हैं)। सही HDR डेटा के लिए, पर्यावरण कैप्चर की तरह, हम OpenEXR का उपयोग करते हैं। रेंडरर आउटपुट भी OpenEXR हो जाता है।
लैरी ग्रिट्ज़

8

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

लोग एचडीआर रेंडर टारगेट का इस्तेमाल करते हैं क्योंकि एक सिंगल सीन में ब्राइटनेस के बड़े पैमाने पर अलग-अलग आयाम हो सकते हैं, जैसे कि एक डार्क रूम जिसमें आप विंडो से लेकर सनलाइट एक्सटर्नल तक कमरे के मुकाबले 10–100 गुना शानदार देख सकते हैं। हालांकि, रंग बनावट में परिमाण की इतनी विस्तृत श्रृंखला नहीं है। वे प्रतिबिंबों का प्रतिनिधित्व करते हैं, जो स्वाभाविक रूप से [0, 1] श्रेणी में हैं, और व्यवहार में कुछ रोजमर्रा की सामग्री लगभग 2-5% प्रतिबिंब से कम है। तो एक 8-बिट छवि (गामा एन्कोडिंग के साथ) आमतौर पर पर्याप्त परिशुद्धता के साथ फैलाना और स्पेकुलर रंगों का प्रतिनिधित्व कर सकती है।

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

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

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


combination of a quite dark texture with very bright lighting or an extremely overexposed camera setting can show banding in the final frameबहुत अच्छी अंतर्दृष्टि। लेकिन हम ध्यान दें कि इस बिंदु को कम करने के लिए गामा एन्कोडिंग यहाँ ठीक है। यदि उसके पास समस्या है कि एक श्रेष्ठ गामा प्रतिपादक की कोशिश क्यों नहीं की गई? हालांकि हार्डवेयर sRGB नमूने के उपयोग को रोक देगा।
v.oddou

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

@KristofferHelander पता करने के लिए अच्छा है, लेकिन मुझे लगता है कि मैंने जो लिखा था वह सिर्फ ऑफ़लाइन प्रतिपादन के लिए लागू होता है। लेकिन मैं मानता हूं कि मुझे उस क्षेत्र में ज्यादा प्रत्यक्ष अनुभव नहीं है।
नाथन रीड

@NathanReed हाँ, आप सबसे निश्चित रूप से वहाँ कुछ बहुत अच्छा अंक बनाया :)
क्रिस्टोफर हेलैंडर

5

मैं पाठकों को इस आलेख को पढ़ने के लिए आमंत्रित करना चाहूंगा कि क्वेक 2 इंजन रेखांकन तकनीक के बारे में विवरण में बताया गया है , यदि उनके पास समय है।

यदि TLDR, कृपया इस छवि पर ध्यान दें: यहाँ छवि विवरण दर्ज करें

हम जो देख रहे हैं वह अल्बेडो चैनल है, यही वह है कि अगर आप 16 बिट्स में एनकोड करना चाहते हैं तो मैं आपके सवाल को सही ढंग से समझ सकता हूं।
मैं यह नहीं कहने जा रहा हूं कि " यदि यह अतीत में खेलों के लिए 256 रंगों में एन्कोड किया जा सकता है, तो हमें नए गेमों में 281474976710656 (कि 281 ट्रिलियन) की आवश्यकता क्यों होगी? " भले ही मैं चाहता हूं, लेकिन पिक्सर के क्रोधी आदमी की तरह लगता है? यूपी। अधिक रचनात्मक रूप से, यदि आपने इस छवि पर ध्यान दिया है, तो सब कुछ समान प्रकाश स्तर पर है । अधिक विशेष रूप से, अधिकतम तीव्रता संभव है जो वांछित संतृप्ति को संरक्षित करती है। (एचएसवी अंतरिक्ष में अर्थ, वी को अधिकतम किया जाता है)

जोर महत्वपूर्ण है, हम मुश्किल से किसी भी बिट्स की जरूरत है क्योंकि अल्बेडो की वैसे भी कोई गहराई नहीं है। गतिशील छायांकन से आता है, यह f32shaders के भीतर प्रति घटक में काम करने के लिए समझ में आता है , और f16लक्ष्य को प्रस्तुत करने के लिए आउटपुट । लेकिन इसमें अल्बेडो टेक्सचर को स्टोर करना f16केवल ओवरकिल नहीं है, यह हमारे अनमोल बैंडविड्थ के लिए एक गंभीर अनुचित प्रदर्शन हॉग है।


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