मैं कुछ वेबजीएल सीखने की कोशिश कर रहा हूं (इस ट्यूटोरियल से http://learningwebgl.com/blog/?page_id=1217)। मैंने गाइड का पालन किया, और अब मैं अपना खुद का डेमो लागू करने की कोशिश कर रहा हूं। मैं एक ग्राफिक्स ऑब्जेक्ट बनाना चाहता हूं जिसमें प्रत्येक व्यक्तिगत ऑब्जेक्ट के दृश्य में दिखाई देने के लिए बफर और डेटा शामिल है। वर्तमान में, मेरे पास एक स्थिति वर्टेक्स बफर है, एक बनावट समन्वय बफर, और एक मानक बफर है। ट्यूटोरियल में, वह एक और बफर, एक सूचकांक बफर का उपयोग करता है, लेकिन केवल क्यूब्स के लिए। वास्तव में सूचकांक बफर क्या है? क्या मुझे इसे लागू करना चाहिए, और क्या यह क्यूब्स के अलावा किसी भी चीज़ के लिए उपयोगी है?वेबजीएल में इंडेक्स बफर?
उत्तर
आपकी ऑब्जेक्ट्स के वर्टिसेस को 3 डी समन्वय प्रणाली (euclidian coordinate system) में स्थितियों द्वारा परिभाषित किया गया है। इसलिए आप प्रत्येक दो निम्नलिखित शीर्षकों को ले सकते हैं और 0 डीद्वारा 2 डी रास्टर (स्क्रीन या कुछ लक्ष्य छवि) के लिए अनुमानित होने के बाद उन्हें सही लाइन से कनेक्ट कर सकते हैं। आपको wireframe कहा जाएगा।
wireframe के समस्या यह है कि यह निश्चित नहीं है। यदि आप विशेष कोणों पर वायरफ्रेम घन को देखते हैं, तो आप यह नहीं कह सकते हैं कि घन वास्तव में कैसे घुमाया जाता है। ऐसा इसलिए है क्योंकि आपको निर्धारित करने के लिए visibility algorithms का उपयोग करने की आवश्यकता है, घन का कौन सा हिस्सा पर्यवेक्षकों की स्थिति (कैमरा की स्थिति) के करीब है।
लेकिन रेखाएं स्वयं सतह को परिभाषित नहीं कर सकती हैं, यह निर्धारित करने के लिए आवश्यक है कि घन के किनारे पर्यवेक्षक के करीब हैं। कंप्यूटर ग्राफिक्स में सतहों को परिभाषित करने का सबसे अच्छा तरीका बहुभुज है, बिल्कुल त्रिकोण (इसमें कंप्यूटर ग्राफिक्स के लिए बहुत सारे विपक्ष हैं)।
तो आपके पास अब त्रिभुजों द्वारा परिभाषित घन है (इसलिए त्रिभुज जाल को कॉल करें)।
लेकिन यह कैसे जो कोने रूपों त्रिकोण परिभाषित करने के लिए? इंडेक्स बफर द्वारा। इसमें वर्टेक्स बफर (आपके शिखर के साथ सूची) में इंडेक्स होता है और रास्टरराइजिंग एल्गोरिदम को बताता है जो तीन शिखर त्रिकोण बनाते हैं। बहुत सारे तरीके हैं, इंडेक्स बफर में इंडेक्स को समान वर्टिसेस की पुनरावृत्ति को कम करने के लिए कैसे करें (एक कशेरुका त्रिकोणों का हिस्सा हो सकता है), आप article about graphics primitives पर कुछ पा सकते हैं।
तकनीकी रूप से आपको इंडेक्स बफर की आवश्यकता नहीं है। glDrawArrays
और glDrawElements
के साथ ज्यामिति प्रस्तुत करने के दो तरीके हैं। glDrawArrays
इंडेक्स बफर का उपयोग नहीं करता है। आप बस बफर में दूसरे के बाद एक कोष्ठक लिखते हैं और फिर जीएल को बताते हैं कि तत्वों के साथ क्या करना है। यदि आप कॉल में मोड के रूप में GL_TRIANGLES
का उपयोग करते हैं, तो आपको बफर में डेटा (चर, मानदंड, ...) के ट्रिपल रखना होगा, इसलिए जब एक कशेरुक का उपयोग कई बार किया जाता है तो आपको इसे बफर में कई बार जोड़ना होगा।
glDrawElements
इसके विपरीत एक बार एक कशेरुक को स्टोर करने के लिए उपयोग किया जा सकता है और फिर इसे कई बार उपयोग किया जा सकता है। हालांकि एक पकड़ है, एक इंडेक्स के लिए पैरामीटर का सेट तय किया गया है, इसलिए जब आपके पास वर्टेक्स होता है, जहां आपको दो अलग-अलग मानक (या बनावट निर्देशांक या रंग जैसी अन्य विशेषता) की आवश्यकता होती है तो आपको इसे प्रत्येक गुण के सेट के लिए स्टोर करना होगा ।
गोलाकारों के लिए glDrawElements
पैरामीटर मिलान के रूप में बहुत समझ में आता है, लेकिन एक घन के लिए मानक अलग हैं, सामने के चेहरे को शीर्ष चेहरे की तुलना में एक अलग सामान्य की आवश्यकता होती है, लेकिन दो शीर्षकों की स्थिति समान होती है । आपको अभी भी स्थिति को दो बार बफर में रखना होगा। उस मामले के लिए glDrawArrays
समझ में आ सकता है।
यह डेटा पर निर्भर करता है, जिसमें कॉल के लिए कम डेटा की आवश्यकता होती है, लेकिन glDrawElements
अधिक लचीला है (क्योंकि आप हमेशा इंडेक्स बफर के साथ glDrawArrays
अनुकरण कर सकते हैं जिसमें संख्या 0, 1,2, 3, 4, ...)।
- 1. वेबजीएल - रेंडर बफर से पिक्सेल डेटा पढ़ने
- 2. 3 इंडेक्स बफर
- 3. वेबजीएल
- 4. वेबजीएल
- 5. वेबजीएल
- 6. वेबजीएल
- 7. वेबजीएल
- 8. वेबजीएल
- 9. मैं वेबजीएल
- 10. वेबजीएल बनावट
- 11. वेबजीएल फ्रेमवर्क
- 12. वेबजीएल और टेस्सेलेशन लाइब्रेरी?
- 13. ओपनजीएल कोड को वेबजीएल
- 14. वेबजीएल ज्यामिति शेडर समतुल्य?
- 15. वेबजीएल बनावट बनाते हैं
- 16. वेबजीएल बनाम जॉग एप्लेट्स
- 17. स्टैंडअलोन वेबजीएल/जावास्क्रिप्ट क्लाइंट?
- 18. वेबजीएल संदर्भों को हटाने
- 19. क्या वेबजीएल में पुश/पॉपमैट्रिक्स शामिल है?
- 20. वेबजीएल और आयताकार (दो की शक्ति) बनावट
- 21. इंडेक्स में कई लाइनें इंडेक्स
- 22. जब वेबजीएल डिस्प्ले अपडेट करने का फैसला करता है?
- 23. बफर
- 24. avcodec_decode_audio4 में बफर त्रुटि()
- 25. पायथन में बाइनरी बफर
- 26. विम बफर में पायथन?
- 27. प्रोटोकॉल बफर में शब्दकोश
- 28. पोस्टग्रेज़ में साझा बफर
- 29. वेबजीएल - एफबीओ बनावट के लिए गहराई प्रदान करना
- 30. सीओआरएस/क्रॉस डोमेन सुरक्षा अपवाद वेबजीएल बनावट
स्पष्ट और विस्तृत स्पष्टीकरण के लिए धन्यवाद! मुझे इसकी ही खोज थी। – Sefu