opengl - Generate one texture makes shader not work -


शदर कोड:

  # एक्सटेंशन GL_ARB_texture_rectangle: वर्दी सक्षम करें नमूना 2 डी टेक्क्स; वर्दी सैंपलर 2डीटेक्ट टेक 1; वर्दी यूनिट नमूना_प्रकार; शून्य मुख्य (शून्य) {vec4 col; अगर (sampler_type == 0) {// इस लाइन की टिप्पणी - काम करता है col = texture2D (tex0, gl_TexCoord [0] .st); // col = texture2D (tex0, gl_TexCoord [0] .st / vec2 (400, 300)); } अन्य {col = texture2DRect (tex1, gl_TexCoord [0] .st); } Gl_FragColor = col; }   

मुख्य कोड:

  शून्य ड्यूक्वाड (int x, int y, int w, int h, float s, फ्लोट टी) {glBegin (GL_QUADS); GlTexCoord2f (0, 0); GlVertex2f (x, y); GlTexCoord2f (एस, 0); GlVertex2f (x + w, y); GlTexCoord2f (एस, टी); GlVertex2f (x + w, y + h); GlTexCoord2f (0, टी); GlVertex2f (x, y + h); glEnd (); } // ----------------------------------------------- --------------- शून्य सेटअप () {shader.setupShaderFromFile (GL_FRAGMENT_SHADER, "test.frag"); shader.linkProgram (); img.loadImage ( "1.jpg"); // डीफ़ॉल्ट GL_TEXTURE_RECTANGLE GLuint में लोड किया गया; ग्लेंडेक्टेक्चर (1, & amp; tid); glEnable (GL_TEXTURE_2D); ग्लबिंडएक्टेक्शंस (जीएल_विशेषता डीडी, टीआईडी); GlTexImage2D (GL_TEXTURE_2D, 0, GL_LUMINANCE_ALPHA, 16 * 16, 16 * 16, 0, जीएल_एलएमआईआईएनआईएजीएएलएएचएचएएच, जीएल_एनएसएनजीईडीईजीईटीई, 0); // init to black ... // अगर मैं यह 2 लाइन सब कुछ काम करता है glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); GlTexParameterf (GL_TEXTURE_2D, जीएल_TEXTURE_MIN_FILTER, GL_LINEAR); glDisable (GL_TEXTURE_2D); } // ----------------------------------------------- --------------- शून्य आकर्षित () {shader.begin (); Shader.setUniform1i ("sampler_type", 1); // उपयोग करें GL_TEXTURE_RECTANGLE //shader.setUniformTexture ("tex1 ", img.getTtextureReference (), 0); // glActiveTexture (GL_TEXTURE0); // glEnable (GL_TEXTURE_RECTANGLE_ARB); ग्लबिंडएक्टेक्शंस (जीएल_वातावर_एसीटीएनएजीआरएआर, आईएमजी.गेटटैटरट्रेशनरेफरेंस (।)। टेक्सडाटा.टेस्ट्रैसिड); // glDisable (GL_TEXTURE_RECTANGLE_ARB); Shader.setUniform1i ("tex1", 0); // glActiveTexture (GL_TEXTURE0); ड्राक्वाड (0, 0, स्क्रबथथ, स्क्र्राइट, स्क्र्राइड, स्क्र्राइट); shader.end (); }   

मुझे नहीं पता है कि मैं एक और बनावट क्यों बनाऊँगा इस शेडर को काम नहीं करेगा।

इस शेडर को काम करने के दो तरीके हैं।

  1. बस मेरे शाडर में सैंपलर 2 डीटेक्ट का उपयोग करें (टिप्पणी सैंपलर 2 डी)
  2. टिप्पणी

    glTexParameterf (GL_TEXTURE_2D, जीएल_TEXTURE_MAG_FILTER, GL_LINEAR); उम्मीद है कि मैंने इस समस्या को स्पष्ट रूप से वर्णित किया है :( मेरा प्लेटफ़ॉर्म WIN7, VS2012, और ओपनफार्म वर्क्स 0.7.4 का उपयोग करता है

    मुझे खेद है, लेकिन यह एक गड़बड़ है।

    • आप घोषणा कर रहे हैं क्वाड ड्राइंग के लिए फ़ंक्शन, लेकिन इसे कहीं भी उपयोग नहीं किया जा रहा है।
    • सेटअप के भीतर सब कुछ तैयार किया गया है। मुझे नहीं पता कि ओपनजीएल को ओपनफार्मवर्क में कैसे लागू किया गया है, लेकिन इस वजह से समर्पित ड्रा () फ़ंक्शन है
    • अनुपस्थित # संस्करण as genpfault कहा
    • प्रत्यक्ष ओपनजीएल फ़ंक्शंस का उपयोग करने का कोई कारण नहीं है, क्योंकि वे फ़ंक्शन का उपयोग करने के लिए बहुत आसान में लिपटे हैं। < पी> मुझे मतलब या कुछ भी नहीं होना चाहिए, लेकिन सीधे जवाब के बजाय, मैं सलाह देता हूं, सीधे लोगों से।

Comments

Popular posts from this blog

excel vba - How to delete Solver(SOLVER.XLAM) code -

github - Teamcity & Git - PR merge builds - anyway to get HEAD commit hash? -

ios - Replace text in UITextView run slowly -