कंप्यूटर ग्राफ़िक्स की मूल बातें

कंप्यूटर ग्राफ़िक्स इकाई 3 का ऐसा पूर्ण नामित उप-प्रकरण है जिसका GATE CS में बिल्कुल कोई समतुल्य नहीं। यह अध्याय इसे भौतिक/प्रदर्शन मूल बातों (रास्टर बनाम यादृच्छिक स्कैन, प्रदर्शन युक्तियाँ, निवेश युक्तियाँ) व उन मानक रैस्टराइज़ेशन कलनविधियों से खोलता है जिनसे हर ग्राफ़िक्स पाठ्यक्रम खुलता है: रेखा, वृत्त व दीर्घवृत्त सही ढंग से व दक्षतापूर्वक खींचना, तथा किसी संवृत क्षेत्र को भरना।

रास्टर-स्कैन व यादृच्छिक-स्कैन तंत्र, प्रदर्शन व निवेश युक्तियाँ

रास्टर-स्कैन बनाम यादृच्छिक-स्कैन (सदिश) प्रदर्शन
गुणरास्टर-स्कैनयादृच्छिक-स्कैन (सदिश)
प्रतिबिंब-निरूपणपिक्सेलों का फ़्रेम-बफ़र, विषय-वस्तु से स्वतंत्र नियत दर पर पंक्ति-दर-पंक्ति अद्यतितइलेक्ट्रॉन-किरण खींची जाने वाली रेखाओं के अनुदिश सीधे संचालित होती है, केवल वास्तविक रेखा-खंड पुनः खींचते हुए
भरे क्षेत्र / यथार्थवादी प्रतिबिंबस्वाभाविक रूप से सँभाला गया — हर पिक्सेल पृथक रूप से रंगा जा सकता हैअल्प उपयुक्त — रूपरेखा हेतु अभिकल्पित, भरे क्षेत्रों हेतु नहीं
आम त्रुटिस्थिर पिक्सेल-जालक से दांतेदार/अपरूपित तिरछी रेखाएँस्थिरता-समय के भीतर पुनः न खींचे जा सकने पर टिमटिमाहट

निवेश युक्तियाँ इससे वर्गीकृत की जाती हैं कि वे क्या रिपोर्ट करती हैं: लोकेटर युक्तियाँ (माउस, जॉयस्टिक, ट्रैकबॉल) स्थिति रिपोर्ट करती हैं; वैल्यूएटर युक्तियाँ किसी डायल के अनुदिश अदिश मान रिपोर्ट करती हैं; कीबोर्ड विविक्त सांकेतिक टोकन रिपोर्ट करता है; स्कैनर/डिजिटाइज़र किसी विद्यमान भौतिक प्रतिबिंब को पिक्सेल-आँकड़े में परिवर्तित करता है। बिंदु व रेखाएँ वे दो आद्य ज्यामितीय वस्तुएँ हैं जिनसे हर रास्टर प्रदर्शन अंततः शेष सब बनाता है — बिंदु एक संबोधित पिक्सेल है, और रेखा को उसके पथ के अनुदिश किन पिक्सेलों को प्रकाशित करना है यह चुनकर सन्निकटित करना पड़ता है, जो ठीक वही समस्या है जिसे नीचे की रेखा-खींचने वाली कलनविधियाँ हल करती हैं।

रेखा-खींचने की कलनविधियाँ

  • DDA (डिजिटल अवकल विश्लेषक): |m| ≤ 1 वाली ढाल m = Δy/Δx हेतु, प्रत्येक पुनरावृत्ति में x को 1 से बढ़ाएँ व y += m संचित करें, निकटतम पिक्सेल तक पूर्णांकित करते हुए — सरल, पर इसका चल-बिंदु संचयन धीमा है और लंबी रेखा पर पूर्णांकन-त्रुटि संचित करता है।
  • ब्रेसनहैम कलनविधि: वही निर्णय केवल पूर्णांक अंकगणित से पुनर्रचित करती है, एक निर्णय-चर ट्रैक करते हुए जो मापता है कि अगले दो प्रत्याशी पिक्सेलों में कौन वास्तविक रेखा के अधिक निकट है — यह चल-बिंदु को पूर्णतः टालती है, सटीक है (कोई संचित पूर्णांकन-बहाव नहीं) और ठीक इसी कारण मानक उत्पादन कलनविधि है।
🎯 उत्पादन-प्रयोग हेतु ब्रेसनहैम DDA को क्यों हराता है
DDA का प्रति-चरण चल-बिंदु योग व पूर्णांकन दोनों केवल-पूर्णांक हार्डवेयर पर धीमा है और लंबी रेखा पर संचयी पूर्णांकन-त्रुटि के अधीन — चरण 10,000 पर चुना पिक्सेल वहाँ से बह सकता है जहाँ वास्तविक रेखा वस्तुतः है। ब्रेसनहैम का पूर्णांक निर्णय-चर प्रत्येक चरण सादे पूर्णांक योग/व्यवकलन से अद्यतित होता है और सिद्ध रूप से सटीक है, हर एकल चरण पर वास्तविक रेखा के निकटतम पिक्सेल चुनते हुए, बिना किसी बहाव के — यही सटीकता, केवल गति नहीं, वह कारण है कि इसे पहले पढ़ाया जाने वाला मानक बनाया गया।

मिडपॉइंट वृत्त व दीर्घवृत्त कलनविधियाँ

  • मिडपॉइंट वृत्त कलनविधि: आठ-दिशीय (अष्टांश) सममिति का लाभ उठाती है — केवल एक 45° अष्टांश हेतु पिक्सेल गणना कर उन्हें शेष सात में परावर्तित करते हुए — और प्रत्येक चरण दो प्रत्याशी पिक्सेलों के बीच मिडपॉइंट पर आधारित निर्णय-प्राचल परखती है कि कौन वास्तविक वृत्त के निकटतम है, फिर शुद्ध पूर्णांक अद्यतन सहित।
  • मिडपॉइंट दीर्घवृत्त कलनविधि: वही विचार, पर केवल चार-दिशीय (चतुर्थांश) सममिति सहित, क्योंकि दीर्घवृत्त की दो त्रिज्याएँ भिन्न हैं, और इसे दो क्षेत्रों में बाँटा जाता है (जहाँ वक्र की ढाल −1 से अधिक बनाम कम हो, अर्थात् जहाँ यह 'अधिक क्षैतिज' बनाम 'अधिक ऊर्ध्वाधर' हो), प्रत्येक क्षेत्र हेतु पृथक चरण-नियम व निर्णय-प्राचल सहित।

स्कैन-रेखा बहुभुज भरण, सीमा-भरण व बाढ़-भरण

  • स्कैन-रेखा बहुभुज भरण: प्रत्येक क्षैतिज स्कैन-रेखा हेतु, बहुभुज के कोरों के साथ इसके प्रतिच्छेदन खोजें, उन्हें x से क्रमित करें, व प्रत्येक प्रतिच्छेदन-युग्म के बीच के पिक्सेल भरें (अवतल या स्व-प्रतिच्छेदी बहुभुज होने पर आंतरिक बनाम बाह्य तय करने हेतु सम-विषम या शून्येतर घुमाव-नियम का प्रयोग करते हुए)।
  • सीमा-भरण व बाढ़-भरण: दोनों किसी क्षेत्र के भीतर बीज-पिक्सेल से आरंभ होकर पड़ोसियों तक फैलते हैं (4-संयोजित या 8-संयोजित)। सीमा-भरण किसी विशिष्ट सीमा-रंग से मेल खाते पिक्सेलों पर फैलना रोकता है; बाढ़-भरण इसके बजाय क्षेत्र के पुराने आंतरिक रंग से मेल खाते हर पिक्सेल को किसी पृथक-परिभाषित सीमा की परवाह किए बिना नए रंग से बदल देता है — सही चुनाव इस पर निर्भर करता है कि क्षेत्र एक संगत रंग से घिरा है या अपने वर्तमान भरण-रंग से परिभाषित है।

मुख्य बिंदु

  • रास्टर-स्कैन प्रदर्शन नियत दर पर पूर्ण फ़्रेम-बफ़र अद्यतित करता है व भरे क्षेत्र स्वाभाविक रूप से सँभालता है; यादृच्छिक-स्कैन (सदिश) प्रदर्शन रूपरेखा के अनुदिश किरण संचालित करता है व लंबी प्रदर्शन-सूची पर टिमटिमाहट-प्रवण है।
  • ब्रेसनहैम रेखा-कलनविधि शुद्ध पूर्णांक अंकगणित प्रयोग करती है और सटीक है, DDA के चल-बिंदु संचयन के विपरीत जो लंबी रेखा पर बहता है।
  • मिडपॉइंट वृत्त कलनविधि आठ-दिशीय सममिति प्रयोग करती है; मिडपॉइंट दीर्घवृत्त कलनविधि केवल चार-दिशीय सममिति प्रयोग करती है व दो ढाल-क्षेत्रों में बँटती है, क्योंकि दोनों त्रिज्याएँ भिन्न हैं।
  • स्कैन-रेखा बहुभुज भरण प्रति पंक्ति कोर-प्रतिच्छेदन-युग्मों के बीच भरता है; घुमाव-नियम अवतल या स्व-प्रतिच्छेदी बहुभुजों हेतु आंतरिक/बाह्य तय करता है।
  • सीमा-भरण परिभाषित सीमा-रंग पर रुकता है; बाढ़-भरण पुराने आंतरिक रंग के हर पिक्सेल को बदल देता है — सही चुनाव इस पर निर्भर करता है कि क्षेत्र कैसे परिभाषित है।

अभ्यास प्रश्न (8)

उत्तर खोलने से पहले प्रत्येक प्रश्न हल करें। हर व्याख्या सही विकल्प के साथ लुभावना गलत विकल्प भी बताती है, क्योंकि अंक वहीं जाते हैं।

  1. रास्टर-स्कैन प्रदर्शन, यादृच्छिक-स्कैन (सदिश) प्रदर्शन की तुलना में:

    1. भरे क्षेत्र स्वाभाविक रूप से सँभालता है क्योंकि फ़्रेम-बफ़र का हर पिक्सेल पृथक रूप से रंगा जा सकता है
    2. इलेक्ट्रॉन-किरण को खींची जाने वाली रेखाओं के अनुदिश सीधे संचालित करता है
    3. भरे क्षेत्र बिल्कुल प्रदर्शित नहीं कर सकता
    4. हर पुनश्चालन में केवल वास्तविक रेखा-खंड पुनः खींचता है
    उत्तर देखें

    उत्तर: A — भरे क्षेत्र स्वाभाविक रूप से सँभालता है क्योंकि फ़्रेम-बफ़र का हर पिक्सेल पृथक रूप से रंगा जा सकता है

    रास्टर प्रदर्शन विषय-वस्तु की परवाह किए बिना अपना पूरा पिक्सेल-जालक अद्यतित करता है, अतः भरे क्षेत्र रूपरेखा जितने ही स्वाभाविक हैं; अन्य तीन विकल्प इसके बजाय यादृच्छिक-स्कैन (सदिश) प्रदर्शन वर्णित करते हैं।
  2. ब्रेसनहैम की रेखा-खींचने वाली कलनविधि DDA पर मुख्यतः इसलिए वरीयता पाती है कि यह:

    1. केवल पूर्णांक अंकगणित प्रयोग करती है और सटीक है, बिना किसी संचित पूर्णांकन-बहाव के
    2. रेखाओं के बजाय वृत्त खींचती है
    3. चल-बिंदु हार्डवेयर की आवश्यकता रखती है
    4. केवल ऊर्ध्वाधर रेखाओं हेतु काम करती है
    उत्तर देखें

    उत्तर: A — केवल पूर्णांक अंकगणित प्रयोग करती है और सटीक है, बिना किसी संचित पूर्णांकन-बहाव के

    ब्रेसनहैम पिक्सेल-चुनाव निर्णय को निर्णय-चर पर पूर्णांक योग/व्यवकलन के रूप में पुनर्रचित करती है, DDA के चल-बिंदु संचयन की गति-लागत व संचयी पूर्णांकन-त्रुटि दोनों से बचते हुए।
  3. मिडपॉइंट वृत्त कलनविधि केवल इतने भाग हेतु पिक्सेल गणना करने को सममिति का प्रयोग करती है:

    1. एक अष्टांश (45°), शेष सात में परावर्तित करते हुए
    2. केवल एक चतुर्थांश
    3. पूरा वृत्त, बिना किसी सममिति का लाभ उठाए
    4. केवल आधा वृत्त
    उत्तर देखें

    उत्तर: A — एक अष्टांश (45°), शेष सात में परावर्तित करते हुए

    वृत्त की आठ-दिशीय सममिति का अर्थ है कि एक 45° अष्टांश के पिक्सेल गणना कर उन्हें परावर्तित करना (x/y निर्देशांक उपयुक्त रूप से बदलकर व निषेधित कर) सभी आठ अष्टांश निःशुल्क दे देता है।
  4. मिडपॉइंट दीर्घवृत्त कलनविधि को दो पृथक क्षेत्र चाहिए (वृत्त कलनविधि के एकल अष्टांश के विपरीत), मुख्यतः क्योंकि:

    1. दीर्घवृत्त में केवल चार-दिशीय (चतुर्थांश) सममिति होती है क्योंकि उसकी दो त्रिज्याएँ भिन्न हैं, और उसकी ढाल एक चतुर्थांश के भीतर −1 पार करती है
    2. दीर्घवृत्त रास्टर प्रदर्शनों पर खींचे नहीं जा सकते
    3. यह विशेष रूप से चल-बिंदु अंकगणित प्रयोग करती है
    4. दीर्घवृत्त में कोई सममिति ही नहीं होती
    उत्तर देखें

    उत्तर: A — दीर्घवृत्त में केवल चार-दिशीय (चतुर्थांश) सममिति होती है क्योंकि उसकी दो त्रिज्याएँ भिन्न हैं, और उसकी ढाल एक चतुर्थांश के भीतर −1 पार करती है

    असमान त्रिज्याओं के साथ, दीर्घवृत्त की अष्टांश-स्तरीय सममिति टूटकर केवल चतुर्थांश-स्तरीय रह जाती है, और एक चतुर्थांश के भीतर वक्र की ढाल फिर भी −1 पार करती है, उस पार करने के दोनों ओर भिन्न चरण-दिशा (व निर्णय-प्राचल) माँगते हुए।
  5. स्कैन-रेखा बहुभुज भरण इनके बीच पिक्सेल भरता है:

    1. स्कैन-रेखा पर, x से क्रमित, प्रत्येक क्रमागत कोर-प्रतिच्छेदन-युग्म
    2. पूरे बहुभुज के सबसे ऊपर व सबसे नीचे के पिक्सेल
    3. बहुभुज की परवाह किए बिना स्क्रीन का हर पिक्सेल
    4. केवल बहुभुज के शीर्ष
    उत्तर देखें

    उत्तर: A — स्कैन-रेखा पर, x से क्रमित, प्रत्येक क्रमागत कोर-प्रतिच्छेदन-युग्म

    प्रत्येक स्कैन-रेखा हेतु, कोर-प्रतिच्छेदन x-निर्देशांक से क्रमित होते हैं और क्रमागत प्रतिच्छेदनों के बीच आंतरिक विस्तार बाह्य विस्तार से एकांतर होते हैं — प्रत्येक युग्म के बीच भरना ही अवतल आकृतियों सहित सही आंतरिक भाग उत्पन्न करता है।
  6. सीमा-भरण की तुलना में, बाढ़-भरण इससे तय करता है कि फैलना कहाँ रोकना है:

    1. किसी पृथक-परिभाषित सीमा की परवाह किए बिना, क्षेत्र के पुराने आंतरिक रंग से मेल खाते हर पिक्सेल को बदलते हुए
    2. केवल किसी पूर्व-परिभाषित सीमा-रंग से मेल खाते पिक्सेलों पर रुककर
    3. जब तक पूरी स्क्रीन न भर जाए, कभी न रुककर
    4. क्षेत्र को ठीक चार भुजाओं वाला होने की आवश्यकता रखते हुए
    उत्तर देखें

    उत्तर: A — किसी पृथक-परिभाषित सीमा की परवाह किए बिना, क्षेत्र के पुराने आंतरिक रंग से मेल खाते हर पिक्सेल को बदलते हुए

    सीमा-भरण एक स्थिर सीमा-रंग के विरुद्ध परिभाषित है; बाढ़-भरण इसके बजाय क्षेत्र के अपने वर्तमान (पुराने) आंतरिक रंग को कसौटी के रूप में प्रयोग करता है, हर मेल खाते पिक्सेल को नए रंग से बदलते हुए — इसीलिए यह उन क्षेत्रों पर भी काम करता है जिनकी कोई एकल संगत-रंगित सीमा नहीं है।
  7. यादृच्छिक-स्कैन (सदिश) प्रदर्शनों के विषय में निम्नलिखित में कौन सत्य हैं? (एक से अधिक विकल्प सही हो सकते हैं।)

    1. इलेक्ट्रॉन-किरण खींची जाने वाली रूपरेखाओं के अनुदिश सीधे संचालित होती है
    2. यदि प्रदर्शन-सूची स्थिरता-समय के भीतर पुनः न खींची जा सके तो वे टिमटिमा सकते हैं
    3. वे प्रतिबिंब को नियत दर पर अद्यतित पूर्ण पिक्सेल-जालक के रूप में संचित करते हैं
    4. वे भरे, यथार्थवादी प्रतिबिंबों हेतु सुयोग्य हैं
    उत्तर देखें

    उत्तर: A — इलेक्ट्रॉन-किरण खींची जाने वाली रूपरेखाओं के अनुदिश सीधे संचालित होती है; B — यदि प्रदर्शन-सूची स्थिरता-समय के भीतर पुनः न खींची जा सके तो वे टिमटिमा सकते हैं

    पहले दो यादृच्छिक-स्कैन प्रदर्शन सही ढंग से वर्णित करते हैं; अंतिम दो इसके बजाय रास्टर-स्कैन प्रदर्शन वर्णित करते हैं — फ़्रेम-बफ़र व भरे क्षेत्रों का स्वाभाविक निपटान रास्टर के गुण हैं, सदिश के नहीं।
  8. उस रेखा-खींचने वाली कलनविधि का नाम बताइए जो पिक्सेल-चुनाव निर्णय को केवल पूर्णांक अंकगणित से पुनर्रचित करती है, DDA विधि के संचित पूर्णांकन-बहाव से बचते हुए।

    संख्यात्मक उत्तर — मान टाइप करें।

    उत्तर देखें

    उत्तर: Bresenham

    ब्रेसनहैम कलनविधि मानक केवल-पूर्णांक, सटीक रेखा-खींचने वाली विधि है, और उसकी निर्णय-चर तकनीक मिडपॉइंट वृत्त व दीर्घवृत्त कलनविधियों तक भी सामान्यीकृत होती है।