El ejemplo de este artículo describe el método para implementar la asignación de textura de OpenGL ES. Compártelo para todos para su referencia. Los detalles son los siguientes:
1. Glrenderer.java Archivo:
paquete network.obviam.opndl; Glrender Implemerements Renderer {PRIVADO cuadrado cuadrado; ();}} @Override public void OdrawFrame (GL10 GL) {// Clear Buffer y Profunder Buffer GL.GLCLEAR (GL10.GL_BUFFER_BIT | GL10 .GL_DEPTH_BUFFER_BIT); GL.GLTRANSLATF (0.0F, 0.0F, -5.0F); ); / Escala el cuadrado a 50% // de lo contrario será demasiado grande. == 0) {// Pedir una división por cero por altura = 1; El Proyecto Matrix GL.GlLOADIdItTity (); ; .LoadgLtexture (GL, this.context); , 0.5f); Tipo de prueba de profundidad para hacer // Cálculos de perspectiva realmente agradables, GL10.GL_NICEST);}}2. Archivo Square.Java:
paquete network.obviam.opengl; Android.Graphics.BitMapFactory; -Bottom Left -1.0f, 1.0f, 0.0f, // v2 -top izquierdo 1.0f, -1.0f, 0.0f, // v3 -bottom derecho 1.0f, 1.0f // v4 -top derecho}; TextureBuffer; // buffer sosteniendo las coordenadas de textura textura de flotación privada [] = {// coordenadas de mapeo para los vértices 0.0f, 1. 0f, // arriba a la izquierda (V2) 0.0f, 0.0f, // abajo a la izquierda (V1) 1.0f, 1.0f, // arriba a la derecha (v4) 1.0f, 0.0f // abajo a la derecha (v3)}; // Un flotador tiene 4 bytes, por lo que asignamos a cada coordinal 4 bytebuffer bytebuffer = bytebuffer.allocatedirect (Vertices.length * 4); bytebuffer.asfloatbuffer (); * 4); Param Context */ public void LoadGlTexture (GL10 GL, contexto contextual) {// Cargando textura bitmap = bitmapfa ctory.decoderesource (context.getresources (), r.drawable.android); , Texturas, 0); .Gl_Nearest); comer) ; // GL.GLTEXPARAMETERF (GL10.GL_Texture_2d, GL10.GL_Texture_Wrap_T, GL10.GL_REPEAT); No Texturas [0]); Nuestro Vertex Buffer Gl.GlvertExcointer (3, GL10.GL_FLOAT, 0, VertexBuffer); 0, vértices.length /3);3. Archivo triangle.java:
paquete network.obviam.opengl; Vértices float [] = {-0.5f, -0.5f, 0.0f, // v1 -first vértice (x, y, z) 0.5f, -0.5f, 0.0f, // v2 -segundo vértice 0.0f, 0.5 F, 0.0f // v3 -third Vertex // 1.0f, 0.5f, 0.0f // v3 -third Vértice}; AllocatedIrect (Vertices.length * 4); / Establezca la posición del cursor al comienzo del búfer vertexbuffer.positation (0);} / ** El método de dibujo para el triángulo con el contexto GL* / public void Draw (GL10 GL) {GL.GlenableClientState (GL10.GL_VERTEX_ARAY) ; // Establezca el color para el fondo // Gl.Glclercolor (0.0F, 0.0f, 0.5f); .gl_color_buffer_bit); Dibuje los vértices como Triangle Strip GL.GldrawArrays (GL10.GL_TRIANGLE_STRIP, 0, Vertices.length / / 3);4. Run.java File:
paquete network.obviam.opengl; * *La vista OpenGL */ private GlsurfaceView GlsurfaceView;/ ** Llamada cuando la actividad se crea por primera vez. Ventana. / Establezca nuestro renderizador para que sea el renderizador principal con // el contexto de actividad actual glsurfaceView.setRenderer (this); .onresume ();
Se espera que este artículo sea útil para el diseño del programa Java de todos.