OpenGL png图片 纹理贴图,去除png图片黑边
http://blog.csdn.net/cjkwin/article/details/6011882
用libpng把png图片读出来就可以用读出的数据生成文理了.
将png图片作为纹理贴图,在图片周围会产生黑边,在网上查了一下,都没有明确指出解决方法!废话不说了,看代码。
1.初始化
- protected void init(GL10 gl) {
- // Setup background color
- gl.glClearColor(1, 1, 1, 1);
- gl.glEnable(GL10.GL_BLEND);
- gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
- glEnable(GL_DEPTH_TEST);
- glEnable(GL10.GL_ALPHA_TEST); // Enable Alpha Testing (To Make BlackTansparent)
- glAlphaFunc(GL10.GL_GREATER,0.1f); // Set Alpha Testing (To Make Black Transparent)
- // Setup project matrix
- gl.glMatrixMode(GL10.GL_PROJECTION);
- gl.glLoadIdentity();
- GLU.gluOrtho2D(gl, 0.0f,1.3f,0.0f,1.0f);
- gl.glEnable(GL10.GL_TEXTURE_2D);
- gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, texBuff);
- gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
- tex = loadTexture(gl, bmp);
- // Smooth shading
- gl.glShadeModel(GL10.GL_SMOOTH);
- }
2.加载纹理贴图
- protected static int loadTexture(GL10 gl, Bitmap bmp, boolean reverseRGB) {
- int[] textures = new int[1];
- glGenTextures(1, textures, 0);
- int mTextureID = textures[0];
- glBindTexture(GL_TEXTURE_2D, mTextureID);
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,GL_NEAREST);
- glTexParameterf(GL_TEXTURE_2D,
- GL_TEXTURE_MAG_FILTER,GL_LINEAR);
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S,
- GL_CLAMP_TO_EDGE);
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T,
- GL_CLAMP_TO_EDGE);
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE,
- GL_REPLACE);
- GLUtils.texImage2D(GL_TEXTURE_2D, 0, bmp, 0);
- bmp.recycle();
- return mTextureID;
- }
转载于:https://blog.51cto.com/westsky/879568
OpenGL png图片 纹理贴图,去除png图片黑边相关推荐
- Three TextureLoader纹理贴图不显示图片(显示黑色)
本人初学three.js,根据Three中文文档学习,在学习过程中发现TextureLoader纹理贴图不显示图片(显示黑色),在文档中的代码如下所示: // 纹理贴图映射到一个矩形平面上 var g ...
- LBP算法提取图片纹理特征图
LBP算法提取图片纹理特征图 一.项目目标 采用LBP算法提取图片的纹理特征图. 二.LBP算法原理 LBP指局部二值模式,英文全称:Local Binary Patterns.最初功能为辅助图像局部 ...
- opengl生成图片php,(转)使用OpenGL显示图像(七)Android OpenGLES2.0——纹理贴图之显示图片...
转:http://blog.csdn.net/junzia/article/details/52842816 前面几篇博客,我们将了Android中利用OpenGL ES 2.0绘制各种形体,并在上一 ...
- 16. OPenGL加载纹理贴图
1. 说明 在OPenGL中,三维物体模型并非只能渲染单一颜色,还可以通过纹理贴图的方式进行渲染,增强物体模型的渲染效果,本篇文章简单讲解给一个矩形添加纹理图片效果. 效果展示: 纹理数据加载 2. ...
- Three TextureLoader纹理贴图不显示图片(显示黑色)的原因分析
两种原因: 1.物体材质不对 代码: // 纹理贴图映射到一个矩形平面上 var geometry = new THREE.PlaneGeometry(204, 102); //矩形平面 // Tex ...
- OpenGL学习笔记——纹理贴图
简单地说,纹理就是矩形的数据数组.例如,颜色数据.亮度数据.颜色和alpha数据.纹理数组中的单个值常常称为纹理单元(texel).纹理贴图之所以复杂,是因为矩形的纹理可以映射到非矩形的区域,并且必须 ...
- 2.x最终照着教程,成功使用OpenGL ES 绘制纹理贴图,添加了灰度图
在之前成功绘制变色的几何图形之后,今天利用Openg ES的可编程管线绘制出第一张纹理. 学校时候不知道OpenGL的重要性,怕晦涩的语法.没有跟老师学习OpenGL的环境配置,现在仅仅能利用coco ...
- 2.x终于照着教程,成功使用OpenGL ES 绘制纹理贴图,增加了灰度图
在之前成功绘制变色的几何图形之后,今天利用Openg ES的可编程管线绘制出第一张纹理.学校时候不知道OpenGL的重要性,怕晦涩的语法,没有跟老师学习OpenGL的环境配置,如今只能利用cocos2 ...
- android opengl es 圆锥纹理贴图
效果图: 底面: 侧面: 底面圆核心代码: //初始化顶点数据的方法public void initVertexData(){// 顶点坐标数据的初始化================begin=== ...
最新文章
- 《OpenACC并行程序设计:性能优化实践指南》一 3.5 在应用程序执行期间记录性能信息...
- python 遍历xml所有节点
- oracle 五种索引创建
- .NET项目发布网站具体步骤和注意事项
- 数据库:SQLServer 实现行转列、列转行用法笔记
- ehcache 手动刷新缓存_清空DNS缓存的两个小方法
- python基础教程第三版-《Python基础教程第三版》原版中英文PDF+代码+袁国忠(译)...
- CSS里 @import用法
- 基于java的铁路火车售票系统
- ios加密算法AES
- ASP(Answer Set Programming)编程入门
- UE4 虚幻引擎 引用第三方库lib文件
- js锅打灰太狼(小游戏)
- 安防监控专用工业交换机与普通交换机的区别
- Matplotlib自定义图例(多张独立图共享图例)
- POSTGRESQL 用户怎么乱糟糟,出自其他DB的评论, 与SCHEMA 移魂大法
- 《浪潮之巅》——吴军
- php socket 服务端
- oracle中to_date详解
- QQ旋风踏上“迷你快车”山寨路
热门文章
- Qt Designer的信号和插槽编辑模式
- C语言二叉树曲折级顺序遍历(附完整源码)
- OpenGL framebuffer 帧缓冲区的实例
- C++longest palindromic subsequence最长回文子序列算法实现(附完整源码)
- QT的QScriptValueIterator类的使用
- QT的QMessageBox类的使用
- QT的Q3DTheme类的使用
- 材料成型计算机模拟第三版,材料成型计算机模拟实验报告模板学习.doc
- matlab转向梯形优化设计,转向梯形优化设计matlab程序
- python爬取考研成绩什么时候出来_用Python爬取了考研吧1000条帖子,原来他们都在讨论这些!...