opengl 常见接口

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lf12345678910/article/details/73693156

opengl 官网:http://www.opengl.org

void myDisplaly(void){

glClear(GL_COLOR_BUFFER_BIT);

glRectf(-0.5f, -0.5f, 0.5f, 0.5f);

glFlush();

}

int main(int argc, char argv[]){

glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(400, 400);
glutCreateWindow("class1 Opengl program");
glutDisplayFunc(&myDisplay);
//glutIdleFunc(&myIdle);
glutMainLoop();
return 0;

}

glutInit :初始化

glutInitDisplayMode :设置显示方式(参数:GLUT_RGB :使用RGB颜色  GLUT_ :INDEX: 使用索引颜色  GLUT_SINGLE: 使用单缓冲 GLUT_DOUBLE: 使用双缓冲)

一、点

指定顶点函数:

glVertex*   指定顶点的函数必须包含在glBegin之前 glEnd之后

glPointSize 指定点的宽度

glBegin :指定使用点 连接成?图形   :GL_POINTS :点    GL_LINES: 直线    GL_POLYGON: 多边形   GL_TRIANGLES: 三角形

二、直线

指定宽度:

glLineWidth

画虚线:

glEnable(GL_LINE_STIPPLE) 启动虚线模式 glDisable 关闭 

glLineStipple :设置虚线的样式

三、多边形

glPolygonMode() : 多边形两面的绘制方式: (GL_FRONT,GL_FILL): 设置正面为填充方式   (GL_BACK,GL_LINE):设置反面为边缘绘制方式                        (GL_FRONT_AND_BACK,GL_POINT) : 设置两面均为顶点绘制方式

绘制时区别“正反面”:

glFrontFace(): GL_CCW : 设置CCW方向(逆时针) 为“正面”   GL_CW :设置CW方向(顺时针) 为“正面” 

glEnable(GL_CULL_FACE) :启动剔除功能,glDisable 关闭

glCullFace() : 正反面

glEnable(GL_POLYGON_STIPPLE): 启动镂空模式

glPolygonStipple() : 设置镂空的样式

不同顶点的着色模式:

glShadeModel() : GL_SMOOTH: 平滑方式,默认方式   GL_FLAT:单色方式

四、观察物体变换:矩阵变换

模型变换和视图变换:

glMatrixMode() : GL_MODELVIEW :设置为模型视图矩阵

glLoadIndentity():  设置当前矩阵为 单位矩阵

投影变换:透视投影和正投影

glMatrixMode() : GL_PROJECTION :设置为投影矩阵

glLoadIndentity():  设置当前矩阵为 单位矩阵

gluPerspective() :设置当前的可视空间为透视投影空间

glOrtho() : 设置当前的可视空间为正投影空间

视口变化:

glViewport() :定义视口,即屏幕的哪个区域

五、深度测试:

glEnable() :GL_DEPTH_TEST: 启动深度测试

gluLookAt() :设置观察点

六、光照效果:

光照模型:

光照系统:光源、材质、光照环境

法线向量:glNormal*() : 指定法线向量

控制光源:

glEnable() :启动光源  GL_LIGHT0~GL_LIGHT7   共8个光源

glLight*() :设置光源属性

GL_AMBIENT :该光的源发出光

GL_DIFFUSE  :漫发射

GL_SPECULAR :镜面发射

GL_POSITION :设置光源所在的位置

控制材质:

glMaterial() :设置材质属性

选择光照模型(环境光照):

glLightModel*() :

glEnable(GL_LILGHTING); 打开光照处理功能

七、颜色混合

glEnable(GL_BLEND); 启动opengl的混合功能

glBlendFunc();  设置源、目标因子

glDepthMask();  GL_FALSE: 设置深度缓冲为只读形式   GL_TRUE:深度缓冲设置为可读可写形式

八、图像保存

“矢量图”   “像素图”

九、像素操作:

glReadPixels:

glCopyPixels

十、纹理

glEnable(GL_TEXTURE_2D); 启动二维纹理

glTexImage2D : 载入一个二维的纹理

glMatrixMode(GL_TEXTURE); 切换到纹理矩阵

glBindTexture :指定 使用哪个纹理对象

glTexImage*(): 载入纹理、指定纹理像素

glTexParameter*(); 设置纹理参数

glTexCoord*()  : 纹理坐标

使用纹理对象        使用显示列表

glGenTextures 分配纹理对象

glDeleteTextures 销毁纹理对象

猜你喜欢

转载自blog.csdn.net/lf12345678910/article/details/73693156