2012-06-19 27 views
5

मैं ओपनजीएल (अधिक विशेष रूप से lwjgl) में एक जीयूआई बना रहा हूं। मैंने ऐसा करने के विभिन्न तरीकों का शोध करने के लिए कड़ी मेहनत की है, लेकिन मुझे वही चीज़ मिल रही है जो मैं चाहता हूं। मैं किसी बाहरी पुस्तकालयों का उपयोग नहीं करना चाहता (केवल ओपनजीएल में निर्मित, जीएलयूटी का उपयोग करने से दूर रहने की कोशिश कर रहा हूं) और मैं इसे ओपनजीएल का समर्थन करने वाली किसी भी चीज़ पर काम करना चाहता हूं (उदा। फ्रेम बफर ऑब्जेक्ट्स पुराने पर काम नहीं करते हैं ग्राफिक कार्ड)।ओपनजीएल स्क्रॉल करने योग्य पैनल में आंशिक वस्तु खींचता है

मैं एक स्क्रॉल करने योग्य पैनल के साथ एक घटक के रूप में एक 3 डी जीयूआई बना रहा हूं। समस्या यह है कि मुझे नहीं पता कि आंशिक जीयूआई घटक को कैसे आकर्षित किया जाए, केवल इसके हिस्से को प्रस्तुत करने के लिए बहुत सी गणना किए बिना। मैं ओपनजीएल प्राइमेटिव्स से घटकों को बना रहा हूं, न कि बनावट। मैं उम्मीद कर रहा था कि ऐसा करने का एक आसान तरीका है जैसे एकाधिक व्यूपोर्ट्स का उपयोग करना। मैं वास्तव में यह भी समझ नहीं पा रहा हूं कि कौन से व्यूपोर्ट हैं।

संक्षेप में: मुझे अन्य जीयूआई घटकों को ओवरलैप करने वाले घटक के रूप में एक स्क्रॉल करने योग्य पैनल होना चाहिए (क्योंकि यह एक ड्रॉप डाउन मेनू होगा) और मेरे पैनल के किसी भी घटक को मेरे पैनल के बाहर खींचने दें।

उत्तर

6

यदि आप आयताकार क्षेत्र के बाहर वाले चित्र पिक्सेल को रोकना चाहते हैं (और मुझे लगता है कि आप यही पूछ रहे हैं) glScissor से बिल्कुल वही है जो आप खोज रहे हैं।

lwjgl में, आप org.lwjgl.opengl.GL11 में फ़ंक्शन पा सकते हैं।

+1

आप GL_GLIP_PLANE का लाभ भी ले सकते हैं, वे आपको मॉडल स्पेस में क्लिप करने की अनुमति देंगे (यदि आपके जीयूआई निर्देशांक व्यूपोर्ट पिक्सेल से मेल नहीं खाते हैं)। – Kromster

+0

धन्यवाद, यह वही है जो मैं ढूंढ रहा था – axelrod360

1

यदि आप स्क्रीन पर किसी निश्चित क्षेत्र के भीतर एक बड़ा दृश्य स्क्रॉल करना चाहते हैं, तो सबसे सरल तरीका स्क्रॉल स्थिति के लिए अपने प्रक्षेपण मैट्रिक्स को संशोधित करना और दृश्य को फिर से निकालना है। यदि आप अपने प्रोजेक्शन मैट्रिक्स को सेट अप करने के लिए gluPerspective का उपयोग कर रहे हैं तो आपको इसे सीधे कॉल पर ग्लफ्रस्टम में परिवर्तित करना होगा; यदि आप ग्लोथो का उपयोग कर रहे हैं तो यह अधिक सरल है।

ध्यान रखें कि "परिप्रेक्ष्य" को एक परिप्रेक्ष्य दृश्य में चीजों को करने का कोई सही तरीका नहीं है - यह इस बात पर निर्भर करता है कि आप किस प्रकार के प्रभाव को प्राप्त करना चाहते हैं, और समग्र व्यूपोर्ट के किनारों के किनारे आप किस तरह के विरूपण चाहते हैं ।