2012-10-18 13 views
5

मैं कंप्यूटर ग्राफिक्स पाठ्यक्रम के लिए इंटरैक्टिव दृश्यों पर काम कर रहा हूं। मैंने एक प्रोग्राम स्थापित किया है जो रंगीन क्यूब्स उत्पन्न करेगा, और मुझे कीबोर्ड के साथ घुमाएगा। लेकिन वे कर रहे हैं हो रही मेरे कैमरे के पास क्लिप हवाई जहाज से खुला कटौती:क्लिप प्लेन के पास ओपनजीएल

Color cubes being clipped

मैं gluPerspective उपयोग करने के लिए कोशिश की है, लेकिन ओपन प्रलेखन इसके उपयोग के किसी भी उदाहरण नहीं देता है। मैंने पाया कि इसे ऑनलाइन उदाहरण प्रोग्राम में इस्तेमाल किया जा रहा है, और अर्ध-दोहराया गया कोड:

glMatrixMode(GL_PROJECTION); 
glLoadIdentity(); 
gluPerspective(65, 1, 0.01, 100); 
glMatrixMode(GL_MODELVIEW); 

कोई विचार?

अद्यतन: नीचे टिप्पणी में सुझाव दिया है, मैं बजाय glFrustum का उपयोग कर, निम्न कोड के साथ करने की कोशिश की:

glMatrixMode(GL_PROJECTION); 
glLoadIdentity(); 
glFrustum(-0.5, 0.5, -0.5, 0.5, 0.1, 100); 
glMatrixMode(GL_MODELVIEW); 

फिर, वहाँ कोई अंतर नहीं था। क्या मैं परिणामी मैट्रिक्स को सही ढंग से या कुछ नहीं दबा रहा हूं?

+1

आप एक गणना ग्राफिक्स कोर्स ले रहे हैं जिसमें परिप्रेक्ष्य प्रक्षेपण शामिल है और उन्होंने निकट क्लिप विमान के बारे में बात नहीं की? –

+1

शायद आपको कैमरे से थोड़ी दूर अपने ऑब्जेक्ट्स को स्थानांतरित करने की आवश्यकता है। अभी ऐसा लगता है कि वे करीब आ गए हैं कि 0.0 – Kromster

+0

क्रॉम के रूप में करें या अपने दृश्य को समायोजित करें Frustum – CStreel

उत्तर

2

शायद आपको अपने ऑब्जेक्ट को कैमरे से थोड़ी दूर ले जाना होगा। अभी ऐसा लगता है कि वे 0.0 से करीब हैं।

अपने अपडेट को ध्यान में रखते हुए "मैंने कैमरे से एक पूरी इकाई को cubes को स्थानांतरित कर दिया, और अब जब वे घूमते हैं तो वे निकट और दूर क्लिप विमानों द्वारा फिसल जाते हैं" आपके क्यूब आपके गहराई गहराई के लिए बहुत बड़े हो सकते हैं (100 - 0.1)। 50 से कैमरे से cubes दूर ले जाएं और अपने क्लिपिंग विमानों को 0.1 .. 1000 सुनिश्चित करें ताकि सब कुछ फिट हो सके।

यदि समस्या बनी हुई है तो हमें आपके मैट्रिस कोड को देखने की आवश्यकता हो सकती है।

+0

मेरे क्यूब्स अंकों की निम्नलिखित सरणी से निर्माण किया जा रहा है: 'point4 कोने [8] = { point4 (-0.5, -0.5, 0.5, 1.0), point4 (-0.5, 0.5, 0.5, 1.0), प्वाइंट 4 (0.5, 0.5, 0.5, 1.0), प्वाइंट 4 (0.5, -0.5, 0.5, 1.0), प्वाइंट 4 (-0.5, -0.5, -0.5, 1.0), प्वाइंट 4 (-0.5, 0.5, -0.5, 1.0), प्वाइंट 4 (0.5, 0.5, -0.5, 1.0), प्वाइंट 4 (0.5, -0.5, -0.5, 1.0) }; ' वे (-0.75, 0, 0) और (0.75, 0, 0) क्रमशः, (-0.75, 0, 1) और (0.75, 0, 1) जब मैं उन्हें कैमरे से आगे ले गया – Nick

+1

आप जानते हैं कि जब एक घन -1 पर स्थित होता है और 45 डिग्री से घूर्णन होता है तो इसके किनारों को घुमाया जाता है 1.41 दूर मीटर यह केंद्र है और फिसल जाना चाहिए? – Kromster

+0

मैं समझता हूं कि तस्वीर का हिस्सा ऑफ-कैमरा होने जा रहा है, और इसे फिसल जाना चाहिए, लेकिन यह बहुत दिखाई देता है, और आप क्यूब्स के अंदरूनी हिस्से में देख सकते हैं। उल्लेख नहीं है कि दूर क्लिप विमान चीजों को काट रहा है। अगर मैं एक असली दृश्य देखना चाहता हूं, तो यह अच्छा दिखने वाला नहीं है।ऐसा लगता है कि मैं ग्लफ्रस्टम या ग्लू को कॉल में कुछ भी नहीं बदल रहा हूं, ऐसा लगता है कि कुछ भी बदल रहा है, इसलिए मुझे नहीं लगता कि मैं उनका सही इस्तेमाल कर रहा हूं। आप उनका कैसे उपयोग करते हैं? – Nick

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