Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >OpenGL+Visual Studio 2010开发环境搭建

OpenGL+Visual Studio 2010开发环境搭建

作者头像
卡尔曼和玻尔兹曼谁曼
发布于 2019-01-22 03:11:42
发布于 2019-01-22 03:11:42
1.4K00
代码可运行
举报
运行总次数:0
代码可运行

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
代码运行次数:0
运行
AI代码解释
复制
#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;
}

运行结果如下:

最后推荐几个网站: 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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
机械版CG 实验1 像素点的生成
注:本博客实验教程的配套教材为《计算机图形学》(徐文鹏编)已由机械工业出版社于2009年2月出版。
步行者08
2018/10/09
8720
【C++】OpenGL:创建线段和多边形示例
首先,将main函数中的//glutDisplayFunc(lines); //传递需要勾画的函数取消注释,这是调用线段的操作;
DevFrank
2024/07/24
1080
【C++】OpenGL:创建线段和多边形示例
实验8 OpenGL交互
(1) 运行示范实验代码1,掌握程序鼠标交互方法,尝试为其添加键盘与菜单控制,实现同样功能;
步行者08
2018/10/09
1.2K0
win7 64位系统,vs2010下配置OpenGL开发环境
http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
流川疯
2019/01/18
9810
OpenGL入门
OpenGL(全写Open Graphics Library)是指定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口。它用于三维图像(二维的亦可),是一个功能强大,调用方便的底层图形库。 OpenGL™ 是行业领域中最为广泛接纳的 2D/3D 图形 API,其自诞生至今已催生了各种计算机平台及设备上的数千优秀应用程序。OpenGL™ 是独立于视窗操作系统或其它操作系统的,亦是网络透明的。在包含CAD、内容创作、能源、娱乐、游戏开发、制造业、制药业及虚拟现实等行业领域中,OpenGL™ 帮助程序员实现在 PC、工作站、超级计算机等硬件设备上的高性能、极具冲击力的高视觉表现力图形处理软件的开发。
里克贝斯
2021/05/21
1K0
OpenGL入门
VC6下OpenGL 开发环境的构建外加一个简单的二维网络棋盘绘制示例
一、安装GLUT 工具包 GLUT 不是OpenGL 所必须的,但它会给我们的学习带来一定的方便,推荐安装。 Windows 环境下的GLUT 本地下载地址:glut-install.zip(大小约为150k)。 也可直接去官方网站下载:http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip Windows 环境下安装GLUT 的步骤: 1)将下载的压缩包解压,得到5 个文件放到以下三个指定位置: 2)glut.h 放到GL 文件夹
Zoctopus
2018/06/04
1.1K0
实验3 OpenGL几何变换
(1)阅读实验原理,运行示范实验代码,掌握OpenGL程序平移、旋转、缩放变换的方法;
步行者08
2018/10/09
1.3K0
OpenGL初学--环境配置和视景体初步接触
本学期选了门选修计算机图形学,写openGL时暂时没看到啥方便的文档,顺带记一点笔记,平台是Visual studio 2015 OpenGL安装和配置 GLUT3.7下载地址: http://www.opengl.org/resources/librarie... 这里我是在windows平台下用vs开发工具 点击Other GLUT Information/Downloads的Pre-compiled Win32 for Intel GLUT 3.7 DLLs for Windows 95 & NT 下
NaOH
2018/05/29
7250
实验9 OpenGL光照
了解掌握OpenGL程序的光照与材质,能正确使用光源与材质函数设置所需的绘制效果。
步行者08
2020/10/27
5310
实验9 OpenGL光照
现代OpenGL(一):我的第一个OpenGL程序
OpenGL是一种应用程序编程接口(Application Programming Interface,API)它是一种可以对图形硬件设备特征进行访问的软件库。 在OpenGL 3.0以前的版本或者使用兼容模式的OpenGL环境,OpenGL包含一个固定管线(fixed-function pipeline),它可以在不使用着色器的环境下处理几何与像素数据。我们看到的glBegin()、glRectf()以及glEnd()这些函数都是以前固定管线模式中所使用的API函数。 从3.1版本开始,固定管线从核心模式中去除,因此我们必须使用着色器来完成工作。现代OpenGL渲染管线严重依赖着色器来处理传入的数据,我们一般会使用GLSL(OpenGL Shading Language)编写着色器程序,GLSL语法类似于C语言,GLSL编译以后运行在GPU端。
卡尔曼和玻尔兹曼谁曼
2019/01/22
2.2K0
现代OpenGL(一):我的第一个OpenGL程序
python+opengl显示三维模型小程序 原
已经安装python的系统会自动安装pip,所以只需要一句pip命令就可以安装opengl了,命令如下:
晓歌
2018/08/15
4.3K0
python+opengl显示三维模型小程序
                                                                            原
第4章代码-图形几何变换
目录 4.4 编程实例——三角形与矩形变换及动画 4.4.1 自定义矩阵变换实例——三角形变换 4.4.2 OpenGL几何变换实例——矩形变换 4.4.3 变换应用实例——正方形旋转动画 4.4
步行者08
2020/09/19
6940
VS 2010 OpenGL 配置与实例开发
首先参考了网上的安装配置环境部分:http://blog.csdn.net/Ididcan/article/details/4490797
用户4645519
2020/09/07
1K0
VS 2010 OpenGL 配置与实例开发
实验1 OpenGL初识
常用的程序设计语言,如C、C++、Pascal、Fortran和Java等,都支持OpenGL的开发。这里只讨论C版本下OpenGL的语法。 OpenGL基本函数均使用gl作为函数名的前缀,如glClearColor();实用函数则使用glu作为函数名的前缀,如gluSphere()。OpenGL基本常量的名字以GL_开头,如GL_LINE_LOOP;实用常量的名字以GLU_开头,如GLU_FILL。一些函数如glColor*()(定义颜色值),函数名后可以接不同的后缀以支持不同的数据类型和格式。如glColor3b(…)、glColor3d(…)、glColor3f(…)和glColor3bv(…)等,这几个函数在功能上是相似的,只是适用于不同的数据类型和格式,其中3表示该函数带有三个参数,b、d、f分别表示参数的类型是字节型、双精度浮点型和单精度浮点型,v则表示这些参数是以向量形式出现的。 为便于移植,OpenGL定义了一些自己的数据类型,如GLfloat、GLvoid,它们其实就是C语言中的float和void。在gl.h文件中可以看到以下定义:
步行者08
2020/05/21
1K0
实验1 OpenGL初识
Windows下的OpenGL编程步骤简单介绍详见课程实验教学博客-实验准备安装GLUT包与创建工程:
步行者08
2018/10/09
7620
opengl视图矩阵_心形线四个图像
在学习之前,我们要开始配置Opengl,我这里使用的是VS2010,语言是C++。
全栈程序员站长
2022/11/03
4270
【C++】OpenGL:键盘交互示例
DevFrank
2024/07/24
1140
【C++】OpenGL:键盘交互示例
【C++】OpenGL:freeglut环境配置与基础示例
FreeGLUT(Free OpenGL Utility Toolkit)是一个开源的替代性GLUT库,它提供了类似于GLUT的功能,并在其基础上进行了扩展和改进。FreeGLUT的目标是提供一个跨平台、功能丰富且易于使用的工具库,用于OpenGL程序开发。
DevFrank
2024/07/24
4320
Python 之 OpenGL程序环境
        首先还是下载PyOpenGL包:http://pypi.python.org/pypi/PyOpenGL/3.0.2
py3study
2020/01/07
7310
Python 之 OpenGL程序环境
Ubuntu 16.04 安装OpenGL
最近忙于paper,就没有写博客;然后开始和华为合作一个项目,学习如何使用openGL 转自:https://blog.csdn.net/huangkangying/article/details/82022177
用户1148523
2019/05/29
2.3K0
相关推荐
机械版CG 实验1 像素点的生成
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验