OpenGL常用函数

OpenGL官方在线帮助文档(英文)
https://www.khronos.org/registry/OpenGL-Refpages/es2.0/
首先说明下OpenGL的常用库:glut是实用工具库,gl是核心库,glu是对gl的部分封装
1.
void glutPostRedisplay(void);glutPostRedisplay标记当前窗口需要重新绘制。通过glutMainLoop下一次循环时,窗口显示将被回调以重新显示窗口的正常面板。多次调用glutPostRedisplay,在下一个显示回调只产生单一的重新显示回调。
2.
void glutSwapBuffers(void);交换两个缓冲区指针
3.
void glFlush( void );glFlush是OpenGL中的函数,用于强制刷新缓冲,保证绘图命令将被执行,而不是存储在缓冲区[2] 中等待其他的OpenGL命令。
4.显示

glutDisplayFunc(draw);
glutIdleFunc(draw);

glutDisplayFunc设置需要显示的画面函数
glutIdleFunc刷新显示
5.定时
glutPostRedisplay定时器函数,控制帧率,防止刷新过快
glutTimerFunc固定时间更新

glutTimerFunc(16, OnTimer, 1);//固定每16ms更新画面一次(FPS大约60)

void OnTimer(int value)
{
    //更新,例如如下操作
    if (rotate1) {  
        angle1 += 0.03;  
        rtsUpdateObjectShape(object);  
    }  
    if (rotate2) {  
        angle2 += 0.03;  
        rtsUpdateObjectShape(object2);  
    }  
    if (angle1 >= 360.0) {  
        angle1 = 0.0;  
    }  
    if (angle2 >= 360.0) {  
        angle2 = 0.0;  
    } 
   //
   glutPostRedisplay();
   glutTimerFunc(16, OnTimer, 1);
}

6.glut绘制

//以下所有函数中,radius表示球体的半径,slices表示球体纵向分割的数目(经线),主要是设置绘制的细密度,stacks表示球体横向分割的数目(纬线),创建了绘制中心在模型坐标原点,半径为radius的球体
void glutWireSphere(GLdouble radius, GLint slices, GLint stacks); //网状球
void glutSolidSphere(GLdouble radius, GLint slices, GLint stacks); //实心球
void glutWireCube(GLdouble size); //网状立方体
void glutSolidCube(GLdouble size); //实心立方体
void glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings); //网状圆环
void glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings); //实心圆环
void glutWireCone(GLdouble radius, GLdouble height, GLint slices, GLint stacks); //网状圆锥体
void glutSolidCone(GLdouble radius, GLdouble height, GLint slices, GLint stacks); //实心圆锥体
void glutWireTeapot(GLdouble size); //网状茶壶
void glutSolidTeapot(GLdouble size); //实心茶壶
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值