2012-01-09 16 views
9

मै मैक ओएस एक्स पर ओपनजीएल 3.2 कोर संदर्भ स्थापित कर रहा हूं। मैं स्क्रीन पर कुछ मोटी काले पसंदों को आकर्षित करने में सक्षम होना चाहता हूं। ओपनजीएल के व्यापक संस्करण में, मैं बसओपनजीएल 3.2 कोर प्रोफाइल glLineWidth

glLineWidth(10.0f); 

सेट कर सकता हूं और मुझे लाइन 10 पिक्सल चौड़ी मिल जाएगी। लेकिन जब मैं 3.2 कोर

GLint range[2]; 
glGetIntegerv(GL_ALIASED_LINE_WIDTH_RANGE, range); 
glGetIntegerv(GL_SMOOTH_LINE_WIDTH_RANGE, range); 

में रेखा की चौड़ाई पर्वतमाला जाँच मैं चिकना लाइनों के लिए एलियास लाइन्स के लिए 1 और 0-1 के मूल्यों को प्राप्त। मैं स्क्रीन लाइन में 10.0 पिक्सल चौड़ी लाइन कैसे बना सकता हूं? क्या प्रत्येक लाइन सेगमेंट को आयताकार बनाने के अलावा इसे आकर्षित करने का कोई आसान तरीका है?

उत्तर

7

ओपन 3.2 कोर प्रोफ़ाइल का उपयोग करना, glLineWidth बुला से अधिक 1.0 मूल्य के साथ एक INVALID_VALUE त्रुटि (यह साबित करने के glGetError कहते हैं) दे।

निश्चित रूप से आप लाइन ड्राइंग के लिए आवश्यक क्वाड निर्धारित करके वांछित परिणाम प्राप्त कर सकते हैं।

मुझे लगता है कि आपको लाइन बिंदुओं से क्वाड उत्पन्न करने में सक्षम होना चाहिए: हे, एक बड़ी रेखा एक ट्रैक्टर है! हो सकता है कि आप अपने वांछित परिणाम प्राप्त करने के लिए this जैसे तकनीक का उपयोग कर सकें।

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

शायद एक और दृष्टिकोण एक ज्यामिति शेडर का उपयोग करके प्रतिपादन करेगा: एक बिंदु से एक ट्रैक्टर उत्पन्न करें। हालांकि, मुझे इस बिंदु के बारे में निश्चित नहीं है। मुझे नहीं पता कि एक ज्यामिति शेडर (केवल अगर यह व्यवहार्य है, तो सबसे अच्छा तरीका होगा) एक सिंगल क्वाड का उपयोग करके लाइन स्ट्रिप ड्राइंग करने की लागत स्ट्रिप को लिखने वाली प्रत्येक पंक्ति के लिए शेडर वर्दी सेटअप होगी।

+0

ऐसा लगता है कि यह करने के लिए सबसे अच्छा/एकमात्र तरीका दो प्रारंभिक ज्यामिति या ज्यामिति शेडर के माध्यम से पूर्ण ज्यामिति ईथर खींचता है। – user1139069

1

यह आपके द्वारा स्थापित प्रक्षेपण के प्रकार के आधार पर हो सकता है। क्या आप ऑर्थोग्राफिक या परिप्रेक्ष्य प्रक्षेपण मैट्रिक्स का उपयोग कर रहे हैं?

मुझे लगता है कि यदि आप ऑर्थोग्राफिक प्रक्षेपण का उपयोग नहीं कर रहे हैं, तो आदिम का अंतिम रास्टरकरण कैमरे से ऑब्जेक्ट (मॉडल मैट्रिक्स) की दूरी के अधीन होगा (मैट्रिक्स देखें)।

चीयर्स

+0

मैं ऑर्थोग्राफिक प्रक्षेपण का उपयोग कर रहा हूं। – user1139069

संबंधित मुद्दे