Opengl归纳
1.雾
// fog opengles gl.glFogfv(GL10.GL_FOG_COLOR, fogColorBfr); gl.glFogf(GL10.GL_FOG_DENSITY, 0.35f); gl.glHint(GL10.GL_FOG_HINT, GL10.GL_DONT_CARE); gl.glFogf(GL10.GL_FOG_START, 2.0f); gl.glFogf(GL10.GL_FOG_END, 6.0f); gl.glEnable(GL10.GL_FOG);
glClearColor(0.5f,0.5f,0.5f,1.0f); // 设置背景的颜色为雾气的颜色glFogi(GL_FOG_MODE, fogMode[fogfilter]); // 设置雾气的模式glFogfv(GL_FOG_COLOR, fogColor); // 设置雾的颜色glFogf(GL_FOG_DENSITY, 0.35f); // 设置雾的密度glHint(GL_FOG_HINT, GL_DONT_CARE); // 设置系统如何计算雾气glFogf(GL_FOG_START, 1.0f); // 雾气的开始位置glFogf(GL_FOG_END, 5.0f); // 雾气的结束位置glEnable(GL_FOG); // 使用雾气
gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE);gl.glEnable(GL10.GL_BLEND);
// create textures gl.glEnable(GL10.GL_TEXTURE_2D); texturesBuffer = IntBuffer.allocate(3); gl.glGenTextures(3, texturesBuffer); // load bitmap Bitmap texture = Utils.getTextureFromBitmapResource(context, R.drawable.glass); // setup texture 0 gl.glBindTexture(GL10.GL_TEXTURE_2D, texturesBuffer.get(0)); gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_NEAREST); gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST); gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE); GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, texture, 0); // setup texture 1 gl.glBindTexture(GL10.GL_TEXTURE_2D, texturesBuffer.get(1)); gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR); gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE); GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, texture, 0); // setup texture 2 gl.glBindTexture(GL10.GL_TEXTURE_2D, texturesBuffer.get(2)); gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR_MIPMAP_NEAREST); gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE); Utils.generateMipmapsForBoundTexture(texture); // free bitmap texture.recycle();