opengl - LWJGL - Texture Only Shows Solid Color -


किसी कारण से, जब मैं एलडब्ल्यूजेजीएल का इस्तेमाल करते हुए बनावट को प्रस्तुत करने की कोशिश करता हूं, तो बनावट केवल एक ठोस रंग के रूप में प्रस्तुत करता है। मुझे नहीं लगता है कि यह टेक्सचर लोडिंग (मैं स्लिम यूटिल लाइब्रेरी का उपयोग कर रहा हूँ) के साथ एक समस्या है क्योंकि उस रंग का रंग छवि में प्रमुख रंग लगता है।

मॉडल वर्ग: <पूर्व> सार्वजनिक वर्ग मॉडल {निजी फ्लोटबफर के कोने, यूवीवल्यूज; निजी इंट वर्टेक्सिड, यूवीआईडी; निजी इंट वर्टेक्स आट्रीब, यूवेट्रिब; निजी बनावट टेक्स; निजी बाइटबफर टेक्सडाटा; निजी इंडस्ट्रीज़ textureID; निजी इंडस्ट्रीज़ बनावट स्थान; निजी मैट्रिक्स 4 एफ मॉडल मैट्रिक्स; निजी फ्लोटबफर मॉडल बफर; निजी इंट मॉडल मैट्रिक्स लोकेशन; सार्वजनिक मॉडल (फ्लोट [] वर्ट्स, फ्लोट [] यूवी, इंट मॉडल स्थान, स्ट्रिंग टेक्सपाथ, इंट टेक्स लोकेशन) {कोने = बनायें बफर (वर्ट्स); शीर्ष एट्रिब = 0; वर्टेक्सिड = बनानेवाइबो (कोर्टेस, वर्टेक्सऍट्रिब, 3); Tex = textureUtils.loadTexturePNG (texPath); TexData = createBuffer (tex); टेक्सचरआईडी = बाइंडटैक्टक्शंसडेटा (टेक्क्स, टेक्सडाटा); TextureLocation = texLocation; UvValues ​​= createBuffer (यूवी); यूवेट्रिब = 1; यूवीआईडी ​​= बनाएँ वीबीओ (यूवीवल्यूज, यूवेट्रिब, 2); ModelMatrix = नया मैट्रिक्स 4 एफ (); मॉडल मेटट्रिक्स स्थान = मॉडल स्थान; ModelBuffer = createBuffer (मॉडल मैट्रिक्स); } प्राइवेट स्टैटिक फ्लोटबफर बनाबफर (फ़्लोट [] वाल्से) {फ्लोटबफर बफर = बफर यूटी। कंटेंट फ्लाटबफर (वाल्स। लैंप); buffer.put (Vals); buffer.flip (); वापसी बफर; } प्राइवेट स्टैटिक फ्लोटबफ़र बनाम बफर (मैट्रिक्स 4 एफ चटाई) {फ्लोटबफर बफर = बफर यूटी। कंटेंट फ्लाटबफर (16); mat.store (बफर); buffer.flip (); वापसी बफर; } निजी स्थिर बाइटबफर बना हुआ बफर (बनावट टेक्स) {बाइट बफर बफर = बफर यूटी। बीटाबफ़र (टेक्स। गेट्सटेक्चरैक्टडेटा।) लंबाई); buffer.put (tex.getTextureData ()); buffer.flip (); वापसी बफर; } निजी स्थिर इंट बाइंडटैक्सेसरडेटा (बनावट टेक्स, बायटेबफर डेटा) {इंट आईडी = ग्लेंडेक्टेचर (); ग्लिबिनेटेड (GL_TEXTURE_2D, आईडी) मिश्रण; GlTexImage2D (GL_TEXTURE_2D, 0, GL_RGB, (इंट) tex.getWidth (), (int) tex.getHeight (), 0, GL_RGB, GL_UNSIGNED_BYTE, डेटा); GlTexParameteri (GL_TEXTURE_2D, जीएल_TEXTURE_MAG_FILTER, GL_LINEAR); GlTexParameteri (GL_TEXTURE_2D, जीएल_TEXTURE_MAG_FILTER, GL_LINEAR); ग्लबिंडएक्टेक्शंस (जीएल_विशेषता डीडी, 0); वापसी आईडी; } निजी स्थिर इंट निर्माण वीबीओ (फ्लोटबफर बफर, इंट लोकेशन, इंट वेक्टर सिज़) {int id = glGenBuffers (); glEnableVertexAttribArray (स्थान); ग्लबिंडबफर (GL_ARRAY_BUFFER, आईडी); ग्लबफ़रडाटा (जीएल_एआरआरएआईबीयूएफएफईआर, बफर, जीएलएसएडीएटीएसीडीआरएडब्ल्यू); GlVertexAttribPointer (स्थान, वेक्टर साइज़, GL_FLOAT, गलत, 0, 0); ग्लबिंडबफर (GL_ARRAY_BUFFER, 0); glDisableVertexAttribArray (स्थान); वापसी आईडी; } निजी शून्य बाँध () {glUniformMatrix4 (modelMatrixLocation, गलत, मॉडलबफर); tex.bind (); glActiveTexture (GL_TEXTURE0); ग्लबिंडएक्टेक्शन (जीएल_विशेषता डीडी, टेक्सचरआईडी); GlUniform1i (बनावट स्थान, 0); glEnableVertexAttribArray (vertexAttrib); ग्लबिंडबफर (GL_ARRAY_BUFFER, वर्टेक्सआईडी); GlVertexAttribPointer (vertexAttrib, 3, GL_FLOAT, गलत, 0, 0); glEnableVertexAttribArray (uvAttrib); ग्लबिंडबफर (GL_ARRAY_BUFFER, यूवीआईडी); GlVertexAttribPointer (uvAttrib, 2, GL_FLOAT, गलत, 0, 0); } निजी शून्य रहित () {glDisableVertexAttribArray (uvAttrib); ग्लबिंडबफर (GL_ARRAY_BUFFER, 0); glDisableVertexAttribArray (vertexAttrib); ग्लबिंडएक्टेक्शन (जीएल_विशेषताईडीडीडी, 0); } सार्वजनिक शून्य रेंडर () {बाँध (); GlDrawArrays (GL_TRIANGLES, 0, शिरोबिंदुसंपत्ति () / 3); निकल (); }}

आदर्श आरंभीकरण कोड:

  मॉडल = नया मॉडल (नया फ्लोट [] {-1, -1, -3, 1, -1 , 3, 1, 1, -3}, नया फ्लोट [] {0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f}, प्रोग्राम.गेट यूनिफ़ॉर्म लॉकेशन ("मॉडल_मैट्रिक्स"), "रेस / टेक्स / TestTex.png ", program.getUniformLocation (" texture_sampler "));   

वर्टेक्स शेडर:

  # संस्करण 330 कोर लेआउट (स्थान = 0) vec3 position_modelspace में; लेआउट (स्थान = 1) vec2 vertex_UV में; वर्दी mat4 मॉडल_मैट्रिक्स; वर्दी मैट 4 व्यू_मैट्रिक्स; वर्दी मैट 4 प्रोजेक्शन_मैट्रिक्स; बाहर vec2 यूवी; शून्य मुख्य () {vec4 vertex_MVP = प्रक्षेपण_मैट्रिक्स * दृश्य_मैट्रिक्स * मॉडल_मैट्रिक्स * वीसी 4 (स्थिति_मॉडलेस स्पेस, 1.0); Gl_Position = vertex_MVP; यूवी = वर्टेक्स_यूवी; }   

फ्रेगमेंट शेडर:

  # वर्जन 330 कोर वर्दी नमूना 2 डी टेक्सचर_सामप्लर; वीसी 2 यूवी में; बाहर vec3 रंग; शून्य मुख्य () {रंग = बनावट (टेक्सचर_एसएम्प्लर, यूवी)। आरजीबी; }   

मुझे वाकई यकीन नहीं है कि समस्या क्या है बनावट किसी भी समस्या के बिना लोड करता है, और मैंने इसी तरह की कई समस्याओं के साथ कई अन्य प्रश्नों को देखा है, लेकिन मैंने अभी तक ऐसा नहीं पाया है।

शायद ग्लिनेबल (GL_TEXTURE_2D) जोड़ना; समस्या को हल कर सकता है

Comments

Popular posts from this blog

c - Mpirun hangs when mpi send and recieve is put in a loop -

python - Apply coupon to a customer's subscription based on non-stripe related actions on the site -

java - Unable to get JDBC connection in Spring application to MySQL -