OpenGL के लिए कुछ अच्छे सीखने के संसाधन क्या हैं? [बन्द है]


88

मैं अब कुछ समय के लिए iPhone पर OpenGL ES का उपयोग कर रहा हूं और मूल रूप से मुझे बहुत कम लगता है कि मैंने अपने आदेशों के छोटे-छोटे सेटों को देखा है, जिन्हें मैंने उदाहरणों में देखा है और अपने स्वयं के रूप में अपनाया है। मैं अन्य प्लेटफार्मों पर ओपनजीएल का उपयोग करना पसंद करूंगा और इसकी अच्छी समझ होगी।

हर बार जब मैं एक किताब खोजता हूं तो मुझे यह बहुत बड़ा लगता है जो कि एक शुरुआती के लिए अबाधित और बहुत कठिन लगता है। अगर मेरे पास ओपनएंगल सीखने पर खर्च करने के लिए कुछ हफ़्ते हैं, तो अपना समय (और पैसा) खर्च करने का सबसे अच्छा तरीका क्या होगा?


12
मैं यह कह रहा से नफरत है, लेकिन ओपन Superbible या ओपन Redbook हैं सबसे अच्छा तरीका है ओपन जानने के लिए। यह एक जटिल विषय है, इसलिए पुस्तक को बड़ा करने की आवश्यकता है।
राचेल ब्लम

6
क्या यह किसी नए व्यक्ति के लिए भी प्रशंसनीय है?
DFectuoso

जवाबों:


36

जब आप OpenGL के ट्यूटोरियल को देखते हैं तो सावधान रहें, क्योंकि उनमें से कई (NeHe) में सिर्फ आपको वे चीजें सिखाना शामिल हैं जो आपको अब नहीं करनी चाहिए। टॉड्स ओपनग्ल एक अलग जानवर है जो 10 साल पहले था।

हटाए गए सामान से बचने के कुछ अच्छे उदाहरण यहां देखे जा सकते हैं: http://www.g-truc.net/post-tech-content.sn.html

ओपनजीएल नमूने पैक 4.0.1.0 एक अद्यतन है जो कुल 58 नमूनों में नमूनों की संख्या लाता है; 13 OpenGL 4 नमूने, 33 OpenGL 3.3 नमूने और 12 OpenGL 2 नमूने दृश्य स्टूडियो 2008 और 2010 के लिए 32 और 64 बिट्स सहित।


यह एक पहाड़ से जुड़ रहा है!
user14170

65

कई चीजें हैं जिनसे आप सीख सकते हैं। ओपनग्लग के लिए किसी नए के परिप्रेक्ष्य से, यहां प्रत्येक पर मेरी सोच है।

OpenGL उदाहरण

वहाँ बहुत सारे उदाहरण कोड हैं जिन्हें आप पढ़ सकते हैं। जी-ट्रूक के उदाहरण बहुत व्यापक हैं और बहुत सारी उन्नत सुविधाओं को कवर करते हैं।

हालाँकि, यदि आप एक शुरुआती हैं, तो उदाहरणों से सीखना सीखने का एक भयानक तरीका है। कोड पढ़ना जो आप वास्तव में नहीं समझते हैं वह आपको यह नहीं सिखाएगा कि यह क्यों काम करता है। दरअसल, उपरोक्त लिंक पृष्ठ पर पाठ विशेष रूप से और सही रूप से बताता है कि उदाहरण शुरुआती के लिए नहीं हैं।

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

OpenGL Books

OpenGL के विकास के लिए उचित खरीद योग्य पुस्तकों की एक उचित संख्या है। मैं अपने विचारों को यहां दो सबसे बड़े हिस्से में शामिल करूंगा।

ओपन रेडबुक

यह एक विशुद्ध रूप से व्यावहारिक दृष्टिकोण से कुछ हद तक समस्याग्रस्त है। देखें, 7 वें संस्करण में जीएल 3.0 और 3.1 शामिल हैं। जो बल्कि पुराना है। वहाँ एक कर दिया गया है बहुत तब से ओपन करने के लिए जोड़ा उपयोगी सुविधाओं, सुविधाओं जो बदल कैसे आप चीजों को लिखते थे की। और उनमें से सभी हार्डवेयर विशेषताएं नहीं हैं।

8 वां संस्करण "जल्द" आ रहा है, और 4.1 को कवर करेगा। इसमें कोई शब्द नहीं है कि क्या यह पुराने फिक्स्ड-फंक्शन सामान को कवर करता है।

मैं कहूंगा कि यह पुस्तक ठीक है। इसके साथ सबसे बड़ी समस्या सूचना का संगठन है। यह सीखने के लिए बनाई गई पुस्तक की तुलना में व्यापक संदर्भ पुस्तिका की तरह है। यहाँ मेरा मतलब है।

सबसे महत्वपूर्ण चीजों में से एक जो शिक्षण के दौरान करना चाहिए, वह है छात्र को महत्वहीन जानकारी के साथ अधिभार न देना। लेकिन रेडबुक ठीक यही करता है। सामग्री की शुरुआत करते समय, यह बहुत सारी सामग्री का परिचय देता है । इसमें से अधिकांश हाथ में कार्य के लिए बहुत ही कम हैं।

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

यह सिर्फ सूचना का एक अच्छा संगठन नहीं है।

OpenGL शानदार

इस पुस्तक के पांचवें संस्करण में केवल कोर जीएल 3.x शामिल है, इसलिए कोई निश्चित कार्य नहीं है।

हालांकि, पुस्तक का सामान्य संगठन कमोबेश चौथे संस्करण के संस्करण के संगठन के समान है। यह असंभव लगता है क्योंकि 4 वें संस्करण ने फिक्स्ड-फंक्शन का उपयोग किया था और बहुत बाद तक शेड का परिचय नहीं दिया था।

जिस तरह से यह पूरा किया गया वह पुस्तक के बारे में मेरी # 1 शिकायत है। अनिवार्य रूप से, लेखक ने एक पुस्तकालय बनाया जो फिक्स्ड-फंक्शन ओपनजीएल का एक रूप लागू करता है। यह वीएओ, बफर ऑब्जेक्ट्स, शेड्स और कई अन्य चीजों को लपेटता है, ताकि वह ड्राइंग ऑब्जेक्ट्स, मैट्रिक्स गणित और टेक्सचर के बारे में बात कर सकें, बिना इस बारे में बात किए कि जीएल पाइपलाइन कैसे काम करता है।

इन सभी विवरणों को छिपाकर, यह सामग्री को पचाने में आसान बनाता है। लेकिन आप अक्सर लोगों को लाइब्रेरी के बिना वास्तव में काम करने का तरीका जाने बिना शानदार से दूर चलते हुए देखेंगे। वे वास्तव में यह नहीं समझते कि शेड्स बफर ऑब्जेक्ट्स से कैसे कनेक्ट होते हैं, डेटा पाइप लाइन से कैसे बहता है, आदि।

यह एक सेवा योग्य पुस्तक है, जो रेडबुक की तुलना में मोरसो है। यदि बाकी सब विफल हो जाता है, तो यह काम करेगा। लेकिन मुझे लगता है कि यह बेहतर हो सकता है।

इसके अलावा, कुछ समीक्षकों के अनुसार, यह कुछ उपयोगी जानकारी को याद करने लगता है, जैसे कि सामान्यीकृत मानों का उपयोग करके डेटा की पैकिंग करना और जैसे।

OpenGL ऑनलाइन सामग्री

कई ऑनलाइन सामग्रियां हैं जिनसे कोई भी सीख सकता है।

नेह के ट्यूटोरियल

नेह के ट्यूटोरियल , जैसा कि अन्य लोगों ने कहा है, बेहद पुराने हैं। वे फिक्स्ड-फंक्शन ओपनजीएल पर ध्यान केंद्रित करते हैं। यह अक्सर कहा जाता है कि फिक्स्ड-फंक्शन जीएल सीखना आसान है, जो सच है। लेकिन यह एक अच्छा विचार नहीं है।

यह समझना कि फिक्स्ड-फंक्शन पाइपलाइन वास्तव में कैसे काम करती है। मैं यह कहना चाहूंगा कि यह सीखने के लिए कठिन है। एक बार जब आप इसे प्राप्त करते हैं, तो शेड सरल होते हैं। बनावट पर्यावरण के सामान, कॉम्बीनेर्स और व्हाट्सन की पेचीदगियों को समझना, बहुत मुश्किल है और यह सुनिश्चित करने के लिए बार-बार विज़िट की आवश्यकता है कि डॉक्स को यह सुनिश्चित करने के लिए कि सब कुछ सही सेट है। यहां तक ​​कि अगर आप सब कुछ सही ढंग से समझते हैं, तो एक छोटी सी गलती करना आसान है, जिससे सब कुछ टूट जाता है।

अंतर यह है कि आप इसे समझे बिना निर्धारित-कार्य कर सकते हैं । यह कार्गो पंथ प्रोग्रामिंग को प्रोत्साहित करता है। यह स्क्रीन पर कुछ प्राप्त करना संभव बनाता है बिना वास्तव में यह जानने के कि कोई क्या कर रहा है। OpenGL.org फ़ोरम में, हम निश्चित-फ़ंक्शन के आसपास के minutiae के बारे में लगातार सवाल देखते हैं, लोगों को पता नहीं है कि gluLookAt कैसे काम करता है, प्रकाश व्यवस्था के साथ कठिनाइयों के लिए, लोगों को बनावट पर्यावरण के साथ काम करने के लिए कुछ विशेष प्रभाव प्राप्त करने की कोशिश कर रहा है।

तो नहीं, मुझे नहीं लगता कि नेगले ओपनजीएल सीखने का एक अच्छा तरीका है।

उपरोक्त टिप्पणी किसी भी गैर-shader आधारित ट्यूटोरियल के लिए इस्तेमाल की जा सकती है, जैसे कि Swiftless , Lighthouse , और आगे।

विकीबूक का ओपनजीएल प्रोग्रामिंग

Wikibook OpenGL प्रोग्रामिंग शायद नेह के बराबर आधुनिक है। यह जीएल संस्करण 2.1 को कवर करता है, क्योंकि वे इसे मोबाइल प्लेटफार्मों के लिए प्रासंगिक रखना चाहते हैं। अगर यह आपके लिए महत्वपूर्ण है, तो हर तरह से यहां देखें।

नेह के साथ दूसरा मुद्दा, और इस तरह यह विकीबूक, स्रोत कोड पर बड़ा ध्यान केंद्रित है। कोड अनुपात का पाठ बहुत छोटा है; वहाँ एक है बहुत कुछ कोड की, लेकिन पाठ वास्तव में यह कैसे काम करता है सब की व्याख्या नहीं करता।

एक उदाहरण के रूप में, ट्यूटोरियल 2 के नीचे देखें। यह सम्मिश्रण का परिचय देता है। यह नहीं कहता कि सम्मिश्रण कैसे काम करता है। यह नहीं कहता कि glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)वास्तव में इसका क्या अर्थ है या क्या करता है। यह सिर्फ कहता है, "यहां कुछ कोड हैं जो चीजों को पारदर्शी बनाते हैं।"

यह सबसे अच्छा सीखने का माहौल नहीं है।

अधूरा ट्यूटोरियल

स्विफ्टलेस में ओपनजीएल 4.x ट्यूटोरियल का एक सेट है । Durian सॉफ्टवेयर में कुछ shader- आधारित OpenGL ट्यूटोरियल भी हैं । और वहाँ "OpenGLBook.com" ट्यूटोरियल है

ये सभी चीजें आम हैं ... कि वे अधूरी हैं और उन्हें छोड़ दिया गया है। उन सभी को लगभग 4-5 ट्यूटोरियल मिले और फिर उन्हें हटा दिया गया। उनमें से कोई भी बनावट, प्रकाश, या ऐसा कुछ भी नहीं पहुंचा। खैर, ड्यूरियन ने टेक्सचरिंग मारा लेकिन लाइटिंग नहीं।

उनसे बहुत कुछ किया जा सकता है, लेकिन बहुत कुछ ऐसा भी है जो गायब है।

बेशर्म आत्म-संवर्धन

मेरे अपने आधुनिक 3 डी ग्राफिक्स ट्यूटोरियल की समीक्षा करना हितों का एक भयानक संघर्ष होगा। इसलिए इसके बजाय, मैं उनके पीछे संगठन के बारे में लंबाई पर पकड़ करूँगा और मुझे लगता है कि वे अच्छे हैं।

ओह और हाँ, मैं ट्यूटोरियल 17 पर काम कर रहा हूं। परियोजना मृत नहीं है।

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

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

प्रकाश ट्यूटोरियल फिर से एक दूसरे पर निर्माण करते हैं। डिफ्यूज़, फिर प्रति-खंड प्रकाश, फिर स्पेक्युलर। डायनेमिक रेंज एक दिलचस्प विकल्प था। अधिकांश परिचयात्मक सामग्री इससे दूर रहने की कोशिश करती है, लेकिन मैं इसे गले लगाता हूं। आप इन दिनों ग्राफिक्स प्रोग्रामर नहीं हैं यदि आपको लगता है कि प्रकाश की तीव्रता हमेशा सीमा [0, 1] पर होती है। और आप इन दिनों ग्राफिक्स प्रोग्रामर नहीं हैं यदि आप नहीं जानते कि एक रेखीय रंग पाइपलाइन कैसे बनाए रखें।

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

इम्पोस्टर्स ने एक समस्या का प्रतिनिधित्व किया जो जीएस वास्तव में हल करने के लिए उपयोगी थे। इसके अलावा, इसने मुझे अन्य कम उपयोग की जाने वाली चीजों के बारे में बात करने की अनुमति दी जैसे कि discardऔर एक टुकड़े की गहराई को बदलना। और यह वास्तव में शेड्स की शक्ति को दर्शाता है: आप एक सपाट वर्ग को गोलाकार बना सकते हैं।

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

यह मेरे पालतू जानवरों में से एक है।


1
मैंने अभी आपकी पुस्तक / स्रोत कोड पढ़ना शुरू किया है, और यह अविश्वसनीय है .. मुफ्त में इसे जारी करने के लिए बहुत बहुत धन्यवाद!
एलेक्स कोपलान

हालाँकि मैं एक टेलीकॉम आदमी हूँ, बस अपने ट्यूटोरियल को आज़मा रहा था। और वे वास्तव में एक नौसिखिया के लिए अच्छे हैं। केवल एक चीज यह है कि, अनधिकृत opengl sdk Ubuntu12.04 + ग्रहण के साथ ठीक से निर्मित नहीं है। क्या कोई रास्ता है, जिसके द्वारा हम सीधे इसे स्थापित कर सकते हैं? (जैसे हम GL, GLEW, GLU,
ग्लूट

@iammilind: " ठीक से बिल्ड करने योग्य नहीं है " बिल्ड विफल कैसे होता है? इसके अलावा, कोई "इंस्टॉल" नहीं है; वह आधी बात है। यह बिना किसी सिस्टम इंस्टालेशन, निर्भरता, पीपीएम, या किसी भी अन्य चीजों की एक कॉपी / प्रीमियर / रन मैकेनिज्म है जो मुझे समझ में नहीं आता है या लिनक्स में उपयोग करने का कोई विचार है। आप इसे वहां रखें जहां आप चाहते हैं, न कि जहां आपके सिस्टम को लगता है कि इसे जाना चाहिए।
निकोल बोल

1
उबंटू में, दुर्भाग्यवश निर्माण प्रक्रिया preamakeमंच पर ही विफल हो जाती है :( ... यह बहुत मदद करेगा, अगर आपके खाली समय में आप उबंटू + ग्रहण के साथ अपने कोड ट्यूटोरियल को निष्पादित करने का प्रयास कर सकते हैं। अभी के लिए, मैं दूसरे तरीके से अनुसरण कर रहा हूं। ।। पठन सामग्री का उपयोग करने के आपके द्वारा दी गई और संबंधित कुछ अन्य कोड ट्यूटोरियल करने के लिए कारण यह है कि मैं नौसिखिया ओपन सीखने के लिए अब तक "arcsynthesis" सबसे अच्छा करने के लिए वेब पर जगह देखा है है
iammilind

@iammilind: मैंने देखा कि आपने बग रिपोर्ट दर्ज नहीं की थी आप इन चीजों को बिना किसी के तय किए कैसे उम्मीद करते हैं?
निकोल बोलस


8

OpenGL पर मेरी एकमात्र पुस्तक "OpenGL SuperBible, 4th संस्करण" है और 5 वीं कुछ ही हफ्तों में रिलीज़ होने वाली है। मुझे लगता है कि यह शुरुआती और उन्नत प्रोग्रामर दोनों के लिए अच्छा है।

संपादित करें: यदि आप सिर्फ कार्यक्रम सीख रहे हैं तो मैं नवीनतम प्रौद्योगिकी रुझानों के लिए नहीं जा सकता। एक बार जब आप एक मेथोलॉजी का उपयोग करके विशेषज्ञ बन जाते हैं, तो 5 नए इंटरफेस / संस्करण अभी जारी किए जाते हैं। हमने हर 3 महीने में शेड्स एडवांस देखे हैं, ऐसा लगता है। इसलिए जो सबसे अच्छा प्रलेखन (आमतौर पर आदिम) है, उसे चुनें, कुछ कार्यक्रम बनाएं और धीरे-धीरे आगे बढ़ें क्योंकि संभावना से अधिक आप भविष्य में पुराने कोड से टकराएंगे। आशा है ये मदद करेगा!


मैं अब शानदार के माध्यम से जा रहा हूँ और यह वास्तव में उन लोगों के लिए अच्छा है जिनके पास ग्राफिक्स पृष्ठभूमि नहीं है क्योंकि यह सभी अवधारणाओं को समझाता है जैसे आप साथ चलते हैं।
स्पाइडी

5

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

मुझे जो बड़ा मुद्दा मिला, वह बहुत सारा सामान है जो ओपनग्ल के हाल के संस्करण में समाप्त हो गया है।

मुझे जो सबसे अच्छा संसाधन मिल रहा है, वह जोए के ब्लॉग पर है । आधुनिक पाइपलाइन को शुरू करना और कुछ उदाहरणों के माध्यम से अधिक पठनीय अंदाज में आपको प्राप्त करना सबसे अच्छा है। ऐसा लगता है कि नेह हाल ही में एक जोड़े को अद्यतन कर रहा है और जबकि उनके सबक अभी भी पुराने हैं, कुछ समाचार रुचि के हो सकते हैं। Lazy Foo ' भी एक बेहतरीन संसाधन था, लेकिन Nehe की तरह यह ट्यूटोरियल डीपर्ड मटीरियल का उपयोग करता है।

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


4

यहाँ एक और है। यह बहुत अच्छा है। हालांकि इसमें केवल 4 अध्याय हैं।

http://openglbook.com/

एक और है, http://www.arcsynthesis.org/gltut/ । यह एक विशाल, धीमी और उच्च प्रोफ़ाइल है।

Http://www.opengl.org/wiki/Getting_started को ट्रैक करना न भूलें


3

ओपनजीएल सीखने का सबसे अच्छा तरीका इसका उपयोग करना है। मैं आपको अपना खुद का इंजन लिखने की सलाह दूंगा। यह एक कठिन काम की तरह लग सकता है, और यह है। आपका पहला इंजन बहुत अच्छा नहीं होगा, लेकिन आपने बहुत कुछ सीखा होगा।

मूल रूप से: एक इंजन लिखें, इसे एक गेम के लिए उपयोग करें, यह पता लगाएं कि आपको इसके बारे में क्या पसंद नहीं है और इसे फिर से लिखना है। ऐसा करते रहो और तुम OpenGL में बेहतर हो जाओगे। :)

तुम क्या आवश्यकता होगी:

  • मॉडल लोड करने का कुछ तरीका (.obj)
  • बनावट को लोड करने का कोई तरीका
  • लाइटिंग, या तो फिक्स्ड फंक्शन पाइप लाइन में या फिर शैडर में
  • स्क्रीन पर एक चायदानी की तुलना में किसी भी अधिक जटिल दृश्यों के लिए, एक दृश्य ग्राफ
  • बहुत सारे छोटे उपकरण (3D वेक्टर क्लास, quaternion क्लास, कैमरा क्लास, सीन मैनेजर, आदि)

यह पहले से ही बहुत काम है।


क्या आप मुझे बुनियादी ढांचे या घटकों पर किसी भी दस्तावेज की ओर इशारा कर सकते हैं जो एक "पहला इंजन" होना चाहिए? यह वास्तव में खुले हाथों से मेरे हाथों को गंदा करने के लिए एक अच्छा तरीका हो सकता है ...
DFectuoso


4
-1 gamedev में आने के रास्ते के रूप में लेखन इंजन बहुत अच्छा नहीं है। उदाहरण के लिए, आप नहीं जानते कि इंजन में क्या रखा जाए। scientificninja.com/blog/write-games-not-engines
कम्युनिस्ट बतख

@ TheCommunistDuck सुरक्षित रूप से, वैज्ञानिक नूजा अधिक नहीं है। web.archive लिंक
bobobobo

2

मैंने एक "सरल" गेम लिखकर ओपेंग्ल सीखा: 3 डी टेट्रिस !

अपना खुद का सरल गेम / ऐप बनाने की कोशिश करें:

  • क्षुद्र ग्रह
  • पोंग
  • साधारण साइड स्क्रोलर (आप खिलाड़ी / शत्रुओं के लिए मॉडल में लोड करना सीख सकते हैं। किसी के पास नहीं है? क्वेक मॉडल का उपयोग करें)
  • 3 डी इलाके जनरेटर

कुछ सरल करें जो आपको रुचिकर लगे!


2

हम iPhone के लिए अपने ऑर्चर्ड क्रेप्स गेम में कुछ ओपनजीएल (ES) करते हैं लेकिन इसे एक प्रोग्रामर ने पागल 3 डी स्किल्ज़ के साथ संभाला। इसलिए, इस वजह से मैं ओपनजीएल (ईएस) सीख रहा हूं ताकि मुझे पता चले कि मैं किस बारे में बात कर रहा हूं और ताकि मैं टीम के साथ कोड कर सकूं।

एक साइट जो मुझे मददगार लगी, वह है ट्यूटोरियल की एक श्रृंखला, जेफ लारचे का ब्लॉग: http://iphonedevelopment.blogspot.com और यहां उनके ओपनजीएल पोस्ट्स के लिए एक लिंक है: http://iphonedevelopment.blogspot.com/2009/05/ ओपन-एस-से-जमीन-अप-टेबल of.html

और OpenGL.org से ये दो लिंक हैं जो उपयोगी हैं: http://www.opengl.org/code/ और http://www.opengl.org/resources/features/

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

आपके सभी प्रयासों के लिए शुभकामनाएँ, केविन


2

वैसे किसी ने OpenGL प्रोग्रामिंग गाइड के बारे में बात नहीं की , मेरे पास यह विशेष संस्करण नहीं है, लेकिन पुराने बहुत अच्छे थे।


1
कृपया मुझे इसके बारे में और बताएं। मुझे आश्चर्य है कि यह सुपर बाइबिल से बेहतर / अलग कैसे है और अगर यह इतनी बड़ी पुस्तकों को पढ़ने के लायक है (कोई अपराध नहीं है लेकिन अगर किताब पढ़ने के लिए 20+ घंटे लगते हैं तो मुझे यकीन है कि यह इसके लायक है =)
DFectuoso


2

http://www.opengl-tutorial.org/

'आधुनिक' OpenGL (3.0 / 4.0 कोर) के लिए ट्यूटोरियल है, जैसे कोई अप्रचलित सामान (जैसे glBegin / glEnd) सिखाया नहीं जाता है)। हालांकि ट्यूटोरियल शेड का उपयोग करते हैं, मूल बातें बहुत विस्तार से बताई जाती हैं, रास्ते में एक ठोस गणितीय नींव का निर्माण करते हैं। पाठ को कोड * नमूने और सहायक दृश्य के साथ अच्छी तरह से गोल किया गया है।

मध्यवर्ती ट्यूटोरियल का उदाहरण के उपयोग की तरह सामान को कवर Quaternions या lightmaps

। * glm का उपयोग गणित पुस्तकालय के रूप में किया जाता है


1

OpenGL सीखने का सबसे अच्छा तरीका है, कार्य उन्मुख होनाकुछ करने की कोशिश करें (जैसे अपने खेल में एक विशेषता जोड़ें) फिर देखें कि ऐसा करने के लिए क्या आवश्यक है

मैनुअल और ट्यूटोरियल वास्तव में एक बड़े संदर्भ के बिना उबाऊ हैं - अर्थात उस ट्यूटोरियल से परे जो आप अपने दम पर हासिल करना चाहते हैं।


-1

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

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


नेह पुराना है। इसके अलावा, हालांकि कला निर्माण आसान है और आप ज्यादातर बनावट वाले क्वैड्स के साथ काम कर रहे हैं, बहुत सारे कोने के मामले (जैसे वेक्टर क्रॉस उत्पाद) हैं जो 3 डी गेम लिखने से पहले 2 डी गेम लिखना अधिक कठिन बनाते हैं। 3 डी ग्राफिक्स लेकिन 2 डी गेमप्ले (जैसे पोंग, ब्रेकआउट, ...) वाले गेम हालांकि शुद्ध 2 डी / 3 डी गेम की तुलना में आसान हो सकते हैं।
Exilyth

-4

वैसे मुझे कहा गया है कि नेह के ट्यूटोरियल सबसे अच्छे हैं, मुझे लगता है कि वे आपके लिए भी फिट होंगे! http://nehe.gamedev.net/ मैंने लाल किताब खरीदी ...


यह शून्य से एक महान जगह पर छोटे विखंडू के एक मजेदार सेट की तरह लगता है, धन्यवाद!
DFectuoso

2
मुझे बहुत असहमत होना पड़ेगा। हां, नेह ट्यूटोरियल लंबे समय से हैं, लेकिन उनकी शैली कभी अच्छी नहीं रही और वे अब तक काफी पुराने हो चुके हैं।
एंड्रियास

8
-1 नेह बहुत ज्यादा आउट-ऑफ-डेट हैं।
एक्सल गेनिटिंग

7
-1। नेह से हर तरह की बुरी चीज सीखी!
गेब्रियल इसेनबर्ग

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