投影方式
存儲(chǔ)著色器
常見(jiàn)圖元連接方式
使用最多的是三角形
分類(lèi)如下圖所示
三角形環(huán)繞方式
- OpenGL中默認(rèn)具有
逆時(shí)針
環(huán)繞方向的多邊形為正面
- 可以通過(guò)代碼修改默認(rèn)的正面
glFrontFace(GL_CW);
GL_CW:告訴OpenGL 順時(shí)針環(huán)繞的多邊形為正?面;
GL_CCW:告訴OpenGL 逆時(shí)針環(huán)繞的多邊形為正?面
三角形帶的優(yōu)勢(shì)
- 第一個(gè)三角形用了3個(gè)頂點(diǎn)之后,對(duì)于往后的三角形赖淤,每次只需再指定一個(gè)頂點(diǎn)蜀漆,即可構(gòu)成三角形。當(dāng)需要繪制大量三角形時(shí)咱旱,一是可以復(fù)用确丢,而是可以節(jié)省存儲(chǔ)空間。
- 提高運(yùn)算性能和節(jié)省寬帶吐限,更少的頂點(diǎn)使數(shù)據(jù)從內(nèi)存?zhèn)鬏數(shù)巾旤c(diǎn)著色器的速度更快鲜侥,頂點(diǎn)著色器中頂點(diǎn)處理的次數(shù)也更少了。
工具類(lèi) GLBatch
參數(shù)1:圖元
參數(shù)2:頂點(diǎn)數(shù)
參數(shù)3:?組或者2組紋理理坐標(biāo)(可選)
void GLBatch::Begain(GLeunm primitive,GLuint nVerts,GLuint nTexttureUnints = 0);
//復(fù)制頂點(diǎn)數(shù)據(jù)(?個(gè)由3分量量x,y,z頂點(diǎn)組成的數(shù)組) void GLBatch::CopyVerterxData3f(GLfloat *vVerts);
//復(fù)制表?法線(xiàn)數(shù)據(jù)
void GLBatch::CopyNormalDataf(GLfloat *vNorms);
//復(fù)制顏?數(shù)據(jù)
void GLBatch::CopyColorData4f(GLfloat *vColors);
//復(fù)制紋理坐標(biāo)數(shù)據(jù)
void GLBatch::CopyTexCoordData2f(GLFloat *vTextCoords, GLuint uiTextureLayer);
//結(jié)束數(shù)據(jù)復(fù)制
void GLBatch::End(void);
//繪制圖形
void GLBatch::Draw(void)