1. 分配紋理對象
//參數(shù)1:紋理對象個數(shù)医寿,參數(shù)2:紋理對象指針
glGenTextures(1, &textureID);
2.綁定紋理狀態(tài)
// 參數(shù)1:紋理狀態(tài)2D 參數(shù)2:紋理對象
glBindTexture(GL_TEXTURE_2D, textureID);
3.0 將TGA文件加載為2D紋理访敌。
//參數(shù)1:紋理文件名稱
//參數(shù)2&參數(shù)3:需要縮小&放大的過濾器
//參數(shù)4:紋理坐標(biāo)環(huán)繞模式
LoadTGATexture("stone.tga", GL_LINEAR_MIPMAP_NEAREST, GL_LINEAR, GL_CLAMP_TO_EDGE);
3.1讀紋理位牡属,讀取像素
//參數(shù)1:紋理文件名稱
//參數(shù)2:文件寬度地址
//參數(shù)3:文件高度地址
//參數(shù)4:文件組件地址
//參數(shù)5:文件格式地址
//返回值:pBits,指向圖像數(shù)據(jù)的指針
pBits = gltReadTGABits(szFileName, &nWidth, &nHeight, &nComponents, &eFormat);
if(pBits == NULL)
return false;
3.2 設(shè)置紋理參數(shù)
//參數(shù)1:紋理維度
//參數(shù)2:為S/T坐標(biāo)設(shè)置模式
//參數(shù)3:wrapMode,環(huán)繞模式
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, wrapMode);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, wrapMode);
//參數(shù)1:紋理維度
//參數(shù)2:線性過濾
//參數(shù)3:wrapMode,環(huán)繞模式
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, minFilter);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, magFilter);
3.3 載入紋理
//參數(shù)1:紋理維度
//參數(shù)2:mip貼圖層次
//參數(shù)3:紋理單元存儲的顏色成分(從讀取像素圖是獲得)
//參數(shù)4:加載紋理寬
//參數(shù)5:加載紋理高
//參數(shù)6:加載紋理的深度
//參數(shù)7:像素數(shù)據(jù)的數(shù)據(jù)類型(GL_UNSIGNED_BYTE钝腺,每個顏色分量都是一個8位無符號整數(shù))
//參數(shù)8:指向紋理圖像數(shù)據(jù)的指針
glTexImage2D(GL_TEXTURE_2D, 0, nComponents, nWidth, nHeight, 0,
eFormat, GL_UNSIGNED_BYTE, pBits);
3.4 加載Mip,紋理生成所有的Mip層
//參數(shù):GL_TEXTURE_1D躏啰、GL_TEXTURE_2D婶博、GL_TEXTURE_3D
glGenerateMipmap(GL_TEXTURE_2D);
代碼地址:https://gitee.com/xgkp/basic_texture_60.git