परिचय
मेनलाइन वेक्टर ग्राफिक्स रेंडरिंग इंजनों में से कई में एक एल्गोरिदम दोष है। वे प्रत्येक आकार को अलग-अलग रूप से प्रस्तुत करते हैं, और पिक्सेल कवरेज की गणना करके एंटीलिया और फिर उन्हें एक-दूसरे के ऊपर रचना करते हैं। हां यह सरल है लेकिन सही समाधान और भी सरल हैं।
यह एक समस्या का कारण बनता है क्योंकि यह पारदर्शिता द्वारा कवरेज का सामना करता है। अल्फा सम्मिश्रण एक नियम का पालन करता है जो उदाहरण के लिए स्थिति का सटीक रूप से प्रतिनिधित्व नहीं करता है एक पिक्सेल लें जो 50% कवर हो जो कि एक पिक्सेल के साथ पड़ोसी है जो कि 50% पूरक भी है कवर 100% कवरेज के साथ समाप्त नहीं होता है यह 75% कवरेज के साथ समाप्त होता है । यह कैसा दिखता है यह इस बात पर निर्भर करता है कि एल्गोरिथ्म को कैसे ट्यून किया गया है और अन्य विवरण लेकिन संक्षेप में यह एक ज्ञात त्रुटि है। किसी ने कागज लिखने के साथ-साथ विभिन्न इंजन त्रुटियों का दस्तावेजीकरण करने में भी परेशानी का सामना किया।
छवि 1 : पूरी तरह से गैर-प्रतिनिधि नमूना, एक आकृति प्रदान करने के लिए जो शीर्ष पंक्ति पर आवर्धित त्रुटि दिखाते हुए त्रिकोण से बना है। एसवीजी स्रोत
समस्या का एक सरल अनुभवहीन समाधान है * कवरेज गणना के बिना सिर्फ सुपर नमूना और छवि को नीचे फ़िल्टर करें। एक बोनस के रूप में आपको बॉक्स फ़िल्टरिंग की तुलना में बेहतर छवि पुनर्निर्माण एल्गोरिदम का उपयोग करने के लिए मिलता है (पढ़ें एक पिक्सेल एक वर्ग 3 नहीं है )। यहां तक कि ऐसे समाधान भी हैं जिनकी वर्तमान समाधानों के रूप में तुलनीय गति है और ये समाधान हार्डवेयर रेखांकन पाइपलाइनों में करना बहुत आसान है (और आप शायद ही इस त्रुटि को GPU पर देखते हैं क्योंकि यह सिर्फ इस समस्या से बचने के लिए बनाया गया है)।
यह भी एक लागत के बिना एक समस्या नहीं है। ग्राफिक्स डिज़ाइन में काम करने वाले बहुत से लोग हैं जो इस समस्या को मैन्युअल रूप से समाप्त करने की कोशिश कर रहे हैं और यह सुनिश्चित करने के लिए कि कंप्यूटर को उनके लिए क्या करना चाहिए इस समस्या को ठीक करने के लिए कोई ओवरलैप नहीं है। और कई मामलों में शानदार ढंग से असफल रहा। लेकिन उनके ग्राहकों को परवाह नहीं है कि त्रुटि क्यों है, उन्हें इसे ठीक करना होगा।
सवाल
त्रुटि कैसे फैलती है? चूंकि वे सभी एक ही त्रुटि कर रहे हैं, इसलिए कोई यह निष्कर्ष निकाल सकता है कि वे अपने एल्गोरिथ्म के लिए एक ही स्रोत का उपयोग करते हैं। इस एल्गोरिथ्म को चुनने के लिए डिजाइनरों के कारण क्या हो सकता है? केवल 3 डी प्रोग्रामर ने इस त्रुटि को क्यों पहचाना और यहां तक कि अपने एपीआई और शिक्षण में इसके हिस्से को संहिताबद्ध किया जबकि 2 डी प्रोग्रामर ने नहीं किया?
यह कैसे सुनिश्चित करें कि यह त्रुटि आगे प्रसार को रोकती है?
परिशिष्ट (लेकिन मैं इस बारे में नहीं पूछ रहा हूं)
* जाहिर तौर पर मेरा दावा है कि सुपर सैंपलिंग बिना किसी दोष के काम करती है और असाधारण प्रमाण की आवश्यकता होती है। ठीक है, इसलिए काम करने वाले सुपर सैंपलिंग की कुंजी यह है कि सुपर सैंपलिंग कवरेज प्रोसेसिंग नहीं करती है। संक्षेप में सुपर सैंपलर प्रत्येक नमूने को एक बिंदु नमूने के रूप में मानता है। चूंकि बिंदु नमूना अंतर्निहित क्षेत्र की कोई धारणा नहीं बनाता है, इसलिए यह अल्फा तुलना का कारण नहीं है जहां ऐसा नहीं होता है।
लगातार काम करने के लिए, जैसा कि एक उत्तर में वर्णित है। हमें स्थिरता के लिए पूर्णांक नमूने के साथ नमूनों को संसाधित करने की आवश्यकता है। यह हमें भरोसा दिलाता है कि स्क्रीन स्पेस में तब्दील होने वाले प्रत्येक बिंदु को समान निर्देशांक के लिए समान समाधान मिलता है और यह कि कोई भी नमूना पिक्सेल बॉर्डर द्वारा 2 बार छायांकित नहीं किया जाता है। ऐसा करने के लिए एक नमूना एक पिक्सेल को ट्रिगर नहीं कर सकता है ठीक उसी तरह अगर यह उदाहरण के लिए बाईं ओर नीचे नमूना है (इसलिए हम एक नियम बनाते हैं कि सटीक किनारों को> बनाम <=) में संसाधित किया जाता है। सभी लेकिन एक कंसोल ग्राफिक्स कार्ड इस तरह काम करते हैं। यह सुनिश्चित करता है कि किसी भी अतिरिक्त डेटा को कैश करने की आवश्यकता नहीं है और पास के अतिरिक्त परीक्षण की आवश्यकता नहीं है। यह समाधान कवरेज आधारित समाधानों की तुलना में अधिक स्थिर, अधिक सामान्य और सुसंगत है।
एल्गोरिथ्म बिल्कुल कम कोड के साथ मूल के समान है और थोड़ा अधिक नमूने हैं। यह इस प्रकार सुसंगत है यदि कवरेज आधारित एल्गोरिथम से अधिक नहीं है। हम यह जानते हैं क्योंकि हम लगभग किसी अन्य सिग्नल प्रोसेसिंग क्षेत्र के साथ-साथ ग्राफिक्स कार्ड में भी सदियों से ऐसे तरीकों का इस्तेमाल कर रहे हैं।
तो क्या इस विधि का नकारात्मक पक्ष है? यदि आप सिर्फ एक भोली धारणा बना लेंगे तो यह एक धीमी गति है। यह सैद्धांतिक रूप से कवरेज रैस्टराइज़र की तुलना में एक तेज स्पर्शोन्मुख व्यवहार है, एक रिऐट्रैसर की तरह यह अभी भी केवल ठेठ दृश्यों में बराबर है। इसके अलावा यह लागू करने के लिए सजा आधारित प्रभावों के उपयोग को और अधिक दर्दनाक बना सकता है।