OpenGL纹理坐标: 左下角为原点, 向右为正X, 向上为正Y.
OpenGL世界坐标: 向右为正X, 向下为正Y.
DirectX纹理坐标: 向右为正X, 向下为正Y.
使用光源时, 必须设置法线
auxDIBImageLoad
从文件载入位图, 返回指向AUX_RGBImageRec的指针
返回的位图数据, 需要依次释放AUX_RGBImageRec->data和AUX_RGBImageRec
从位图数据创建纹理
{
glGenTextures
生成纹理名字(编号)
glBindTexture
将纹理名字绑定到纹理目标上, 即设定接下来要操作哪个纹理名字, 在这里, 是设定接下来创建的真正纹理到哪个纹理名字上.
glTexParameteri
设定纹理放大(GL_TEXTURE_MIN_FILTER)和缩小(GL_TEXTURE_MAG_FILTER)时的映射方式.
GL_LINEAR, GL_NEAREST, GL_LINEAR_MIPMAP_LINEAR
glTexImage2D
创建真正的纹理
gluBuild2DMipmaps
创建真正的纹理
glEnable(GL_TEXTURE_2D)
启用2D纹理映射
}
纹理映射
{
glBindTexture
将纹理名字绑定到纹理目标上, 即设定接下来要操作哪个纹理名字, 在这里, 是设定要使用哪个纹理名字进行纹理映射.
必须在glBegin和glEnd之外设定使用哪个纹理.
glBegin
glEnd
绘制对象
glTexCoord2f
glVertex3f
纹理坐标点与顶点坐标点一一对应. 纹理坐标原点在左下角, 向右为正x, 向上为正y. 与opengl的x,y坐标系不同.
glNormal3f
设置平面的法线
使用光源的时候, 必须设置法线, 否则什么怪事都会发生
}
创建光源
{
glLightfv
设置光源属性
glEnable(GL_LIGHT1)
启用1号光源
glDisable(GL_LIGHTING)/glEnable(GL_LIGHTING)
禁用光源/启用光源
}