स्पेक्युलर शेडिंग में R (phong) के बजाय H (blinn) का उपयोग क्यों किया जाता है?


22

मुझे इसका कहीं भी अच्छा कारण नहीं मिल रहा है। फोंग में प्रयुक्त प्रतिबिंब वेक्टर का भौतिकी में सरल आधार है। लेकिन ब्लाइन में इस्तेमाल किए गए आधे वेक्टर का कोई तर्कसंगत आधार नहीं है, और एक उचित प्रतिबिंब का गठन नहीं करता है। और फिर भी इसका उपयोग हर तथाकथित "शारीरिक रूप से आधारित" छायांकन फ़ंक्शन में किया जाता है। अगर इसके लिए कोई अच्छा शारीरिक आधार है, तो मैं जानना चाहूंगा।

जो मैं पा सका हूं, उसके कुछ कारण हैं:

यह तेज़ है - इस पर मिली-जुली जानकारी है, लेकिन फिर भी यह एक बड़ा कारण रहा होगा ... वर्ष 1998 में।

यह 90 डिग्री से बेहतर कोणों को बेहतर तरीके से संभालता है - जहां तक ​​मैं इसका एकमात्र कारण बता सकता हूं क्योंकि फोंग शब्द का उपयोग अनुचित तरीके से किया गया है। प्रतिबिंब और दृश्य का डॉट उत्पाद -1 और +1 के बीच एक कोण देता है। आमतौर पर इस कोण को 0 से 1 तक जकड़ा जाता है, यह 90 डिग्री की समस्या का प्रत्यक्ष कारण है। इसे क्लैंप करने के बजाय कोण को फिर से सामान्य करें और आप पूर्ण 180 डिग्री कवरेज प्राप्त करें। मुझे विश्वास है कि एक साधारण एक्स * 0.5 + 0.5 ऑपरेशन ने 40 साल के लिए ग्राफिक्स की दुनिया को हटा दिया है।

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

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

इन कारणों में से कोई भी संतोषजनक नहीं है, मैं इस पागलपन को सुलझाना चाहता हूं।

मैं स्पष्ट करना चाहता हूं कि मैं विशेष रूप से ब्लिन और फोंग के बारे में बात नहीं कर रहा हूं , बल्कि वेक्टर घटकों एच और आर के बारे में बात कर रहा हूं , जो इन रंगों के साथ-साथ अन्य के लिए भी आधार के रूप में उपयोग किया जाता है।

जवाबों:


24

पूरी तरह से चिंतनशील सतहों के लिए फोंग-मॉडल समझ में आता है। हालाँकि, मोटे सतहों को समतल करने के लिए फोंग-मॉडल का n (RV) ^ n कहाँ से आता है? सिद्धांत कहां है कि आपको डॉट उत्पाद के परिणाम को शक्ति के लिए उठाना है, सिवाय इसके कि यह केवल उचित परिणाम देने के लिए प्रकट होता है?

ब्लिन-मॉडल के लिए समीकरण में सभी घटकों का समर्थन करने के लिए भौतिक रूप से आधारित माइक्रोफैसेट सिद्धांत है और यह भी अनुभवजन्य साक्ष्य है कि मॉडल वास्तविक दुनिया की सतहों को अधिक निकटता से दर्शाता है (हालांकि पूरी तरह से नहीं)। ब्लिन मॉडल में अर्ध-वेक्टर का उपयोग सामान्य वितरण फ़ंक्शन (NDF) के इनपुट के रूप में किया जाता है, जो कि एक अनुमान है कि सतह खुरदरापन के कार्य के रूप में सतह के बारे में माइक्रोफैकेट कैसे वितरित किए जाते हैं। I- जब H-वेक्टर सामान्य दिशा की ओर इशारा करता है तो मूल्य सबसे अधिक होता है क्योंकि अधिकांश microfacets उस दिशा की ओर इशारा करते हैं, और सामान्य और H-वेक्टर के बीच के कोण के बढ़ने पर तदनुसार संभावना कम हो जाती है।

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


मैं फोंग के विशिष्ट कार्यान्वयन के बारे में बात नहीं कर रहा हूं जिसका वास्तव में कोई भौतिक आधार नहीं है। लेकिन मैं यह नहीं देख सकता कि कैसे एक प्रतिबिंब वेक्टर के लिए आधार के रूप में माइक्रोफैसेट सिद्धांत आर से बेहतर एच का समर्थन करता है। किसी भी छायांकन मॉडल का समर्थन नहीं किया जाता है, हर एक "BRDF की प्रायोगिक मान्यता" 2005 के अनुसार वास्तविक सामग्रियों को पुन: प्रस्तुत करने में विफल रहता है। मुझे ऐसा लगता है कि माइक्रोफैकेट को डॉट उत्पाद डॉट 'वी' के माध्यम से फोंग में मॉडल किया गया है, जो एक के रूप में काम कर सकता है। रीमैपिंग फ़ंक्शन या रैंप के माध्यम से अधिक शारीरिक रूप से सही हाइलाइट के लिए आधार। एक पावर फंक्शन केवल सबसे सरल, सबसे गलत रीमैपिंग है।
बीएमबी

2
@BmB नहीं, माइक्रोफ़ेसेट "फोंग में मॉडलिंग नहीं" है, लेकिन एनडीएफ के साथ परिभाषित माइक्रोफ़ेसेट के वितरण की संभावना का उपयोग करें, जिसे एच-वेक्टर के साथ "नमूना" किया जा रहा है। एनडीएफ आम तौर पर सामान्य (आइसोट्रोपिक / अनिसोट्रोपिक) के बारे में सममित है, इसलिए यह उसके लिए एच-वेक्टर का उपयोग करने के लिए समझ में आता है। मैंने कहा अनुभवजन्य साक्ष्य है कि Blinn मॉडल वहाँ अधिक बारीकी से Phong से वास्तविक दुनिया सामग्री अनुमान लगाती है।
जारकोल

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

1
@BmB मैं सुझाव देता हूं कि आप माइक्रोफैसेट सिद्धांत और विशेष रूप से अवधारणा को समझने के लिए एनडीएफ भाग के बारे में पढ़ें। इससे आपको अपने प्रश्न का उत्तर प्राप्त करने में मदद मिलेगी।
जारकोल

1
आपको माइक्रोफैकेट और एनडीएफ के बारे में एक नया प्रश्न खोलना चाहिए क्योंकि स्पष्ट रूप से बहुत कुछ है जो आप इन अवधारणाओं के बारे में नहीं समझते हैं और टिप्पणी उन्हें समझाने के लिए सही जगह नहीं है।
जर्कोल

6

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

आपके द्वारा वहां सूचीबद्ध प्रत्येक कारण, वास्तव में, एक ऐसा क्षेत्र है जहां ब्लिन फोंग से बेहतर साबित होता है।

एक पूरे के रूप में लिया गया, ये सभी ब्लिन को फोंग की तुलना में बेहतर डिफ़ॉल्ट बनाते हैं।

क्या ब्लिन सही है? क्या यह फोंग से बेहतर है?

नहीं।

लेकिन यह है एक उचित डिफ़ॉल्ट। आपके द्वारा लिखे गए किसी भी रेंडर / शेडर में ब्लिन के लिए फोंग को स्थान देने के लिए स्वतंत्र महसूस करें।


सहमत, यह बिल्कुल यही है। न तो मॉडल सही है। ब्लिन का अनुमान सभी प्रदर्शन अनुकूलन से ऊपर था, तब से, आधे कोण की गणना करना सस्ता है। यह पता चला है कि यह ज्यादातर समय बेहतर होता है।
डेमॉन

-2

मैंने H वेक्टर के उपयोग का कारण खोजा है। दुर्भाग्य से यह वह तरीका नहीं है जिसका उपयोग अधिकांश छायांकन मॉडल में किया जाता है, जिसे तब गलत माना जा सकता है।

शारीरिक रूप से आधारित छायांकन परिलक्षित प्रकाश के लिए भित्ति समीकरणों का पालन करना चाहिए। (अधिकांश "शारीरिक रूप से आधारित" शेड्स नहीं हैं) माइक्रोफैकेट को भी फ्रेस्नेल समीकरणों का पालन करना चाहिए, जो प्रकाश के लिए घटना के कोण पर निर्भर करता है और साथ ही साथ एक सही परिणाम उत्पन्न करने के लिए इंटरफ़ेस के अपवर्तन का सूचकांक भी।

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

अब प्रकाश दिशा L और आधे वेक्टर H के बीच के कोण की गणना करके हम एक माइक्रोफ़ेसेट के स्पेक्युलर प्रतिबिंब के लिए आपतन कोण प्राप्त करते हैं, और भित्ति शब्द का उपयोग करके इसे सही ढंग से आकर्षित कर सकते हैं।

ध्यान दें कि देखने की दिशा उस माइक्रोफैसेट के लिए R के बराबर है, H एक परावर्तन शब्द नहीं है। ब्लाइन, कुक, टोरेंस और स्पैरो इसे चूस सकते हैं। फोंग और फ्रेस्नेल सही थे।


Fresnel शब्द microfacet BRDF समीकरण का हिस्सा है और अलग-अलग microfacet इसे ध्यान में नहीं रखते हैं क्योंकि वे परफेक्ट रिफ्लेक्टर के रूप में तैयार किए जाते हैं। इसके अलावा, आप एल और एच वैक्टर के बीच कोण की गणना नहीं करते हैं लेकिन एन और एच वैक्टर। यह आपको संकेत देना चाहिए कि एच का उपयोग क्यों किया जा रहा है। आपको यह जानने के लिए विषय पर थोड़ा और ज्ञान चाहिए कि कौन सही था या "अधिक सही";)
जर्ककोल

किसी सामग्री के माइक्रोफैसेट में सामग्री के समान गुण होते हैं। इसलिए अपूर्ण रिफ्लेक्टर का एक माइक्रोफैसेट स्वयं एक पूर्ण परावर्तक नहीं हो सकता है। आपका तर्क अकारण और अकारण है। N dot H का कोई भौतिक महत्व नहीं है।
BmB

4
नहीं, यह नहीं है कि माइक्रोफैसेट मॉडल कैसे काम करता है। मेरा तर्क पूरी तरह से ध्वनि है, जो कोई भी समझता है यहां तक ​​कि माइक्रोफैसेट मॉडल की मूल बातें भी पुष्टि कर सकता है। प्रत्येक माइक्रोफैसेट सही परावर्तक (यानी वैकल्पिक रूप से सपाट) होता है और एक सामग्री का अपूर्ण प्रतिबिंब एनडीएफ द्वारा परिभाषित माइक्रोफैट मानदंडों के विचलन से आता है। आपका पूरी तरह से मान्य सलाह देने के लिए दृढ़ता
आमोद प्रमोद

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