मैं पाइथन में एक मॉड्यूल लिखने की कोशिश कर रहा हूं जो स्क्रीन पर रंग डेटा (आरजीबी) की एक संख्यात्मक सरणी खींचेगा। फिलहाल मैं इस समय इस तरह एक 3 आयामी रंग सरणी का उपयोग कर रहा:पायपीनग्ल बफर गतिशील पढ़ने से numpy array
numpy.ones((10,10,3),dtype=np.float32,order='F') # (for 10x10 pure white tiles)
एक बफर करने के लिए यह बाध्यकारी है और एक 10x10 टाइल्स (बिंदु स्प्राइट) की एक सरणी के लिए डेटा प्रसारण करने के लिए एक glVertexAttribArray
का उपयोग कर (इस मामले में सरणी) और यह एक स्थिर छवि के लिए ठीक काम करता है।
लेकिन मैं सरणी में डेटा को बदलने में सक्षम होना चाहता हूं और बफर इसे स्क्रैच से पुनर्निर्माण किए बिना इस परिवर्तन को प्रतिबिंबित करना चाहता हूं।
glBufferData(GL_ARRAY_BUFFER, buffer_data.nbytes, buffer_data, GL_DYNAMIC_DRAW)
जहां buffer_data numpy सरणी है:
वर्तमान में मैं के साथ बफर का निर्माण किया है। क्या (अगर कुछ भी) मैं इसके बजाय पास कर सकता हूं (शायद कुछ स्मृति में स्मृति?)
शायद buffer_data.ctypes.data? मैं भी उत्सुक हूँ; अगर आप इसे समझते हैं तो हमें बताएं। – Luke
मैंने ग्लैप/अनमैपबफर का उपयोग करने के लिए अभी कोशिश कर थोड़ा सा प्रगति की है। मैं ctypes और numpy.frombuffer का उपयोग करके एक सरणी में बफर सामग्री को सफलतापूर्वक पढ़ सकता हूं, लेकिन GlMapBuffer में GL_READ_WRITE ध्वज के साथ भी मैं इस सरणी को नहीं लिख सकता (लिखने योग्य ध्वज को सही पर भी सेट नहीं कर सकता!)। तो सुनिश्चित नहीं है कि वहां क्या हो रहा है ... (मैं vbo मॉड्यूल से मैपिंग कोड का उपयोग कर रहा हूं) – user1483596