Das Beispiel dieses Artikels beschreibt die Methode zur Implementierung von OpenGLE -Texturzuordnung. Teilen Sie es für alle für Ihre Referenz. Die Einzelheiten sind wie folgt:
1.. Glrenderer.java -Datei:
Paketnetzwerk.OPNDL; GLRender Implemerements Rendererer {private Square; ();}} @Override public void odrawframe (GL10 GL) {// Bildschirm und Tiefenpuffer GL.GLCLEAR (GL10.gl_Buffer_bit | GL10 .gl_depth_buffer_bit); GL.GLTRANSLATEF (0,0F, 0,0F, -5.0F); ) // das Quadrat auf 50% // ansonsten zu groß sein. == 0) {// eine Kluft durch Null verhindern = 1; Die Projektmatrix GL.GlloadidIdintity (); ; GL.GLMATRIXMODE (GL10.GL_MODELVIEW); .LOADGLTEXTURE (GL, this.context); 0,5f) // Schwarzer Hintergrund Glcleardepthf (1.0f); Art der Tiefenprüfung zu tun // wirklich schöne Perspektivenberechnungen, GL10.gl_NICEST);}}2. Square.java -Datei:
Paketnetzwerk.OPIM.OPENGL; Android.graphics.bitmapfactory; -Bottom links -1.0f, 1,0f, 0,0f, // v2 -top links 1.0f, -1.0f, 0,0f, // v3 -Bottom rechts, 1.0f // v4 -top rechts}; TextureBuffer; 1.0f, 1.0f, // oben rechts (v4) 1.0f, 0,0f // unten rechts (v3)}; // Ein Float hat 4 Bytes, sodass wir für jeden Koordinal 4 ByteBuffer ByteBuffer = Bytebuffer.allocatedirect (Scheitelpunkte.length * 4) zuordnen; bytebuffer.asfloatBuffer (); * 4); Param Context */ public void loadGltexture (GL10 GL, Kontextkontext) {// Textur bitmap = bitmapfa ctory.decoderesource (context.getResources (), R.Drawable.Android); , Texturen, 0) // ... und binden Sie es an unsere Array -GL.GLBINDTEXTURE (GL10.GL_TEXTURE_2D, Texturen [0]); .gl_nearest); essen) ; // GL.GLTEXAMETERF (GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_REPEAT); ; // Bitmap.Recycle ();} / ** Die Zeichnungsmethode für das Quadrat mit dem GL -Kontext* / public void Draw (GL10 GL) {// Binden Sie die zuvor erzeugte Textur GL.GlbindTexture (GL10.GL_TEXTURE_2D, BINDER. Texturen [0]); unser Scheitelpunkt GL.GLVERTEXPOINGER (3, GL10.GL_FLOAT, 0, Vertexbuffer); 0, Scheitelpunkte.Length /3);3. Triangle.java -Datei:
Paket Network.OBVIAM.OPENGL; Float -Vertices [] = {-0,5f, -0,5f, 0,0f, // v1 -First Vertex (x, y, z) 0,5f, -0,5f, 0,0f, // v2 -sekunden Vertex 0,0f, 0,5, 0,5, 0,5, 0,5 F, 0,0f // v3 -Third -Scheitelpunkt // 1.0f, 0,5f, 0,0F // V3 -Third -Scheitelpunkt}; zugeordneter (Scheitelpunkte.Length * 4); / Setzen Sie die Cursorposition auf den Beginn des Pufferscheitelpunkts. ; .gl_color_buffer_bit); Zeichnen Sie die Eckpunkte als Dreieck Strip GL.GldraWarrays (GL10.gl_Triang_strip, 0, Scheitelpunkte.length / / 3);4. Java -Datei run.java:
Paketnetzwerk.OBVIAM.OPENGL; * *Die OpenGL -Ansicht */ private GlSurfaceView GlsurfaceView;/ ** Aufgerufen, wenn die Aktivität zum ersten Mal eingestellt wird. Fenster. / Setzen Sie unseren Renderer als Hauptrenderer mit dem aktuellen Aktivitätskontext GLSurfaceView.setRenderer (this); .onResume ();
Es ist zu hoffen, dass dieser Artikel für Java -Programmdesign aller hilfreich ist.