public void initShader(MySurfaceView mv) { // 加载顶点着色器的脚本内容 mVertexShader = ShaderUtil.loadFromAssetsFile("vertex_tex.sh", mv.getResources()); // 加载片元着色器的脚本内容 mFragmentShader = ShaderUtil.loadFromAssetsFile("frag_tex.sh", mv.getResources()); // 基于顶点着色器与片元着色器创建程序 mProgram = ShaderUtil.createProgram(mVertexShader, mFragmentShader); // 获取程序中顶点位置属性引用 maPositionHandle = GLES20.glGetAttribLocation(mProgram, "aPosition"); // 获取程序中顶点纹理坐标属性引用 maTexCoorHandle = GLES20.glGetAttribLocation(mProgram, "aTexCoor"); // 获取程序中总变换矩阵id muMVPMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uMVPMatrix"); }
public void intShader(MySurfaceView mv) { // 初始化着色器 // 加载顶点着色器的脚本内容 mVertexShader = ShaderUtil.loadFromAssetsFile("vertex_xk.sh", mv.getResources()); ShaderUtil.checkGlError("==ss=="); // 加载片元着色器的脚本内容 mFragmentShader = ShaderUtil.loadFromAssetsFile("frag_xk.sh", mv.getResources()); // 基于顶点着色器与片元着色器创建程序 ShaderUtil.checkGlError("==ss=="); mProgram = createProgram(mVertexShader, mFragmentShader); // 获取程序中顶点位置属性引用id maPositionHandle = GLES20.glGetAttribLocation(mProgram, "aPosition"); // 获取程序中总变换矩阵引用id muMVPMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uMVPMatrix"); // 获取顶点尺寸参数引用 uPointSizeHandle = GLES20.glGetUniformLocation(mProgram, "uPointSize"); }
// 初始化shader public void intShader(MySurfaceView mv) { // 加载顶点着色器的脚本内容 mVertexShader = ShaderUtil.loadFromAssetsFile("vertex_color.sh", mv.getResources()); ShaderUtil.checkGlError("==ss=="); // 加载片元着色器的脚本内容 mFragmentShader = ShaderUtil.loadFromAssetsFile("frag_color.sh", mv.getResources()); // 基于顶点着色器与片元着色器创建程序 ShaderUtil.checkGlError("==ss=="); mProgram = ShaderUtil.createProgram(mVertexShader, mFragmentShader); // 获取程序中顶点位置属性引用id maPositionHandle = GLES20.glGetAttribLocation(mProgram, "aPosition"); // 获取程序中总变换矩阵引用id muMVPMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uMVPMatrix"); muMMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uMMatrix"); // 获取程序中顶点法向量属性引用 maNormalHandle = GLES20.glGetAttribLocation(mProgram, "aNormal"); // 获取程序中光源位置引用 maLightLocationHandle = GLES20.glGetUniformLocation(mProgram, "uLightLocation"); // 获取程序中摄像机位置引用 maCameraHandle = GLES20.glGetUniformLocation(mProgram, "uCamera"); }
// 初始化着色器 public void initShader(MySurfaceView mv) { // 加载顶点着色器的脚本内容 mVertexShader = ShaderUtil.loadFromAssetsFile("vertex.sh", mv.getResources()); // 加载片元着色器的脚本内容 mFragmentShader = ShaderUtil.loadFromAssetsFile("frag.sh", mv.getResources()); // 基于顶点着色器与片元着色器创建程序 mProgram = ShaderUtil.createProgram(mVertexShader, mFragmentShader); // 获取程序中顶点位置属性引用 maPositionHandle = GLES20.glGetAttribLocation(mProgram, "aPosition"); // 获取程序中总变换矩阵引用 muMVPMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uMVPMatrix"); // 获取程序中顶点经纬度属性引用 maLongLatHandle = GLES20.glGetAttribLocation(mProgram, "aLongLat"); // 获取位置、旋转变换矩阵引用 muMMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uMMatrix"); // 获取程序中球半径引用 muRHandle = GLES20.glGetUniformLocation(mProgram, "uR"); // 获取程序中顶点法向量属性引用 maNormalHandle = GLES20.glGetAttribLocation(mProgram, "aNormal"); // 获取程序中光源位置引用 maLightLocationHandle = GLES20.glGetUniformLocation(mProgram, "uLightLocation"); // 获取程序中摄像机位置引用 maCameraHandle = GLES20.glGetUniformLocation(mProgram, "uCamera"); }