OpenGL 紋理

####紋理對象數組

使用函數分配紋理對象
參數n:紋理對象的數量
參數textTures:紋理對象分配的指針
void glGenTextures(GLsizei n,GLuint * textTures);

綁定紋理狀態
參數target:GL_TEXTURE_1D、GL_TEXTURE_2D、GL_TEXTURE_3D
參數texture:須要綁定的紋理對象
void glBindTexture(GLenum target,GLunit texture);

刪除綁定紋理對象
紋理對象 以及 紋理對象指針(指針指向一個無符號整形數組,由紋理對象標識符填充)。
void glDeleteTextures(GLsizei n,GLuint *textures);

測試紋理對象是否有效
若是texture是一個已經分配空間的紋理對象,那麼這個函數會返回GL_TRUE,不然會返回GL_FALSE。
GLboolean glIsTexture(GLuint texture);
複製代碼

####讀取TGA 紋理緩存

參數1:紋理文件名稱
參數2:文件寬度地址
參數3:文件高度地址
參數4:文件組件地址
參數5:文件格式地址
返回值:pBits,指向圖像數據的指針

GLbyte *gltReadTGABits(const char *szFileName, GLint *iWidth, GLint *iHeight, GLint *iComponents, GLenum *eFormat);
複製代碼

####從顏色緩存區內容做爲像素圖直接讀取bash

參數1:x,矩形左下角的窗口座標
參數2:y,矩形左下角的窗口座標
參數3:width,矩形的寬,以像素爲單位 
參數4:height,矩形的⾼,以像素爲單位
參數5:format,OpenGL 的像素格式
參數6:type,解釋參數pixels指向的數據,它告訴OpenGL使⽤緩存區中的什麼數據類型來存儲顏⾊分量
參數7:pixels,指向圖形數據的指針
void glReadPixels(GLint x,GLint y,GLSizei width,GLSizei height, GLenum format, GLenum type,const void * pixels);
複製代碼

####紋理參數函數

參數1:target,指定這些參數將要應用在那個紋理模式上,好比GL_TEXTURE_1D、GL_TEXTURE_2D、GL_TEXTURE_3D。
參數2:pname,指定須要設置那個紋理參數
參數3:param,設定特定的紋理參數的值
glTexParameterf(GLenum target,GLenum pname,GLFloat param);
glTexParameteri(GLenum target,GLenum pname,GLint param);
glTexParameterfv(GLenum target,GLenum pname,GLFloat *param);
glTexParameteriv(GLenum target,GLenum pname,GLint *param);
複製代碼
  • 放大/縮小過濾方式
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
複製代碼
  • S/T軸環繞方式
glTextParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAR_S,GL_CLAMP_TO_EDGE);
glTextParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAR_T,GL_CLAMP_TO_EDGE);
複製代碼

####載入紋理測試

type,GL_TEXTURE_1D、GL_TEXTURE_2D、GL_TEXTURE_3D  
Level :指定所加載的mip貼圖層次。通常咱們都把這個參數設置爲0。
internalformat:每一個紋理單元中存儲多少顏色成分。
width、height、depth 參數:指加載紋理的寬度、高度、深度。
border參數:容許爲紋理貼圖指定一個邊界寬度。
format參數:gltReadTGABits函數中,經過 eFormat 參數返回圖片的顏色格式
type參數:OpenGL 數據存儲方式,通常使用 GL_UNSIGNED_BYTE
data參數:圖片數據指針

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

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

void glTexImage3D(GLenum target,GLint level,GLint internalformat,GLSizei width,GLsizei height,GLsizei depth,GLint border,GLenum format,GLenum type,void *data);
複製代碼
相關文章
相關標籤/搜索