std140 सबसे उपयोगी है जब आपके पास एक समान ब्लॉक है जिसे आप एक बार में अपडेट करते हैं, उदाहरण के लिए एक दृश्य प्रस्तुत करने के लिए मैट्रिक्स और प्रकाश मूल्यों का संग्रह। ब्लॉक को अपने शेडर में std140 के साथ घोषित करें, और आप स्ट्रक्चर के साथ सी में मेमोरी लेआउट को दोहरा सकते हैं। इसके बजाय क्वेरी और सी से ब्लॉक के भीतर हर व्यक्ति मूल्य के लिए ऑफसेट को बचाने के लिए होने का, आप कर सकते हैं बस glBufferData (GL_UNIFORM_BUFFER, sizeof (my_struct), & my_struct, एक कॉल के साथ।
आप एक छोटे से सावधान रहने की आवश्यकता क्यों है उदाहरण के लिए, सी में संरेखण के साथ, एक वीसी 3 4 फ्लोट लेगा, न कि 3, लेकिन यह अभी भी बहुत आसान है IMHO।
स्रोत
2013-07-23 03:04:55
यदि आपको पता है [std140' लेआउट क्या है] (http: //www.opengl। संगठन/विकी/इंटरफ़ेस_लॉक_% 28 जीएलएसएल% 2 9 # मेमोरी_लेआउट), तो आपको पहले से ही पता होना चाहिए कि आप इसका उपयोग क्यों करना चाहते हैं या नहीं। तो, क्या आप पूछ रहे हैं कि 'std140' लेआउट क्या है? –
@ निकोलबोलस नोप, मुझे अंतर पता है एक है जिसे आपको क्वेरी का उपयोग करना है और आपको पैड करना है। मेरा प्रश्न अभी भी खड़ा है। –
@ निकोलबोलस: मैं से ई कोड में मैं पढ़ रहा हूं, और इसे समझने में सहायता के लिए इस संसाधन को ढूंढकर मुझे खुशी है। – Jackalope