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
上一篇: [Unity基础]导入贴图、模型等资源文件时自动设置参数
下一篇: Django项目部署