OpenGL纹理 基本概念

 我来答
游戏王17
2022-06-03 · TA获得超过892个赞
知道小有建树答主
回答量:214
采纳率:0%
帮助的人:65.2万
展开全部

  纹理映射,简单的理解就是把一副图像映射到图形上的过程。比如一个图片像壁纸一样贴在物体的表面。这个技术可以从过年一个特殊类型标中的着色器中查询值,例如 颜色值。现在所有OpenGL着色阶段都有纹理映射,常用的阶段为处理片元的环境中。

  说完纹理映射,那什么是纹理呢?纹理图(简称纹理),通常是摄像机捕获的,也可以是程序中生成的,也可以是OpenGL以纹理代替显示设备为目标渲染的。纹理是2维的,但是OpenGL也支持许多其他类型的纹理,比如 1维、3维、立方体映射、缓冲纹理、数组纹理等。
  纹理由纹素组成,通常包括颜色值。也有很多实用程序把纹理看作是可以在着色器中查询的表,用于所需要的任意目的。使用步骤如下:
  • 创建一个纹理对象,为它加载纹素数据
  • 为顶点增加纹理坐标
  • 把纹理图与着色器中将要使用的纹理采样器关联
  • 在着色器中使用纹理采样器来查询纹素值

  OpenGL支持许多类型的维数和布局可变的纹理对象,每个纹理对象表示组成完整纹理的一组图像。每个图像可以是纹素的1维、2维或者3维数组,并且很多图像可以放在另一个图像的顶部来形成mipmap金字塔。 但并不是所有的纹理都可以表示纹理数组或者形成mipmap金字塔 ,比如 矩形纹理对象、纹理缓冲
  另外纹理可以包括1维或者2维切片的数组,这样的纹理成为 数组纹理 ,数组的每一个元素都是一个切片, 立方体映射 就是纹理数组的一个示例,它共有6个面(切片),立方体映射数组表示立方体映射纹理的数组,是6个面的整数倍。
  纹理也可以用于2维和2维数组纹理的 多重采样纹理类型 表示多种采样表面。多重采样是一个用于抗锯齿的术语,其中每个像素被赋予多个独立的颜色,然后在渲染过程中合并这些颜色来生成最终的输出颜色。多重采样纹理对于每个纹素都有几个采样(典型值在2和8之间)。

  纹理通过纹理单元绑定到OpenGL环境,其中纹理单元用命名为GL_TEXTURE0到GL_TEXTUREi的绑定点表示,这里i是实现支持的纹理单元的数组减一。许多纹理可以绑定到同样的环境,因为同一个环境可以支持多个不同的纹理单元。

  纹理一旦被绑定到环境中,着色器就可以使用采样器变量来访问,而采样器变量用匹配纹理的位数来声明。纹理位数(纹理目标)和对应采样器类型(必须在着色器中使用来访问纹理中的纹素)对应如下:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式