Android OpenGL 纹理绘制图像---基础知识

本文介绍了Android OpenGL的纹理贴图基础知识,包括纹理贴图的概念、坐标系,详细解析了纹理贴图的二维流程,涉及生成纹理对象、设置过滤、定义着色器、指定纹理以及绘制等关键步骤,帮助开发者理解并实现OpenGL纹理映射。
摘要由CSDN通过智能技术生成

一、基础概念

(1)纹理贴图

纹理贴图允许把一幅砖墙图像映射到一个多边形的表面上,并把整面砖墙画成单个多边形。纹理贴图能够保证当这个多边形进行变换和渲染时,映射到多边形表面的图像也能够表现出正确的行为。
它是一个相当大的主题,并且具有相当程度的复杂性。在使用纹理贴图时,必须做出一些编程选择。初学者很可能会本能地把纹理理解成二维图像,但是纹理也可以是一维的,甚至是三维的。可以把纹理映射到由一个多边形构成的表面上,也可以把它贴到曲面上,还可以在一个、二个或三个方向上(取决于纹理的维度)重复应用同一个纹理来覆盖整个表面。另外,可以把纹理图像自动映射到物体上,用它表示被观察物体的轮廓线或者其他属性。有光泽的物体也可以进行纹理贴图,当它们位于房间或其他环境的中央时,它们的表面就可以反射周围的物体。最后,纹理也可以按不同的方式应用到物体的表面。它可以直接画到物体的表面(就像表面上的贴花一样),调整表面的颜色。或者,把纹理颜色与表面颜色进行混合。
简单地说,纹理就是矩形的数据数组。例如,颜色数据、亮度数据、颜色和alpha数据。纹理数组中的单个值常常成为纹理单元(texel)。纹理贴图之所以复杂,是因为矩形纹理可以映射到非矩形区域,并且以合理方式实现。

(2)坐标系

这里写图片描述
如图所示,OpenGL世界坐标系和纹理坐标系的对应关系,所以纹理的顶点和世界坐标的顶点之间的对应关系如下:

private static final float VERTICES[] = {
            -1.0f, -1.0f,
            1.0f, -
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值