1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > OpenGL 纹理贴图

OpenGL 纹理贴图

时间:2019-02-02 00:23:42

相关推荐

OpenGL 纹理贴图

纹理贴图允许把一幅砖墙图像映射到一个多边形的表面上,并把正面墙画成单个多边形。纹理贴图能够保证当这个多边形变形或渲染时,映射到多边形表面的图像也能够表现出正确的行为。

纹理贴图是一个相当大的主题,并且具有相当程度的复杂性。在使用纹理贴图时,必须做出一些编程选择。初学者很可能会本能地把纹理理解成二维图像,但是纹理也可以是一维的,甚至是三维的。可以把纹理映射到一组多边形构成的表面上,也可以把它贴到曲面上,还可以在一个、二个或三个方向上(取决于纹理的纬度)重复应用同一个纹理来覆盖整个表面。另外,可以把纹理图像自动映射到物体上,用它表示被观察物体的轮廓线或者其他属性。有光泽的物体也可以进行纹理贴图,当它们位于房间或其他环境的中央时,它们的表面就可以反射周围的物体。最后,纹理也可以按不同的方式应用到物体的表面。它可以直接画到物体的表面(就像表面上的贴花一样),调整表面的颜色。或者,把纹理颜色与表面颜色进行混合。

简单地说,纹理就是矩形的数据数组。例如,颜色数据、亮度数据、颜色和alpha数据。纹理数组中的单个值常常称为纹理单元(texel)。纹理贴图之所以复杂,是因为矩形的纹理可以映射到非矩形的区域,并且必须以合理的方式实现。

如果多个纹理单元对应于一个片段,这些纹理单元就会在求得均值后再应用到这个片段上。如果纹理单元的边界位于片断的边界上,OpenGL就会对所有相关的纹理单元求加权平均值。由于存在这些计算,纹理贴图从计算的角度而言是比较昂贵的,这也是为什么有这么多的专用图像系统(包括硬件)对纹理贴图提供支持的原因。

想提出个问题,纹理看着和位图或图像很像,那他们的有什么不同?

一般情况下,纹理是从图像文件读取的,这是因为如果直接在程序中指定纹理,可能需要几百行的额外代码。

纹理贴图的步骤

1.创建纹理对象,并为它指定一个纹理。

2.确定纹理如何应用到每个像素上。

3.启用纹理贴图功能。

4.绘制场景,提供纹理坐标和几何图形坐标。

纹理坐标必须在RGBA模式下才能使用。在颜色索引模式下使用纹理贴图的结果是难以预料的。

重要概念:分配纹理坐标

当我们绘制进行了纹理贴图的场景时,必须为每个顶点提供物体坐标和纹理坐标。经过变换后,物体坐标决定了应该在屏幕上的哪个地点渲染每个特定的顶点。纹理坐标决定了纹理图像中的哪个纹理单元将分配给这个顶点。

write by fgd

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
相关阅读
✠OpenGL-5-纹理贴图

✠OpenGL-5-纹理贴图

2023-03-22

Opengl实现纹理贴图

Opengl实现纹理贴图

2020-04-10

OpenGL纹理贴图

OpenGL纹理贴图

2021-10-28

OpenGL纹理贴图流程

OpenGL纹理贴图流程

2019-10-05