Preconcepts
ठीक है, तो जो मैंने अभी तक इकट्ठा किया है वह यह है:
- तय पाइपलाइन का उपयोग न करें (पदावनत या पदावनत होने वाला)
- vbos स्टोर "ऑब्जेक्ट मॉडल" (एन वर्टेक्स डेटा, ज्यादातर)
- vaos वर्णन करता है कि डेटा कैसे निर्धारित किया जाता है ताकि कॉल कॉल पता चले कि प्रत्येक vbo का कौन सा भाग किस तरह की शीर्ष जानकारी के लिए है (एक वाओ कई vbos को संदर्भित कर सकता है, विपरीत थोड़े मुश्किल है)
- प्रत्येक ड्रॉ कॉल भी शाफ़्ट डेटा को shaders को भेजता है
मैं 3D (वैकल्पिक) कैसे देखूं
इन सूचनाओं को देखते हुए, मैं देख सकता हूं कि आधुनिक ओपनजीएल के साथ 3 डी जटिल वस्तुओं को कैसे चित्रित किया जाता है। आप मूल रूप से स्थानीय निर्देशांक के साथ VBO में ऑब्जेक्ट मॉडल (शायद ब्लेंडर या अन्य समान सॉफ़्टवेयर से) का एक गुच्छा लोड करते हैं, और फिर आप किसी ऑब्जेक्ट के प्रत्येक उदाहरण के लिए एक अलग shader पैरामीटर (ऑफ़सेट) प्रदान करते हैं जो विश्व अंतरिक्ष में आकर्षित होता है।
समस्या / प्रश्न
2 डी समस्याओं और प्राथमिकताओं में पूरी तरह से अलग हैं, हालांकि। आप बहुत जटिल वस्तुओं को आकर्षित नहीं करते हैं, आपको जटिल प्रोजेक्शन मैट्रिक्स की आवश्यकता नहीं है और व्हाट्सएप और शेड्स बहुत सरल हैं।
आधुनिक ओपनजीएल के साथ ज्यामिति को बार-बार (वास्तव में अक्सर, मूल रूप से हर फ्रेम) खींचने का सबसे अच्छा तरीका क्या होगा?
निम्नलिखित पैराग्राफ में आप समस्याओं (सर्कल और आयत समस्या) के कुछ विचारों को देख सकते हैं, यह बेहतर है कि मैं किस तरह के बदलावों में दिलचस्पी रखता हूं।
मेरे प्रयास (वैकल्पिक)
इसलिए, मैंने यह सोचना शुरू किया कि मैं स्क्रीन पर बुनियादी 2D ज्यामिति खींचने से कैसे निपटूंगा:
- एक वर्ग:
[(1, 0), (1, 1), (0, 1), (0, 0)]
स्थानीय स्थान में एक वर्ग की ज्यामिति के लिए एक VBO लोड करें , फिर वर्ग की वास्तविक चौड़ाई और विश्व निर्देशांक और रंग सूचना के साथ शेड प्रदान करें
शांत, आसान लग रहा है। चलो एक सर्कल में चलते हैं:
- एक वृत्त: त्रिकोण पंखा के साथ ... एह। कितना सटीक (वर्टेक्स की संख्या)? छोटे हलकों के लिए सटीक छोटा होना चाहिए और बग सर्कल के लिए सटीक उच्च होना चाहिए। स्पष्ट रूप से लोड हो रहा है 1 VBO संभवतः सभी मामलों में फिट नहीं हो सकता है। क्या होगा अगर मुझे सटीक जोड़ने की आवश्यकता है क्योंकि एक सर्कल का आकार बड़ा होने के लिए है?
कम ठंडा। चलो थोड़ा आसान करने के लिए कदम, एक आयत:
- एक आयत: एह। कोई "सामान्य आयत ज्यामिति" नहीं है। आपके पास बस एक चौड़ाई / ऊँचाई का अनुपात है और यही है, लेकिन आकार में परिवर्तन होने पर प्रत्येक आयत शायद अलग होती है।
जैसा कि आप देख सकते हैं, चीजें वहां से ढलान पर जाती हैं। विशेष रूप से जटिल बहुभुज और whatnot के साथ।
कोई कोड नीति: P
मुझे सिर्फ विचार का अवलोकन चाहिए, कोई कोड आवश्यक नहीं है, विशेष रूप से C या C ++ कोड। जैसे सामान कहें: "इस शीर्ष डेटा के साथ एक वीबीओ बनाएं, और फिर इसे बांधें, ..."।