这是我的第一个问题。 我是新开发的Android开发人员,现在我开发了一个动态壁纸(LiveSpace) 我已经上传了精简版,你可以在这里找到它。 https://market.android.com/details?id=thedavincode.alienland&feature=search_result#?t=W251bGwsMSwyLDEsInRoZWRhdmluY29kZS5hbGllbmxhbmQiXQ ..Samsung Galaxy S2 OpenGl ES 2.0问题
我用Xperia手机和Lg P990测试了它,它似乎工作正常,但Galaxy S2有一个奇怪的问题。 (2.3.4。android) 我的应用程序有11个对象(类),每个对象都有纹理,每个对象都有自己的程序和着色器。星系不会呈现超过8个纹理。它从ID 0到7,然后休息对象apear黑色。不管我什么都没有尝试过任何改变。 我读过,有8个纹理的限制,但是每个着色器不是总数。 任何帮助将是有价值的..谢谢。
感谢您的回复kibab。以及我想我做所有这些看到我的代码。 – DavinCode 2012-03-05 18:54:02
感谢您的回复kibab。以及我想我做所有这些看到我的代码。 这是每个对象类的绘图 \t GLES20.glUseProgram(GroundProgram); // checkGlError(“glUseProgram”); int grtextureLoc = GLES20.glGetUniformLocation(GroundProgram,“sTexture”); GrTextureID = Commons.Mytextures [11]; \t GLES20.glActiveTexture(GLES20.GL_TEXTURE11); \t GLES20.glBindTexture(GLES20.GL_TEXTURE_2D,GrTextureID); 并设置我的着色器和其他东西后,并绘制 GLES20.glUniform1i(grtextureLoc,GrTextureID); 我想念什么? – DavinCode 2012-03-05 19:03:19
您不会将纹理ID传递给制服。你传递纹理单元索引。在这里阅读:http://www.opengl.org/wiki/GLSL_Sampler#Binding_textures_to_samplers你真的需要在着色器中同时读取12个纹理吗? – 2012-03-05 19:45:35