ओपनजीएल चश्मे पढ़ने में, मैंने देखा है कि इसमें एक उल्लेख है कि आप एक ही प्रोग्राम में एक ही तरह के कई शेडर्स शामिल कर सकते हैं (यानी GlAttachShader से जुड़े एक से अधिक GL_VERTEX_SHADER)। विशेष रूप से ओपनजीएल 4.2, §2.11.3, प्रोग्राम ऑब्जेक्ट्स में: "एक ही प्रकार की एकाधिक शेडर ऑब्जेक्ट्स को एक प्रोग्राम ऑब्जेक्ट से जोड़ा जा सकता है ..."।एक ही ओपनजीएल प्रोग्राम में एक ही प्रकार के एकाधिक शेडर्स संलग्न करना?
ओपनजीएल पाइपलाइन प्रोग्राम और सबराउटिन यहां लागू हो सकते हैं, लेकिन यह अस्तित्व से पहले परिभाषित किया गया था (वास्तव में यह 2.1 spec, §2.15.2 पर वापस चला जाता है) इसलिए मैं इस विचार के पूर्व-जीएल 4 उदाहरण की तलाश में हूं। जब मैंने कुछ सरल परीक्षण किया, तो मैंने पाया कि एक से अधिक void main()
लिंकिंग त्रुटियों का कारण बनता है। क्या किसी को व्यावहारिक उदाहरण के बारे में पता है जहां इसका उपयोग किया जाता है?
मुझे यकीन नहीं है कि यह काम करता है, लेकिन मुझे लगता है कि आप सामान्य कार्यों (लेकिन कोई मुख्य कार्य नहीं) के साथ शेडर्स प्राप्त कर सकते हैं ताकि आप इन्हें पोर्ग्राम में संलग्न कर सकें और इन कार्यों को मुख्य-शेडर से एक्सेस कर सकें। इस तरह आपको केवल एक बार उन कार्यों को संकलित करने की आवश्यकता है। –