



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于Android平台的纹理映射分析与实现摘要:在计算机图形学中,纹理映射就是使用图像、函数或者其他数据源来改变物体外表外观。纹理映射技术是近几年来开展最快的技术之一,广泛应用于三维真实感图形的生成与显示中。运用纹理映射可以方便地制作真实感图形而不必花更多的时间去考虑物体的外表细节。本文在Andrid平台中,通过对纹理映射原理的分析,利用penglES图形库实现了纹理映射效果。关键词:纹理映射;penglES;Andrid引言纹理映射的本质是对三维物体进展二维参数化,即先求得三维物体表而上任一点的二维(u,v)参数值,进而得到该点的纹理值,最终生成三维图形表而上的纹理图案。在光滑曲而上添加纹理
2、图案的核心问题是映射,因此纹理问题可以简化为从一个坐标系到另一个坐标系的变换。总的来说,纹理映射技术是一种使建立的3D模型更接近现实物体的技术。1纹理映射根本原理纹理生成过程本质上是将所定义的纹理映射为反映某种三维景物外表的属性与光照明模型及外表几何有关的各种参数,如外表法向、漫/镜面反射率等,并参与后续的光照明计算。二维纹理映射就是从二维纹理平面到三维物体外表的映射。一般二维纹理平面是有范围限制的,在这个平面区域内,每点都可用数学函数表达,从而可以离散的别离出每点的灰度值和颜色值,这个平面区域称为纹理空间,一般将纹理空间的平面区域定义在0,1*0,1。纹理映射是确定物体外表一点P在纹理空间中
3、的对应点(u,v),从而纹理空间中的点(u,v)处的纹理值就是物体外表点P的纹理属性。建立纹理空间与景物空间及景物空间与屏幕空间之间的映射关系:图1纹理映射景物外表的纹理属性主要有以下几种:外表颜色,即外表的漫反射率;镜面反射分量,即外表的镜面反射率;透明度;外表法向,即挠动外表法向来产生外表的凹凸纹理;环境的漫反射和镜面反射效果;光源强度和色彩分布。根据纹理定义域的不同,可分为而为二维和三维纹理,由于本文是基于Andrid平台的,考虑到效率和资源问题,主要给出了二维纹理的模型,对三维纹理映射技术就不再讨论了。2纹理映射的实现本节将通过在一个立方体各个面贴上图片来介绍Andrid平台下基于pe
4、nGLES的纹理映射有关的内容:定义纹理、控制滤波、说明映射方式、绘制场景,给出顶点的纹理坐标和几何坐标。首先,我们通过Andrid平台的penGLES库来创立一个纹理,并使用图片来生成一个纹理,过程如下:IntBufferintBuffer=IntBuffer.allate(1);/创立纹理gl.glGenTextures(1,intBuffer);/设置要使用的纹理gl.glBindTexture(GL10.GL_TEXTURE_2D,texture);函数glGenTextures(intn,intBuffertextures)用于通知penGL我们想生成一个纹理的名字。函数glBind
5、Texture(inttarget,inttexture)方法用于通知penGL将纹理名字texture绑定到纹理目的上。在Andrid中我们使用GLUtils中的一个静态方法texIage2D(inttarget,intlevel,Bitapbitap,intbrder)来生成一个纹理。过程如下:/生成纹理GLUtils.texIage2D(GL10.GL_TEXTURE_2D,0,GLIage.Bitap,0)通过以上过程,我们便成功地创立了一个纹理。为了能有更好的效果,我们还需要设置在penGL现实图像时,它放大得比原始纹理大GL_TEXTURE_AG_FILTER或缩小得比原始纹理小G
6、L_TEXTURE_IN_FILTER时penGL所采用的滤波方式。以下过程是我们设置的线性滤波:/设置线性滤波Gl.glTexParaeterx(GL10.GL_TEXTURE_2D,GL10.GL_TEXTURE_IN_FILTER,GL10.GL_LINEAR);在andrid中可以使用glBindTexture(inttarget,inttexture)方法来绑定纹理。以下过程绑定了上面创立的纹理:Gl.glBindTexture(GL10.GL_TEXTURE_RD_ARRAY);/绑定纹理纹理需要使用glEnablelientState方法来开启纹理:Gl.glEnablelien
7、tState(GL10.GL_TEXTURE_RD_ARRAY);与之对应的,关闭纹理过程如下:Gl.glDisablelientState(GL10.GL_TEXTURE_RD_ARRAY);为了将纹理正确的映射到四边形上,必须将纹理的右上角映射到四边形的右上角,纹理的左上角映射到四边形的左上角,纹理的右下角和左下角亦是如此。因为,假设映射错误的话,图像显示时可能上下颠倒,侧向一边或者什么都没有。下面是我们对立方体的每一个面所设置的纹理映射数据:IntBuffertexrds=IntBuffer.rap(neintne,0.,0,0,0,ne,ne,ne,0,0,0,ne,ne,ne,ne,
8、0,ne,ne,ne,0,0,0,0,ne0,ne,ne,ne,ne,0,0,0,0,0,0,ne,ne,ne,ne,0,ne,0,0,0,0,ne,ne,ne);设置好这些映射数据之后,可以通过glTexrdPinter将纹理绑定到要绘制的物体上。过程如下:Gl.glTextrdPinter(2,GL10.GL_FIXED,0,texrds);最后,将其绘制到屏幕上即可。效果图2如下列图:图2纹理映射效果3完毕语本文通过对纹理映射的根本原理进展了分析,并在Andrid平台中利用penglES图形库对纹理映射技术进展了实现。由于本文利用的是Andrid应用层封装后的penglES图形库,在效率上欠佳,以后的主要工作是通过AndridNDK对penglES进展原生态开发,进而进步实现效率。参考文献
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋更名合同范本谁有
- 简易棚加固合同范本
- 城区房屋赠与合同范本
- 网络材料采购合同范本
- 合法地产合同范本
- 网络维护兼职合同范本
- 商用烘焙采购合同范本
- 网店订单合作合同范本
- 商业摊位出租合同范本
- 道德引领下的财务管理
- 2025年河北交通职业技术学院单招职业技能测试题库完美版
- 2025年合作购车资金分配协议书
- 高中体育排球课教案
- 《欧帝燃气灶公司企业应收账款管理研究案例报告(10000字论文)》
- 2024年江苏省扬州市中考数学试卷(附答案)
- 2025年湖北生物科技职业学院单招职业技能测试题库及参考答案
- 《铁路技术管理规程》(普速铁路部分)
- 2024年黑龙江省龙东地区中考英语试卷
- 西工大附中2025届高考英语一模试卷含解析
- 野外地质安全
- 学校常见传染病培训
评论
0/150
提交评论