2011-09-22 13 views
5

क्या इनपुट के अलावा ज्यामिति शेडर से नए आदिम प्रकार को आउटपुट करना संभव है? मैं एक बिंदु इनपुट करना और त्रिकोण प्रस्तुत करना चाहता हूं। बिंदु इस त्रिकोण के लिए केंद्र के रूप में इस्तेमाल किया जाएगा। यदि नहीं, तो क्या उस बिंदु से परिभाषित ज्यामिति के कुछ अन्य टुकड़े को इंगित करने और इनपुट करने के लिए कोई अन्य विकल्प है?नए प्राइमेटिव प्रकार बनाने के लिए ज्यामिति शेडर का उपयोग

#version 120 
#extension GL_EXT_geometry_shader4 : enable 

layout(points) in; 
layout(triangle_strip) out; 

void main() 
{ 
    gl_Position = gl_in[0].gl_Position; 
    EmitVertex(); 
    gl_Position = gl_in[0].gl_Position+vec4(1,0,0,0); 
    EmitVertex(); 
    gl_Position = gl_in[0].gl_Position+vec4(0, 1, 0, 0); 
    EmitVertex(); 
    EndPrimitive(); 
} 

उत्तर

4

हाँ, यह पूरी तरह से संभव है, कि क्या ज्यामिति शेडर के लिए वहाँ है:

जवाब की मदद से यहां क्या कर बस क्या मैं के लिए कहा (अगर कभी जरूरत किसी को भी) ज्यामिति शेडर है। बस इनपुट में आदिम प्रकार को इंगित करें और आउटपुट आदिम प्रकार को त्रिभुज (या बल्कि त्रिभुज स्ट्रिप, कोई फर्क नहीं पड़ता कि यह केवल एक त्रिकोण है) या तो glProgramParameteri का उपयोग करके या शेडर में अधिक आधुनिक layout सिंटैक्स का उपयोग करके निर्दिष्ट करें।

+0

ध्यान दें कि आपको वास्तव में वाक्यविन्यास का विकल्प नहीं मिलता है। या इसके बजाय, सिंटैक्स की आपकी पसंद इस बात पर आधारित है कि आप ज्यामिति शेडर्स या कोर कार्यक्षमता के एक्सटेंशन संस्करण का उपयोग कर रहे हैं या नहीं। दो मिश्रण करने की कोशिश मत करो। –

+0

@ निकोल मैं वास्तव में ज्यामिति शेडर्स के साथ काम नहीं किया है, अभी तक। स्पष्टीकरण के लिए धन्यवाद। –

संबंधित मुद्दे