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

Reply via email to