OpenGL.从环境搭建到简单动画的实现

本文介绍了如何在Visual Studio 2015中配置OpenGL环境,包括所需的库文件放置、附加依赖项设置等。接着,通过一个简单的示例程序展示了OpenGL的基本结构,包括main函数、display函数、reshape函数等,以及如何利用这些函数实现动画效果。最后,讨论了OpenGL动画的关键——moveDisplay函数,以及glutTimerFunc在动画循环中的作用。
摘要由CSDN通过智能技术生成
  • 计算机图形学
  • OpenGL的使用

首先给VS2015配置OpenGL环境就花了很大的力气

然而到最后发现我一直改的都是以前安装遗留的vs2013

使用的缺失vs2015

泪奔。。。

配置OpenGL环境

  • vs2015 + OpenGL
  • 理论上来讲vs的各个版本之间对OpenGL的配置差异不大
所需材料
配置
  • 所有的.h放在vs目录/VC/include/GL文件夹下,一般没有GL则需要自己新建。
  • 所有的.lib放在vs目录/VC/lib文件夹下
  • 所有的.dll在C:\Windows\System32和C:\Windows\syswow64各放一份。已经存在的话跳过。(不过估计替换也没什么问题…不保证)
  • 打开vs在C++下创建一个空项目。右击项目-属性-连接器(Linker)-输入(Input)-附加依赖项(Additional Dependencies)。在后面的下拉框中选择<编辑>。每行一个添加上glaux.lib、glu32.lib、opengl32.lib、glut32.lib、glut.lib。
  • 搞定
示例程序
#include <gl/glut.h>

void display(void)

{
    /* clear window */
    glClear(GL_COLOR_BUFFER_BIT);

    /* draw unit square polygon */
    glBegin(GL_POLYGON);
    glVertex2f(-0.5, -0.5);
    glVertex2f(-0.5, 0.5);
    glVertex2f(0.5, 0.5);
    glVertex2f(0.5, -0.5);
    glEnd();

    /* flush GL buffers */
    glFlush();
}


void init()
{

    /* set clear color to black */

    /*  glClearColor (0.0, 0.0, 0.0, 0.0); */
    /* set fill  color to white */

    /*  glColor3f(1.0, 1.0, 1.0); */

    /* set up standard orthogonal view with clipping */
    /* box as cube of side 2 centered at origin */
    /* This is default view and these statement could be removed */

    /* glMatrixMode (GL_PROJECTION);
    glLoadIdentity ();
    glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);  */
}

int main(int argc, char** argv)
{

    /* Initialize mode and open a window in upper left corner of screen */
    /* Window title is name of program (arg[0]) */

    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize(500, 500);
    glutInitWindowPosition(0, 0);
    glutCreateWindow("simple");
    glutDisplayFunc(display);
    init();
    glutMainLoop();
}
  • 成功者可看到一个白色的正方形作为奖励
OpenGL的结构
  • OpenGL采用C的语法和风格,不过既然是建立在C++下自然也可以使用面向对象的特点,但OpenGL本身是不具备面向对象的特点。你喜欢也未尝不可。
  • 只需要引入头文件glut.h即可。glut.h中又引入了gl.h和glu.h。
  • 很多函数都是以gl、glu、glut开头的
#include<GL/glut.h>//引入头文件。

void display()//显示回调函数。描述绘制的对象。
{
    glClear(GL_COLOR_BUFFER_BIT);//CLear缓存 接受GLbirdield参数来指示。GL_COLO
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值