• OpenGL的glTexCoord2f纹理坐标配置


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

    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超级宝典笔记——纹理映射

  • 相关阅读:
    CentOS ping: unknown host 解决方法
    chmod 777 修改权限
    Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器[摘抄]
    PHP-CGI 进程 CPU 100% 与 file_get_contents 函数的关系
    unix:/tmp/php-cgi.sock
    Nginx虚拟主机配置教程
    nginx 浏览php的时候会变成下载
    sphinx的配置和管理.No2
    Sphinx以及coreseek的安装及使用 .No1
    76、android:supportsRtl 和 android:layout_marginEnd
  • 原文地址:https://www.cnblogs.com/1024Planet/p/5667110.html
Copyright © 2020-2023  润新知