मज़े के लिए मैं डीसीपीयू -16 के लिए एक वायर-फ्रेम दर्शक बनाने की कोशिश कर रहा हूं । मैं समझता हूं कि तार फ्रेम में छिपी लाइनों को कैसे छिपाया जाए इसके अलावा सब कुछ कैसे करते हैं। SO पर यहां सभी प्रश्न सभी मानते हैं कि आपके पास OpenGL तक पहुंच है, दुर्भाग्य से मेरे पास DCPU-16 (या किसी भी प्रकार का हार्डवेयर त्वरण) जैसी किसी भी चीज की पहुंच नहीं है।
मुझे Google Books पर Appel के एल्गोरिथ्म का काफी अच्छा वर्णन मिला । हालांकि एक समस्या यह है कि मुझे इसका पता लगाने में परेशानी हो रही है।
Appel ने समोच्च रेखा को एक सामने-सामने और एक बैक-फेसिंग बहुभुज द्वारा साझा किए गए किनारे के रूप में परिभाषित किया है, या एक सामने वाले बहुभुज के बिना किनारे का किनारा जो एक बंद पॉलीहेड्रॉन का हिस्सा नहीं है। दो सामने वाले बहुभुजों द्वारा साझा की गई बढ़त दृश्यता में कोई बदलाव नहीं करती है और इसलिए यह समोच्च रेखा नहीं है। अंजीर। 8.4 में, किनारों AB, EF, PC, GK और CH समोच्च रेखाएँ हैं, जबकि किनारों ED, DC और GI नहीं हैं।
मैं एल्गोरिथ्म के नियमों को समझता हूं और आपके समोच्च रेखाओं के होने के बाद यह कैसे काम करता है, हालांकि मुझे समझ में नहीं आता है कि यह निर्धारित करने के लिए मुझे क्या करने की आवश्यकता है कि क्या एक किनारे " सामने वाले और एक पीछे वाले बहुभुज द्वारा साझा किया गया है, या एक सामने वाले बहुभुज का अनसेकेडेड किनारे जो एक बंद पॉलीहेड्रॉन का हिस्सा नहीं है "कोडिंग दृष्टिकोण से"। मैं एक आकृति देख सकता हूं और मुझे पता चल सकता है कि मेरे सिर में कौन सी रेखाएं समोच्च रेखाएं हैं लेकिन मुझे इस बात का कोई सुराग नहीं है कि कोडित एल्गोरिथ्म में उस "समझ" को कैसे स्थानांतरित किया जाए।
अपडेट करें
मैंने समोच्च रेखाओं के निर्धारण में कुछ प्रगति की है। मुझे कंप्यूटर ग्राफिक्स पर यूनिवर्सिटी ऑफ़ बफ़ेलो क्लास के ये दो लेक्चर नोट्स मिले।
किनारों पर विचार करें। ये तीन श्रेणियों में आते हैं।
- दो अदृश्य चेहरों में शामिल होने वाला एक किनारा स्वयं अदृश्य है। इसे सूची से हटा दिया जाएगा और अनदेखा कर दिया जाएगा।
- दो संभावित-दृश्यमान चेहरों को मिलाने वाली बढ़त को 'मटेरियल एज' कहा जाता है और इसके लिए आगे की प्रक्रिया की आवश्यकता होगी।
- संभावित रूप से दिखाई देने वाले चेहरे और अदृश्य चेहरे से जुड़ने वाला एक किनारा 'मटेरियल एज' का एक विशेष मामला है और इसे 'कंट्रास्ट एज' भी कहा जाता है।
उपरोक्त दो सूचनाओं का उपयोग करके मैं इसे कोड के रूप में लिखने में सक्षम होने में सक्षम हूं, लेकिन मुझे अभी भी एक लंबा रास्ता तय करना है।