您的位置:首页 > 其它

NeHe 课程笔记02

2008-12-08 18:07 344 查看
1. 基本操作:

glTranslatef();

glRotatef();

glBegin(); // GL_TRIANGLES/QUADS
glColor*();
glVertex*();
glEnd();

2. 纹理映射:

Aux_RGBImageRec *auxDIBImageLoad(char *);
// 此结构里包含了sizeX(图像宽度),sizeY(图像高度)和data(图像数据)

glGenTextures();
glBindTexture();
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN/MAG_FILTER,GL_LINEAR);
// MIN,当图片显示小于实际图片时;GL_LINEAR线性滤波就是找最近的两幅图片进行线性叠加;
// 其他还是有,GL_NEAREST,就是使用最接近的图片做纹理。

glTexImage2D(GL_TEXTURE_2D,0,3,TextureImage[0]->sizeX,TextureImage[0]->sizeY,0,GL_RGB,GL_UNSIGNED_BYTE, TextureImage[0]->data);
gluBuild2DMipmaps(GL_TEXTURE_2D, 3, TextureImage[0]->sizeX, TextureImage[0]->sizeY, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]->data);

释放TextureImage[0]->data,释放TextureImage[0]

glBindTexture();
glTexCoord*();glVertex^();

3. 光照:

glEnable(GL_LIGHTING);

glEnable(GL_LIGHTi);
glLightfv(GL_LIGHTi,GL_AMBIENT,light_ambient[i]);
// 同样设置GL_DIFFUSE/GL_POSITION

4. 混合:

glEnable(GL_BLEND);

glColor4f(1.0,1.0,1.0,0.5);
glBlentFunc(GL_SRC_ALPHA,GL_ONE);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: