读书人

Opengl归结

发布时间: 2012-08-26 16:48:06 作者: rapoo

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);     // 使用雾气



2.混合 Blend

gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE);gl.glEnable(GL10.GL_BLEND);


3.纹理
 // 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();

读书人网 >移动开发

热点推荐