项目源码:https://github.com/xufeifandj/CubeEffectTest
CubeEffectTest 运用opengl es 2.0 shder着色器 多重纹理贴图的例子,优化cube立方体
package xu.ferris.cubeeffecttest;
import android.opengl.GLES11Ext;
import android.opengl.GLES20;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;
import static xu.ferris.cubeeffecttest.Constant.UNIT_SIZE;
import static xu.ferris.cubeeffecttest.Constant.UNIT_SIZE_ZERO;
import static xu.ferris.cubeeffecttest.Constant.UNIT_SIZE_TAB;
//颜色矩形
public class PageRect {
int mProgram;//自定义渲染管线着色器程序id
int muMVPMatrixHandle;//总变换矩阵引用
int muMMatrixHandle;//位置、旋转变换矩阵引用
int maPositionHandle; //顶点位置属性引用
private int mTextureUniformHandle;
private int mTextureUniformLightHandle;
private int mTextureCoordinateHandle;
String mVertexShader;//顶点着色器代码脚本
String mFragmentShader;//片元着色器代码脚本
FloatBuffer mVertexBuffer;//顶点坐标数据缓冲
FloatBuffer mCubeTextureCoordinates;//顶点着色数据缓冲
int vCount = 0;
int muRHandle;
int muAlpha;
public PageRect(MySurfaceView mv) {
//初始化顶点坐标与着色数据
initVertexData();
//初始化shader
initShader(mv);
initTexture(mv);
}
private int textures[]=new int[2];
private void initTexture(MySurfaceView mv) {
textures[0]=TextureHelper.loadTexture(mv.getContext(),R.drawable.gl_crystal_font)