《高效学习OpenGL》 之 指定纹理 glTexImage2D(),gluScaleImage(), glCopyTexImage2D(),glTexSubImage2D()

更多精彩图形学视频教程,请访问 http://www.oxox.work/


定义一个二维纹理:

   glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, checkImageWidth, checkImageHeight, 
                0, GL_RGBA, GL_UNSIGNED_BYTE, checkImage);
   void glTexImage2D (GLenum target, GLint level, GLint internalformat
	   , GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
   //target参数用于定义二维纹理;
   //如果提供了多种分辨率的纹理图像,可以使用level参数,否则level设置为0;
   //internalformat确定了哪些成分(RGBA, 深度, 亮度和强度)被选定为图像纹理单元
   //width和height表示纹理图像的宽度和高度;
   //border参数表示边框的宽度
   //format和type参数描述了纹理图像数据的格式和数据类型
   //pixels参数包含了纹理图像的数据,这个数据描述了纹理图像本身和它的边框


改变纹理图像的大小:

   int gluScaleImage (
	   GLenum      format, 
	   GLint       widthin, 
	   GLint       heightin, 
	   GLenum      typein, 
	   const void  *datain,//存储的纹理图像数据 
	   GLint       widthout, 
	   GLint       heightout, 
	   GLenum      typeout, 
	   void        *dataout);//最终的纹理图像数据

从帧缓存区读取一块矩形像素,并且把它定义为纹理单元:

   void glCopyTexImage2D (GLenum target, GLint level, GLenum internalFormat, 
	   GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
   //纹理数组是从屏幕对齐的像素矩形读取的,它的左下角是(x, y)表示的坐标

查询纹理状态变量的值:

	void glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params);
	//params参数中,返回一个特定细节层的纹理参数值,这个细节层由level参数指定;
	//target参数定义了目标纹理


定义一个二维纹理图像,替换当前一副现有的二维图像的全部或一块连续的区域:

         glTexSubImage2D(GL_TEXTURE_2D, 0, 12, 44, subImageWidth,
                         subImageHeight, GL_RGBA,
                         GL_UNSIGNED_BYTE, subImage);
		 void glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height
			 , GLenum format, GLenum type, const GLvoid *pixels);
		 //pixels包含了表示子图像的纹理数据
		 //width和height表示表示子区域的宽度和高度
		 //xoffset和yoffset表示x和y方向上的纹理单元偏移量


  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虚坏叔叔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值