I tryed it, it is not the solution El sábado, 21 de abril de 2012 20:23:26 UTC+2, Nightwolf escribió: > > Change zNear and zFar parameters in GLU.gluPerspective(gl, 45.0f, > (float)width / (float)height, 0.1f, 100.0f) to 1 and 1000. > If it helps then your square is near far clipping plane. > > пятница, 20 апреля 2012 г., 19:41:54 UTC+4 пользователь saex написал: >> >> Hi >> >> I'm displaying a OPENGL ES 1.X square with a texture, and the user can >> zoom in and out the square scaling it. >> >> When the user zoom's out the square (the square get's scaled going >> smaller in the screen) the texture of the square get's rare translucent >> squares, like tiles from googlemaps. >> >> I think that the scaling function from OpenGL is now working in the >> better way. >> >> How can i improve it? >> >> These are my OpenGL GLSurfaceView main functions: >> >> public void onSurfaceCreated(GL10 gl, EGLConfig config) { >> gl.glDisable(GL10.GL_DITHER); //dithering OFF >> gl.glEnable(GL10.GL_TEXTURE_2D); //Texture Mapping ON >> gl.glShadeModel(GL10.GL_SMOOTH); //Smooth Shading >> gl.glClearDepthf(1.0f); //Depth Buffer Setup >> gl.glEnable(GL10.GL_DEPTH_TEST); //Depth Testing ON >> gl.glDepthFunc(GL10.GL_LEQUAL); >> gl.glClearColor(0,0,0,0); //fondo transparente >> gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_NICEST); >> >> >> //Cargamos la textura del cubo. >> for (int i=0;i<squares.size();i++){ >> if (squares.get(i)!=null) >> squares.get(i).loadGLTexture(gl, context); >> } >> } >> >> public void onDrawFrame(GL10 gl) { >> //Limpiamos pantalla y Depth Buffer >> gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); >> gl.glLoadIdentity(); >> >> mg.getCurrentProjection(gl); //volvemos a generar las matrices por >> que es un bucle >> mg.getCurrentModelView(gl); >> . >> . >> . >> . >> gl.glTranslatef(X, Y, Z); //Move z units into the screen >> gl.glRotatef(zrot, 0.0f, 0.0f, 1.0f); //Z >> gl.glScalef(scale, scale, 1.0f); >> >> for (int i=0;i<squares.size();i++){ >> if (squares.get(i)!=null) >> squares.get(i).draw(gl); //Draw the Cube >> } >> } >> >> public void onSurfaceChanged(GL10 gl, int width, int height) { >> if(height == 0) { //Prevent A Divide By Zero By >> height = 1; //Making Height Equal One >> } >> >> gl.glViewport(0, 0, width, height); //Reset The Current Viewport >> gl.glMatrixMode(GL10.GL_PROJECTION); //Select The Projection >> Matrix >> gl.glLoadIdentity(); //Reset The Projection Matrix >> >> //Calculate The Aspect Ratio Of The Window >> GLU.gluPerspective(gl, 45.0f, (float)width / (float)height, 0.1f, >> 100.0f); >> >> gl.glMatrixMode(GL10.GL_MODELVIEW); //Select The Modelview Matrix >> gl.glLoadIdentity(); //Reset The Modelview Matrix >> >> } >> >> and these are my square polygon class main functions: >> >> public void draw(GL10 gl) { >> gl.glFrontFace(GL10.GL_CCW); >> //Bind our only previously generated texture in this case >> gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]); >> //Point to our vertex buffer >> gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer); >> gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, textureBuffer); >> //Enable vertex buffer >> gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); >> gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY); >> //Draw the vertices as triangle strip >> gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, vertices.length / 3); >> //Disable the client state before leaving >> gl.glDisableClientState(GL10.GL_VERTEX_ARRAY); >> gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY); >> } >> >> //Carga de texturas >> public void loadGLTexture(GL10 gl, Context context) { >> //Generamos un puntero de texturas >> gl.glDeleteTextures(1, textures, 0); //libero memoria >> gl.glGenTextures(1, textures, 0); >> //y se lo asignamos a nuestro array >> gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]); >> //Creamos filtros de texturas >> gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, >> GL10.GL_NEAREST); >> gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, >> GL10.GL_LINEAR); >> //Diferentes parametros de textura posibles GL10.GL_CLAMP_TO_EDGE >> gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, >> GL10.GL_REPEAT); >> gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, >> GL10.GL_REPEAT); >> >> //Usamos Android GLUtils para espcificar una textura de 2 dimensiones >> para nuestro bitmap >> GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0); >> >> //Checkeamos si el GL context es versión 1.1 y generamos los Mipmaps por >> Flag. Si no, llamamos a nuestra propia implementación >> if(gl instanceof GL11) { >> gl.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_GENERATE_MIPMAP, >> GL11.GL_TRUE); >> GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0); >> } else { >> buildMipmap(gl, bitmap); >> } >> //Limpiamos los bitmaps >> bitmap.recycle(); >> bitmap=null; >> System.gc(); >> } >> >>
-- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en