转载: glTexCoord2f()函数的使用注意点

 glTexCoord2f()函数的使用注意点 

转自:http://blog.csdn.net/hsujouchen/archive/2009/05/20/4204969.aspx 

 

glTexCoord2f 的第一个参数是X坐标。 0.0f 是纹理的左侧。 0.5f 是纹理的中点, 1.0f 是纹理的右侧。 glTexCoord2f 的第二个参数是Y坐标。 0.0f 是纹理的底部。 0.5f 是纹理的中点, 1.0f 是纹理的顶部。

所以纹理的左上坐标是 X:0.0f,Y:1.0f ,四边形的左上顶点是 X: -1.0f,Y:1.0f 。其余三点依此类推。

试着玩玩 glTexCoord2f 的X,Y坐标参数。把 1.0f 改为 0.5f 将只显示纹理的左半部分,把 0.0f 改为 0.5f 将只显示纹理的右半部分。 

       在OpenGL中,负责二维纹理载入的函数是glTexCoord2f()。其声明为:

     glTexCoord2f(GLenum target, GLint level, GLint internalformat,  GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, void* data);

      

      glTexCoord2f()的 target 变量设置成  GL_TEXTURE_2D;

      level指明纹理的层次,可以设置成0,

      internalforamt指的是纹理数据在OpenGL中是如何表示的,如GL_RGB就表示纹理的像素在OpenGL里面以红绿蓝三个分量表示;

       width和height指明了载入纹理时候,数据所包含的纹理的宽度和高度;

       border指的是纹理的边界,可以设置成0;

       format指的是载入纹理的格式,它告诉OpenGL外部数据是如何表示单个像素的,如GL_RED表示数据每个像素只有红色分量,GL_RGBA表示是红绿蓝alpha四个分量组成一个像素;

       type表示一个像素中每个分量所占用的空间大小,如GL_FLOAT就表示每个分量是一个浮点数;GL_UNSIGNED_BYTE表示每个分量用一个无符号byte表示;

        data没有什么好说的,就是外部纹理数据的起始地址。

          还有一点就是在启用纹理之后(调用glEnable(GL_TEXTURE_2D)),模型的多边形显示模式不能为线框模式。否则只能看到变了色的线框,而看不到多边形表面的纹理图像。

posted @ 2009-12-05 16:28  coolgo  阅读(2745)  评论(0编辑  收藏  举报