1.简介 上一篇已经将一个平面图形绘制出来了,这一次我们将在上一次绘制出来的图形的表面上进行纹理贴图。 图片准备:( 宽高须为2的N次方 ) 最终图片是以Bitmap形式。 现在考虑如何把这张图片映射到绘制的平面上? 纹理坐标数据以图片左上角为(0,0),右下角为(1,1)为基础 上一篇文章已经知道,面数组为{0,1,2,3,4,5}绘制, 所以要给组成面的每个顶点,映射一个纹理坐标数据 ,如下: float[]{ 0f,0f , 1f,1f , 1f,0f } 这样一张图片就全部映射到绘制的平面上了。 2.代码 public class OtherShader implements GLSurfaceView.Renderer{ FloatBuffer vertextBuffer; //纹理坐标数据 FloatBuffer textureBuffer; ByteBuffer faceBuffer; private float roate; //使用的纹理 int texture; Context context; public OtherShader(Context context) { this.context = context; vertextBuffer = floatArray2Buffer(vertex); faceBuffer = ByteBuffer.wrap