位置: 编程技术 - 正文
推荐整理分享OpenGL纹理贴图的相关知识(opengl纹理采样),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:opengl 纹理贴图,opengles纹理贴图,opengl纹理采样,opengl贴纹理可能出现的问题,opengl bmp纹理,opengl3d纹理贴图,opengl3d纹理贴图,opengl纹理贴图的步骤,内容如对您有帮助,希望把文章链接给更多的朋友!
纹理映射,是将纹理空间中的纹理像素映射到屏幕空间中的像素的过程。
纹理贴图的步骤 1.创建纹理对象,并为它指定一个纹理。 2.确定纹理如何应用到每个像素上。 3.启用纹理贴图功能。 4.绘制场景,提供纹理坐标和几何图形坐标。 纹理坐标必须在RGBA模式下才能使用。在颜色索引模式下使用纹理贴图的结果是难以预料的。
重要概念:分配纹理坐标 当我们绘制进行了纹理贴图的场景时,必须为每个顶点提供物体坐标和纹理坐标。经过变换后,物体坐标决定了应该在屏幕上的哪个地点渲染每个特定的顶点。纹理坐标决定了纹理图像中的哪个纹理单元将分配给这个顶点。
映射纹理到几何图元要把纹理映射到几何图元中,我们需要告诉OpenGL如何映射这些纹理。纹理元素不是根据内存中的位置来放置的(与像素不同)。纹理用更抽象的纹理坐标来确定纹理元素放置的位置。纹理坐标包含s、t、r和q坐标轴类于顶点坐标的x、y、z和w,以此来支持1维到3维的纹理。q用来缩放纹理坐标,即纹理坐标归一化后的坐标为s/q、t/q、r/q,默认为1.0。纹理坐标为浮点数,范围为[0.0,1.0]。下图解释纹理坐标如何放置纹理元素的:
我们可以通过glTexCoord函数来设置纹理坐标,这类于设置顶点坐标。下面是3个常用的glTexCoord变型:
void glTexCoord1f(GLfloat s);
void glTexCoord2f(GLfloat s, GLfloat t);
void glTexCoord3f(GLfloat s, GLfloat t, GLfloat r);
注意纹理坐标像表面法线,和颜色一样要在设置顶点之前进行设置。用上面的这些函数为每个顶点设置纹理坐标。然后OpenGL会根据需要对纹理进行缩放后映射到几何图元中(其中应用到纹理过滤,后面再解释)。下图是把2维的纹理映射到一个四方形GL_QUADE图元中,注意纹理的四个角与四方形的四个角是一一对应的。
当然我们还可以把一个四方形的纹理图映射到一个三角形的几何图元中:
纹理矩阵纹理坐标也可以通过纹理矩阵来进行变换。纹理矩阵的工作方式与投影矩阵,模型视图矩阵类。通过glMatrixMode(GL_TEXTURE):来开启纹理矩阵模式,在此函数调用后面的矩阵变换将被应用于纹理坐标。纹理坐标可以进行移动、缩放、旋转。纹理矩阵的栈最多只能容纳两个纹理矩阵。通过glPushMatrix 和glPopMatrix来进行栈操作
版权声明:本文为博主原创文章,未经博主允许不得转载。
SCARA——OpenGL入门学习三 OpenGL入门学习[三]在第二课中,我们学习了如何绘制几何图形,但大家如果多写几个程序,就会发现其实还是有些郁闷之处。例如:点太小,难以看清楚
OpenGL Tutorial: (1) Setting up OpenGL with Visual Studio 前言我们准备要开始OpenGL之旅,在开始之前,首先要了解一些事情,也就是本教程的目的,请确定本教程与您的目标一致,以免浪费时间。如果您有任
作战仿真 基于 osg 含有态势显示 客户端 转载请注明出处:
标签: opengl纹理采样
本文链接地址:https://www.jiuchutong.com/biancheng/368429.html 转载请保留说明!友情链接: 武汉网站建设