码迷,mamicode.com
首页 > 其他好文 > 详细

OpenGL的glTexCoord2f纹理坐标配置

时间:2016-07-13 19:24:58      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:

纹理坐标配置函数,先看定义:

void glTexCoord2f (GLfloat s, GLfloat t);

 

1、glTexCoord2f()函数

有两个参数:GLfloat s, GLfloat t

第一个参数代表X坐标。 0.0f 是纹理的左侧。 0.5f 是纹理的中点, 1.0f 是纹理的右侧。

第二个参数代表Y坐标。 0.0f 是纹理的底部。 0.5f 是纹理的中点, 1.0f 是纹理的顶部。

 

一个完全纹理的四个顶点的坐标分别是(0.0f, 0.0f)、(0.0f, 1.0f)、(1.0f, 1.0f)、(1.0f, 0.0f),分别对应左下、左上、右上、右下角。

可以这么认为,纹理一个挨着一个粘在坐标轴上,显示多个、显示那部分完全由四个顶点坐标决定。

比如显示3行2列个位图(共6个),坐标可以这样:(0.0f, 0.0f)、(0.0f, 3.0f)、(2.0f, 3.0f)、(2.0f, 0.0f)。

该函数主要与glVertex3f()配合使用,glTexCoord2f()是配置纹理坐标,glVertex3f()是配置图形坐标

 

注意:载入的位图大小必须是M*M,M是2的某次方,如32,64,128等。

 

2、如果贴图左右或者上下贴反了什么情况?

为了将纹理正确的映射到四边形上,必须将纹理的右上角映射到四边形的右上角,纹理的左上角映射到四边形的左上角,纹理的右下角映射到四边形的右下角,纹理的左下角映射到四边形的左下角。如果映射错误的话,图像显示时可能上下颠倒,侧向一边或者什么都不是。

 

纹理的左上坐标是X:0.0,Y:1.0f,四边形的左上顶点是X:-1.0,Y:1.0。其余三点依此类推。下面是一个具体的例子。
glTexCoord2f( 0.0, 0.0 ); glVertex3f( -1.0, -1.0, 1.0 );
glTexCoord2f( 1.0, 0.0 ); glVertex3f( 1.0, -1.0, 1.0 );
glTexCoord2f( 1.0, 1.0 ); glVertex3f( 1.0, 1.0, 1.0 );
glTexCoord2f( 0.0, 1.0 ); glVertex3f( -1.0, 1.0, 1.0 );

 

最后附上一些博主写的关于纹理映射的文章:

OpenGL纹理映射总结

OpenGL超级宝典笔记——纹理映射

 

OpenGL的glTexCoord2f纹理坐标配置

标签:

原文地址:http://www.cnblogs.com/1024Planet/p/5667110.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!