OpenGL बाइंडिंग और संस्थाओं के बीच संबंध


12

यह ज्यादातर एक प्रलेखन प्रश्न है। मुझे उम्मीद है कि यह उचित जगह है, पूछने के लिए और उदाहरण के लिए, प्रोग्रामर या स्टैकओवरफ़्लो।

मैंने ओपनजीएल विनिर्देश नहीं पढ़ा, लेकिन पुस्तकों (रेड बुक) और विभिन्न ट्यूटोरियल से, मैं ठीक से समझ नहीं पा रहा हूं कि विभिन्न ऑब्जेक्ट्स और एपीआई के हिस्से कैसे परस्पर संवाद करते हैं और संबंधित हैं।

उदाहरण के लिए, मुझे पता है कि अगर कोई वीएओ बाध्य है, तो एक वीबीओ को बांधने और एक विशेषता स्थापित करने के परिणामस्वरूप वीबीओ वीएओ के लिए बाध्य हो जाएगा।

लेकिन कई वस्तुएं हैं, उनके संबंध अलग-अलग हो सकते हैं। उदाहरण के लिए, VAO वर्तमान छायांकन कार्यक्रम के लिए पूरी तरह से असंबंधित है, लेकिन ड्राइंग ऑपरेशन का परिणाम उन दोनों पर निर्भर हो सकता है।

सभी विभिन्न ओएनजीएल घटकों में, मैं ए-बाइंड्स-टू-बी या ए-एंड-बी-ए-यूज-बाय-सी जैसे कुछ संबंध देख सकता हूं। ये सभी संबंध यह निर्धारित करने में सहमत हैं कि कोई संदर्भ की स्थिति को कैसे बदल सकता है, चीजों को कैसे बदल सकता है, कैसे चीजों को एक साथ सहेज सकता है और अनुकूलित कर सकता है।

मैं समझा संसाधनों रहा हूँ बस इन संबंधों। एक यूएमएल आरेख की तरह, एक ग्राफ, या यहां तक ​​कि एक पाठ दस्तावेज़, जो कॉल के बारे में ध्यान केंद्रित नहीं करता है, लेकिन एक कॉम्पैक्ट तरीके से वर्णन करता है कि कैसे विभिन्न ओपनगेल घटक एक दूसरे से बातचीत करते हैं और संबंधित होते हैं।

क्या आप जानते हैं कि ऐसा संसाधन कहां मिलेगा?


3
बड़ा सवाल है। मुझे अपनी पूरी ओपनगैलिट लाइब्रेरी / इंजन मिल गया है और उस प्रमुख प्रश्न के सुपर स्पष्ट उत्तर के बिना चल रहा है।
david van

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

1
क्षमा करें, मैं आपके लिए एक चित्र नहीं बनाने जा रहा हूं।
डिट्रीच एप्प

2
अच्छा सवाल है, और जहाँ से मैं खड़ा हूँ, वहाँ पर एक भरपूर इनाम रखे बिना सौभाग्य को एक व्यापक उत्तर मिल रहा है।
इंजीनियर

2
OpenGL का डिज़ाइन इस बात पर एक बड़ा तर्क है कि आपको वैश्विक चर का उपयोग क्यों नहीं करना चाहिए ;)(संपूर्ण API वैश्विक डेटा की एक बड़ी गड़बड़ी है)
glampert

जवाबों:


7

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

इसके अलावा, चूँकि कुछ लोगों की दिलचस्पी है, इसलिए मैं इसे प्रतिक्रिया प्राप्त करने के लिए यहाँ साझा करना चाहता हूँ और इसकी जाँच की है। मैंने ओपनजीएल विकी का उपयोग शुद्धता की जांच के लिए एक संदर्भ के रूप में किया था, लेकिन मैंने गलतियाँ पेश की होंगी।

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

ओपनजीएल बंधन-संबंध आरेख

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

संपादित करें

  1. ड्राइंग और विशेषताओं के बीच संबंध गायब था: प्रतिपादन करते समय विशेषताओं को प्रभावी होना चाहिए
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.