ตัวอย่างของบทความนี้อธิบายวิธีการใช้การแมป OpenGL ES Texture แบ่งปันสำหรับทุกคนสำหรับการอ้างอิงของคุณ ข้อมูลเฉพาะมีดังนี้:
1. ไฟล์ glrenderer.java:
Package.Obviam.opndl; Glrender impremerements Renderer {private square square; ();}} @Override โมฆะสาธารณะ ODRAWFRAME (GL10 GL) {// ล้างหน้าจอและความลึกบัฟเฟอร์ Gl.GlClear (GL10.GL_BUFFER_BIT | GL10 .GL_DEPTH_BUFFER_BIT); gl.gltranslatef (0.0f, 0.0f, -5.0f); ); == 0) {// ป้องกันการหารด้วยความสูง = 1; โครงการเมทริกซ์ Gl.GlloadididIntity (); ; .loadgltexture (gl, this.context); , 0.5f); ประเภทของการทดสอบเชิงลึกที่ต้องทำ // การคำนวณมุมมองที่ดีจริงๆ, gl10.gl_nicest);}}2. Square.java File:
Package.Obviam.opengl; Android.graphics.bitmapfactory; นำเข้า Android.opengl.glutils; -bottom ซ้าย -1.0f, 1.0f, 0.0f, // v2 -top ซ้าย 1.0f, -1.0f, 0.0f, // v3 -bottom ขวา 1.0f, 1.0f // v4 -top ขวา}; TextureBuffer; 1.0F, 1.0F, // ด้านบนขวา (V4) 1.0F, 0.0F // ด้านล่างขวา (V3)}; // A Float มี 4 bytes ดังนั้นเราจึงจัดสรรให้กับ Coordinal 4 Bytebuffer Bytebuffer = Bytebuffer.Allocatedirect (vertices.length * 4); Bytebuffer.asfloatbuffer (); * 4); บริบทของพารามิเตอร์ */ โมฆะสาธารณะ loadgltexture (GL10 GL, บริบทบริบท) {// การโหลดพื้นผิวบิตแมป = bitmapfa ctory.decoderesource (context.getResources (), r.drawable.android); , พื้นผิว, 0); .gl_nearest); ; ; // ทำความสะอาด bitmap.recycle ();} / ** วิธีการวาดสำหรับสี่เหลี่ยมจัตุรัสกับบริบท GL* / โมฆะสาธารณะวาด (GL10 GL) {// ผูกพื้นผิวที่สร้างขึ้นก่อนหน้านี้ พื้นผิว [0]); บัฟเฟอร์จุดสุดยอดของเรา gl.glvertexpointer (3, gl10.gl_float, 0, vertexbuffer); 0, จุดยอด /3);3. ไฟล์สามเหลี่ยมจาวา:
Package.Obviam.opengl; จุดยอดลอย [] = {-0.5f, -0.5f, 0.0f, // v1 -first vertex (x, y, z) 0.5f, -0.5f, 0.0f, // v2 -second vertex 0.0f, 0.5 f, 0.0f // v3 -third vertex // 1.0f, 0.5f, 0.0f // v3 -third vertex}; allocatedirect (vertices.length * 4); / ตั้งค่าตำแหน่งเคอร์เซอร์เป็นจุดเริ่มต้นของบัฟเฟอร์ Vertexbuffer.positation (0);} / ** วิธีการวาดสำหรับสามเหลี่ยมที่มีบริบท GL* / โมฆะสาธารณะ Draw (GL10 GL) {gl.glenableClientState (gl10.gl_vertex_aray) ; .gl_color_buffer_bit); วาดจุดยอดเป็นสามเหลี่ยมแถบ gl.gldrawarrays (gl10.gl_triangle_strip, 0, จุดยอดความยาว / / 3);4. run.java ไฟล์:
Package.Obviam.opengl; * *มุมมอง OpenGL */ GLSURFACEVIEW GLSURFACEVIEW;/ ** เรียกว่าเมื่อมีการสร้างกิจกรรมครั้งแรก หน้าต่าง / ตั้งค่าการเรนเดอร์ของเราให้เป็นตัวแสดงผลหลักด้วย // บริบทกิจกรรมปัจจุบัน glsurfaceview.setrenderer (นี่); .onresume ();
หวังว่าบทความนี้จะเป็นประโยชน์กับการออกแบบโปรแกรม Java ของทุกคน