opengl 笔记 glMatrixMode()函数的参数 glTexCoord2f()和glTexImage2D()函数

21 篇文章 1 订阅

glMatrixMode()函数的参数中GL_PROJECTION和GL_MODELVIEW的作用

(2012-02-06 11:47:22)
这两个都是glMatrixMode()函数的参数,那就先说说glMatrixMode吧~,这个函数其实就是对接下来要做什么进行一下声明,也就是在要做下一步之前告诉计算机我要对“什么”进行操作了,这个“什么”在glMatrixMode的“()”里的选项(参数)有,GL_PROJECTION,GL_MODELVIEW和GL_TEXTURE;

如果参数是GL_PROJECTION,这个是投影的意思,就是要对投影相关进行操作,也就是把物体投影到一个平面上,就像我们照相一样,把3维物体投到2维的平面上。这样,接下来的语句可以是跟透视相关的函数,比如glFrustum()或gluPerspective();
如果参数是GL_MODELVIEW,这个是对模型视景的操作,接下来的语句描绘一个以模型为基础的适应,这样来设置参数,接下来用到的就是像gluLookAt()这样的函数;
若是GL_TEXTURE,就是对纹理相关进行操作;
顺便说下,OpenGL里面的操作,很多是基于对矩阵的操作的,比如位移,旋转,缩放,所以,这里其实说的规范一点就是glMatrixMode是用来指定哪一个矩阵是当前矩阵,而它的参数代表要操作的目标,GL_PROJECTION是对投影矩阵操作,GL_MODELVIEW是对模型视景矩阵操作,GL_TEXTURE是对纹理矩阵进行随后的操作。


 

OpenGL——glTexCoord2f()和glTexImage2D()函数的使用注意点

分类: 图形API   9130人阅读  评论(4)  收藏  举报

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

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

      

      glTexImage2D ()的 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没有什么好说的,就是外部纹理数据的起始地址。

 

           glTexCoord2f() 作用是给当前的顶点赋予一个贴图坐标。

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值