opengl - Generate one texture makes shader not work -
शदर कोड: मुख्य कोड: मुझे नहीं पता है कि मैं एक और बनावट क्यों बनाऊँगा इस शेडर को काम नहीं करेगा। इस शेडर को काम करने के दो तरीके हैं। टिप्पणी glTexParameterf (GL_TEXTURE_2D, जीएल_TEXTURE_MAG_FILTER, GL_LINEAR); उम्मीद है कि मैंने इस समस्या को स्पष्ट रूप से वर्णित किया है :( मेरा प्लेटफ़ॉर्म WIN7, VS2012, और ओपनफार्म वर्क्स 0.7.4 का उपयोग करता है मुझे खेद है, लेकिन यह एक गड़बड़ है।
# एक्सटेंशन 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 (); }
Comments
Post a Comment