画图步骤:1. enable state => 2. bind data => 3. glDrawArrays/glDrawElements
1和2对应为:
vertex: glEnableClientState(GL_VERTEX_ARRAY) <-> glVertexPointer color: glEnableClientState(GL_COLOR_ARRAY) <-> glColorPointer texCoord: glEnableClientState(GL_TEXTURE_COORD_ARRAY) <-> glTexCoordPointer texture: glEnable(GL_TEXTURE_2D) <-> glBindTexture
glBlendFunc(srcFactor, dstFactor)
:srcFactor指当前正画的图要乘上的因子,dst指已在frame中的图要乘上的因子 > online tool
用过的几个blendFunc:
- GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA: 图片叠加,本层图片透明的部分显露下层图片
- GL_DST_ALPHA, GL_ZERO: 用下层图片alpha通道来mask本层图片
- GL_DST_COLOR, GL_ZERO: 本层常用灰度图去mask下层图片