OpenGL:纹理基础总结

本文详细介绍了OpenGL中的纹理操作,包括glRasterPos*()设置光栅位置、位图绘制、像素操作、颜色矩阵转换、纹理贴图、mipmap、过滤方法以及多重纹理等,帮助读者深入理解OpenGL纹理技术。

当前光栅位置:
    当前光栅位置就是开始绘制下一幅位图/图像的屏幕位置。  //左下角
glRasterPos2f(GLfloat x, GLfloat y);
glRasterPos3f(GLfloat x, GLfloat y, GLfloat z);
    1、4版本中,glWindowsPos*()作为glRasterPos*()的替代品,它用窗口坐标指定当前光栅位置,不必把它的x和y坐标通过
模型视图和投影矩阵进行变换,也不会被裁剪出视口区域。更容易混合使用2D文本和3D图形,而不必再各种变换状态之间反复切换。
glGetFloatv(GLenum pname, GLfloat *params);
//使用GL_CURRENT_RASTER_POSITION为pname获取当前光栅位置。
glGetBooleanv(GLenum pname, GLboolean *params);
//使用GL_CURRENT_RASTER_POSITION_VALUE为pname确定当前光栅位置是否有效。
    在设置了光栅位置之后,可以使用glBitmap()绘制位图。
glBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove,
         GLfloat ymove, const GLubyte *bitmap);  //xmove表示位图光栅化之后光栅位置的x增加值
选择位图的颜色:
    glColor*()和glIndex*()设置当前颜色或当前颜色索引,还可以设置状态变量GL_CURRENT_RASTER_COLOR和
GL_CURRENT_INDEX.光栅颜色状态变量是在调用glRasterPos*()时根据当前颜色设置的:
    glColor3f(1.0, 1.0, 1.0);
    glRasterPos3fv(position);
    glColor3f(1.0, 0.0, 0.0);
    glBitmap(...);   //位图颜色是白色的!!!
OpenGL提供了3个基本的函数来操纵图像数据:
    glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format,
                 GLenum type, GLvoid *pixels);
//从帧缓冲区读取一个矩形像素数组,并把数据保存在内存中。
    glDrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
//把内存中保存的一个矩形像素数组写入到帧缓存区中由glRasterPos*()指定的当前位置
    glCopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
//把一个矩形像素数组从帧缓冲区的一个部分复制到另一部分,数据不会写入内存
OpenGL所支持的所有像素存储模式都是由glPixelStore*()函数控制的,一般,可以连续几次调用这个函数,成批设置几个参数值。
glPixelStorei(GLenum pname, GLint param);
pname参数值:
    GL_UNPACK_SWAP_BYTES: 若FALSE,内存中的字符顺序采用OpenGL客户机自身的方案,否则反转字节顺序
    GL_UNPACK_LSB_FIRST:只适合在位图上绘制或读取1位图像,若FALSE(默认),数据位从字节的最高有效位开始提取。
    GL_UNPACK_ROW_LENGTH:
    GL_UNPACK_SKIP_ROWS
    GL_UNPACK_SKIP_ROWS
    GL_UNPACK_ALIGNMENT
    GL_UNPACK_IMAGE_HEIGHT
    GL_UNPACK_SKIP_IMAGES
    像素传输操作:当图像从内存传输到帧缓冲区或者从帧缓冲区传输到内存时,可以更改颜色成分的范围(0.0-1.0),或执行任意的颜色索引或
颜色成分的转换,这种在
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值