टी-जंक्शनों की जाली में दरारें क्यों होती हैं?


19

मैंने कई स्रोतों से सुना है कि 3 डी मेष में टी-जंक्शन होना एक बुरा विचार है क्योंकि यह प्रतिपादन के दौरान दरारें पैदा कर सकता है। क्या कोई समझा सकता है कि ऐसा क्यों होता है, और उनसे बचने के लिए कोई क्या कर सकता है?


जवाबों:


20

lhf का उत्तर टेसेलेशन के दृष्टिकोण से अच्छा है, लेकिन ये सरल त्रिभुज जाल उपयोग मामलों के साथ हो सकता है।

तीन, स्क्रीन-स्पेस त्रिकोण, एबीसी, एडीई और डीबीई के इस तुच्छ उदाहरण को लें ...

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

यद्यपि बिंदु E था, गणितीय रूप से, लाइन सेगमेंट AB पर सटीक रूप से होने के लिए, पाइपलाइन पूरी तरह से सटीक मानों का उपयोग नहीं करेगा, जैसे कि परिमेय संख्या (जैसे https://gmplib.org/ )। इसके बजाय, यह संभवतः फ़्लोट्स का उपयोग कर रहा होगा, और इसलिए कुछ सन्निकटन / त्रुटि पेश की जाएगी। परिणाम शायद कुछ इस तरह होने जा रहा है:

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

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

तब आप सोच सकते हैं कि फ़्लोटिंग-पॉइंट के साथ पेश की गई त्रुटि महत्वहीन होगी, लेकिन एक रेंडरर में, स्क्रीन-स्पेस वर्टेक्स (X, Y) मान लगभग हमेशा निश्चित-पॉइंट संख्याओं द्वारा दर्शाए जाते हैं और इसलिए आदर्श स्थान से विस्थापन होगा आमतौर पर बहुत अधिक हो। इसके अलावा, जैसे ही रेंडर हार्डवेयर अपनी आंतरिक परिशुद्धता के साथ लाइन सेगमेंट पिक्सेल-बाय-पिक्सेल को "इंटरपोलेट" करता है, तो और भी अधिक संभावना है कि यह ई के गोल स्थान से हट जाएगा।

यदि T- जंक्शन को "हटा" दिया जाता है, तो यह भी कहें कि त्रिभुज ABC को दो, AEC और EBC में विभाजित किया जाए, तो समस्या दूर हो जाएगी क्योंकि त्रुटियों द्वारा पेश की गई पारियां सभी संगत होंगी।

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


2
जब आप कहते हैं "वर्टेक्स (एक्स, वाई) मान लगभग हमेशा निश्चित-बिंदु संख्याओं द्वारा दर्शाए जाते हैं", तो मैं आपको अनुमान लगा रहा हूं कि स्क्रीन-स्पेस वर्टेक्स को रास्टराइज़र में समन्वयित करता है, है ना? मूल मॉडल-स्पेस वर्टिकल नहीं।
नाथन रीड

2
@NathanReed हाँ। बस स्क्रीन-स्पेस X & Y (और, शायद कुछ GPU पर Z)। मैं इसे स्पष्ट करने के लिए संपादित करूँगा।
साइमन एफ

9

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

अधिक आम तौर पर, त्रिकोण जालों में टी-जंक्शनों का परिणाम संभवतः प्रक्षेपित विशेषताओं, जैसे कि रंग और मानदंड के विच्छेदन में होगा।

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


यह भी देखें stackoverflow.com/questions/23530807/...
lhf

4

फ़्लोटिंग-पॉइंट राउंडिंग त्रुटि।

टी जंक्शन को बदलने के बाद और टी में बिंदु किनारे से गोल हो सकता है।

फिर ऐसा हो सकता है कि एक टुकड़ा जो पिक्सेल के लिए नमूना हो जाता है, 2 सतहों के बीच की खाई में निहित है।

यह पहली जगह में टी-जंक्शन नहीं होने से तय किया जा सकता है।


3

इससे बचने का सरल तरीका यह सुनिश्चित करना है कि आपके सभी कोने वेल्डेड हैं

आप समस्या यह है कि आपके पास किनारों के साथ एक शीर्ष के साथ कट है, लेकिन आपके पास किनारे पर वेल्ड / से कनेक्ट करने के लिए एक समान शीर्ष नहीं है, यदि आप इसे एक शर्ट पर बटन की तरह समझते हैं, तो आपने एक पर बोया है किनारे पर बटन, लेकिन यह एक छेद नहीं दिया है ताकि कपड़े खुला हो।

नीचे दी गई तस्वीर में, लाल डॉट्स सही ढंग से वेल्डेड वर्टिकल का प्रतिनिधित्व करते हैं, नीले डॉट्स सभी को बगल के किनारे में कटौती करने के लिए एक अतिरिक्त शीर्ष की आवश्यकता होती है।

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

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.