ओपनजीएल वायरफ्रेम


18

नहीं, मैं glPolygonMode की तलाश में नहीं हूं। मैं एक विधि की खोज कर रहा हूं, संभवतः एक GLSL शेडर जो वस्तुओं के लिए रेट्रो-शैली वायरफ्रेम लुक का उत्पादन करेगा। कोई सुझाव?

वेक्टर टैंक जैसा कुछ था।

http://toucharcade.com/wp-content/uploads/2009/01/picture-111-300x204.png

अधिमानतः समाधान OpenGL ES 2.0 पर भी काम करना चाहिए।

किसी भी संकेत और संकेत (जब तक NULL नहीं) की सराहना की!

जवाबों:


10

रुचि के कुछ लिंक:

बैरेंत्ज़ेन एट अल। "सिंगल-पास वायरफ्रेम रेंडरिंग" http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=4884

निविडिया कॉरपोरेशन "सॉलिड वायरफ्रेम" श्वेत पत्र http://developer.download.nvidia.com/SDK/10/direct3d/samples.html

संपादित करें: मुझे लगता है कि पहले से ही पहले से ही उल्लेख किया गया था, क्षमा करें!


5

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

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

अन्यथा आप एक दो-पास समाधान देख रहे होंगे, पारभासी बहुभुजों को खींचते हुए (फिर से, मध्यम रंग को एक मध्यम अल्फा मान के साथ एक ठोस रंग पर सेट करें), फिर glPolygonMode (GL_LINE) और ट्विन ग्लाइलाइनिड को वांछित के रूप में सेट करें (शायद ऑब्जेक्ट के आधार पर दूरी) और बहुभुज फिर से आकर्षित।

थोड़ी देर हो चुकी है और मुझे इसके माध्यम से पढ़ने में कठिन समय हो रहा है, लेकिन एक मंच चर्चा इस पीडीएफ की ओर इशारा करती है : सिंगल-पास वायरफ्रेम रेंडरिंग । यदि यह प्रासंगिक नहीं है तो मेरी क्षमा याचना।


+1: यह आसान होगा हालांकि अगर मुझे किसी तरह से टेक्सचर जेनरेट करने का तरीका मिल जाएगा। बाद में OpenGL ES लक्ष्यीकरण (iStuff) के कारण glPolygonMode का उपयोग नहीं कर सकते।
कोर्नेल किलीविक्ज़

2

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


मुझे पता है, मुझे पता है, लेकिन मैं भी तोड़फोड़ की तस्वीरें पेस्ट कर सकता हूं, और यह बनावट का उपयोग नहीं करता है (एएफएआईके)
कोर्नेल किलीलेविक्ज़

2

एकमात्र तरीका जो मैंने देखा है वह उच्च-रिज़ॉल्यूशन, ज्यादातर-काले बनावट के साथ है, जैसे कि ट्रॉन 2.0 में। उनके बनावट लगभग सार्वभौमिक रूप से या तो एक मोटी, रंगीन सीमा, या एक सरल पेर्लिन शोर बनावट के साथ सपाट काले हैं।

उन्होंने चमक प्रभाव को प्राप्त करने के लिए कुछ सरल पोस्ट-प्रोसेसिंग को लागू किया।


+1: मुझे लेख पता था, लेकिन याद दिलाने के लिए धन्यवाद - यह वास्तव में एक अच्छा लेख है (और मेरे पास दूसरी समस्या है - चमक)।
कोर्नेल किलीविलेज़

1

आप पिक्सेल shader में किसी प्रकार की साधारण दूरी के कार्य को आजमा सकते हैं। शायद बैरिएट्रिक निर्देशांक जैसी कोई चीज़ (विभिन्न आरजीबी को कोने में जमा करती है और रैस्टराइज़र आपके लिए अधिकांश काम करेगा)।

तब आपके पिक्सेल shader में यह जानकारी होती है कि उसे इस बात की ज़रूरत है कि वर्तमान पिक्सेल में बहुभुज कहाँ है - एक शीर्ष के पास, एक किनारे के पास, या बीच में ...

मुझे लगता है कि व्यवहार में यह बनावट के लिए आसान होगा।


1

इसके बारे में कैसे: अपने मॉडल को लें, और उन किनारों को उकेरें जिन्हें आप रेखांकित करना चाहते हैं। उन चेहरों को रंग दें जो एक चमकदार अपारदर्शी हरे रंग के साथ बनाए गए थे, जबकि सभी पुराने चेहरे गहरे पारभासी हरे रंग के हैं।

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

जब बाहरी सतह दृश्य के लंबवत हो तो आप रूपरेखा नहीं देख पाएंगे। यदि यह आपको परेशान करता है, तो आप बेवल की सतह को थोड़ा बाहर निकाल सकते हैं, एक्सट्रूज़न को रंग दे सकते हैं जैसा कि आपके पास होगा। आप पतले और मोटे रेखाओं को बनाने के लिए अलग-अलग डिग्री के बेवलिंग और एक्सट्रूज़न के साथ खेल सकते हैं।

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