欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

OpenGL 纹理映射(贴图) 学习

程序员文章站 2022-06-11 10:45:56
...




GLuint m_glTexture;//整型
glGenTextures(1, &m_glTexture);//生成一个纹理,存储在m_glTexture
glBindTexture(GL_TEXTURE_2D/GL_TEXTURE_CUBE_MAP, m_glTexture);//绑定纹理,告诉OpenGL下面代码中对2D纹理的任何设置都是针对m_glTexture
glTexImage2D(GLEnum target , GLuint level , GLint internalFormat , GLsizei width ,  GLsizei height ,  GLint border ,  GLenum format ,  GLenum type , GLvoid * texels);/*
GL_TEXTURE_2D
一种分辨率则level为0
指定了哪些成分(RGBA,深度亮度或者强度)被选定为图像的纹理单元
边框的宽度,可以是0 或者1
纹理图像的数据格式

纹理图像的数据类型
纹理图像本身及他的边框,保存了纹理图像的内参块地址
用data中设置的新数据替换纹理的一个区域
*/

glCopyTexImage2D(GLenum target , GLint level , GLint interna,Format , GLint x, GLint y, GLsizei width , GLsizei height , GLint border);//该函数创建一个2d纹理,像素从当前的GL_READ_BUFFER中读取。

glTexSubImage2D//替换纹理图像的全部或一部分
glCopyTexSubImage2D//可以冲帧缓冲区考出一部分数据作为某纹理的一部分。
gluScaleImage(GL_RGB, width, height, GL_UNSIGNED_BYTE, pixels, new_width, new_height, GL_UNSIGNED_BYTE, new_pixels);//像素缩放
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);//设置纹理参数glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE);//glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
gluPerspective和gluLookAt设置“视角”和“观察点”的相关参数。
glGenerateMipmap(GL_TEXTURE_CUBE_MAP);
glEnable(GL_TEXTURE_2D)//开启2D纹理功能,使用glDisable(GL_TEXTURE_2D)关闭纹理,默认纹理是关闭的。
 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);// 清除屏幕 

学习自:
http://www.bagualu.net/wordpress/archives/2405
https://blog.csdn.net/dcrmg/article/details/53180369


相关标签: OpenGL 纹理贴图