前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenGL+Visual Studio 2010开发环境搭建

OpenGL+Visual Studio 2010开发环境搭建

作者头像
卡尔曼和玻尔兹曼谁曼
发布2019-01-22 11:11:42
1.3K0
发布2019-01-22 11:11:42
举报

OpenGL库函数

用于OpenGL标准开发的应用程序运行时需有动态链接库opengl32.dll、glu32.dll,这两个文件在安装Windows NT时已自动装载到C:\Windows\System32目录下。OpenGL的图形库函数封装在动态链接库OpenGL32.DLL中,开发基于OpenGL的应用程序

OpenGL主要由以下库函数组成: OpenGL核心库:包含115个最基本的命令函数,它们都是以”gl“为前缀,可以在任何OpenGL的工作平台上应用。这部分函数用于常规的、核心的图形处理。 OpenGL实用库函数:包含43个函数,以”glu“作为前缀,在任何OpenGL平台上都可以应用。这部分函数通过调用核心库的函数来实现一些复杂的操作。 OpenGL辅助库函数:OpenGL Utility Toolkit (GLUT)包含31个函数,以”aux“作为前缀,但它们不能在所有的OpenGL平台上使用。OpenGL的辅助库函数主要用于窗口管理、输入输出处理以及绘制一些简单的三维形体。 Windows专用库函数(WGL):包含6个函数,以”wgl“作为前缀,用于连接OpenGL和Windows NT。 Win32API函数(WGL):包含5个函数,没有专门的前缀。

开发环境搭建

Windows已经自动OpenGL的库和头文件了,但是为了开发方便,我们最好下载GLUT工具包。 GLUT代表OpenGL应用工具包,英文全称为OpenGL Utility Toolkit,是一个和窗口系统无关的软件包。下载地址:37beta.zip。GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。

将下载的压缩包解开,将得到5个文件(glut.dll, glut32.dll, glut.lib, glut32.lib,glut.h) 1. 把glut.h复制到<VC++ path>\include\gl目录中。(自己新建gl文件夹,比如我的目录是:D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\gl) 2. 把解压得到的glut.lib和glut32.lib放到静态函数库所在文件夹<VC++ path>\lib(我的目录是:D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib)。 3. 把解压得到的glut.dll和glut32.dll放到操作系统目录下面的System32文件夹内。(如果是32位系统拷贝到C:\Windows\System32目录下,如果是64位系统拷贝到C:\Windows\SysWOW64目录下)

我的第一个OpenGL程序

打开Visual Studio 2010,新建一个空的C++控制台程序。在工程上右键→Properties→Linker→Input→Additional Dependencies中添加opengl32.lib glu32.lib glut32.lib三个lib库。 然后新建C++源文件,编写代码:

代码语言:javascript
复制
#include <iostream>
// gl/glut.h包含了GL/GL.h和GL/GLU.h
#include <gl/glut.h>

using namespace std;

/*
* 输出OpenGL信息
*/
void printInfo()
{
    // 返回负责当前OpenGL实现厂商的名字  
    const GLubyte* strVendor = glGetString(GL_VENDOR);
    // 返回一个渲染器标识符,通常是个硬件平台
    const GLubyte* strRenderer = glGetString(GL_RENDERER);
    // 返回当前OpenGL实现的版本号 
    const GLubyte* strGLVersion = glGetString(GL_VERSION);

    cout << "OpenGL实现厂商的名字:" << strVendor << "\n";
    cout << "渲染器标识符:" << strRenderer << "\n";
    cout << "OpenGL版本号:" << strGLVersion << '\n';
}

/*
* 渲染图形
*/
void renderScene()
{
    // 清除,GL_COLOR_BUFFER_BIT表示清除颜色
    glClear(GL_COLOR_BUFFER_BIT); 
    // 设置颜色,三个参数分别为RGB
    glColor3f(0.0f, 1.0f, 1.0f);
    // 绘制矩形
    glRectf(-0.5f, -0.5f, 0.5f, 0.5f); 
    // 保证前面的OpenGL命令立即执行(而不是让它们在缓冲区中等待)
    glFlush(); 
}

int main(int argc, char* argv[])
{
    // 对GLUT进行初始化,这个函数必须在其它的GLUT使用之前调用一次
    glutInit(&argc, (char**)argv);
    // 设置显示方式,其中GLUT_RGB表示使用RGB颜色,GLUT_SINGLE表示使用单缓冲
    glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
    // 设置窗口大小
    glutInitWindowSize(500, 500);
    // 设置窗口在屏幕中的位置
    glutInitWindowPosition(300, 300);
    // 根据前面设置的信息创建窗口
    glutCreateWindow("Hello OpenGL");
    // 自定义函数,打印OpenGL信息
    printInfo();
    // 当进行画图时,传递的函数会被调用
    glutDisplayFunc(&renderScene);
    // 进行一个消息循环,等待窗口关闭后才会返回
    glutMainLoop();
    return 0;
}

运行结果如下:

OpenGL Hello
OpenGL Hello

最后推荐几个网站: https://open.gl/ http://www.swiftless.com/ http://ogldev.atspace.co.uk/ http://openglbook.com/ OpenGL SDK文档 现代 OpenGL 教程

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年11月28日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • OpenGL库函数
  • 开发环境搭建
  • 我的第一个OpenGL程序
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档