2010-12-01 17 views
14

मैं ओपनजीएल के साथ लगभग एक साल से काम कर रहा हूं, और बहुत सी चीजें सीखी हैं। दुर्भाग्यवश जिस तरह से मैंने इसे सीखा, वह पुराना पूर्व 3.x तरीका था, जिसका अर्थ तात्कालिक मोड, डिफ़ॉल्ट शेडर्स, मैट्रिक्स स्टैक्स इत्यादि था। हालांकि, ओपनजीएल चश्मे को देखकर अब तक क्या बदल गया है इसका एक विचार है। मैं चीजों को करने के कुछ नए तरीकों को पूरी तरह से समझ नहीं पा रहा हूं।ओपनजीएल 3.1-4.1 नई और बहिष्कृत विशेषताएं

मेरी समझ से उन्होंने मैट्रिक्स स्टैक्स से छुटकारा पा लिया, जिसका अर्थ है कि आपको अपने स्वयं के रूपांतरण मैट्रिक्स का ट्रैक रखना होगा, जो बहुत जटिल नहीं लगता है। उन्होंने तत्काल मोड से छुटकारा पा लिया, जिसका अर्थ है कि अब आपको पिक्सेल/सामान्य/बनावट आदि भेजने के लिए वीबीओ या वीएओ (कभी भी कौन सा, शायद दोनों ..) का उपयोग करने की आवश्यकता नहीं है। शेडर कार्यक्रम के लिए जानकारी। मुझे वास्तव में इन वस्तुओं को काम करने का तरीका नहीं मिलता है, मुझे लगता है कि आपको उन सभी जानकारी को उनके अंदर रखना होगा, और विभाजक को पिक्सेल, सामान्य और बनावट निर्देशांक के बीच दिखाने के लिए कुछ प्रकार की शुरुआत करना होगा। क्या कोई संक्षेप में समझा सकता है कि यह वास्तव में कैसे काम करता है (या मुझे एक लिंक भेजता है जो इसे समझाता है)? मैंने विकिपीडिया की कोशिश की और इसे गुगल कर दिया, लेकिन मुझे खुद को अभी भी समझ में नहीं आया।

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

उत्तर

9

चूंकि तात्कालिक मोड को "हैलो त्रिकोण" एप्लिकेशन को बहिष्कृत करने से थोड़ा अधिक शामिल किया गया है।

http://arcsynthesis.org/gltut/

आप इसे अच्छी तरह से पढ़ना चाहिए: वहाँ आधुनिक ओपन पर एक अच्छा ट्यूटोरियल यहाँ है। ध्यान रखें कि यह वीएओ का उपयोग नहीं करता है, इसलिए आपको इसके बाद कहीं और पढ़ना होगा। वीएओ चीजों को ज्यादा नहीं बदलते हैं इसलिए आपको उनका उपयोग करने के लिए उल्लिखित ट्यूटोरियल से चीजों को अनदेखा नहीं करना पड़ेगा।

और आपके दूसरे प्रश्न के बारे में ... आपके वर्टेक्स शेडर को प्रत्येक चरम के लिए ओपनजीएल द्वारा निष्पादित किया जाएगा। आपका काम कशेरुक की अंतिम स्थिति की गणना करना और डेटा (जैसे मानक, प्रकाश डेटा ...) को खंडन शेडर को भेजा जाना चाहिए, कशेरुक के गुण और अन्य डेटा जिसे आप शेडर को भेजते हैं (वर्दी - आप इसके बारे में पढ़ेंगे यह ट्यूटोरियल में)। टुकड़ा टुकड़ा प्रति टुकड़ा निष्पादित किया जाएगा और टुकड़े टुकड़े में आप प्रत्येक टुकड़े के अंतिम रंग की गणना कर रहे हैं।

आप यहाँ देख सकते हैं:

http://www.opengl.org/sdk/docs/man4/

उस तरह, glPolygonMode और glCullFace चीजें वहाँ अभी भी कर रहे हैं।

+0

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

+0

आपका स्वागत है – Bojan

+0

ट्यूटोरियल का आपका लिंक अब टूटा हुआ है। – Ruslan