文档章节

opengl学习之一:opengl环境搭建

生命奇迹泉
 生命奇迹泉
发布于 2016/04/20 15:41
字数 1101
阅读 31
收藏 0

一.VS2015中配置
1.复制库文件
将.h文件拷贝到G:\Softwore\VS2015\VC\include\GL目录中(没有GL目录就自己创建一个,这里的具体路径视电脑上VS2015安装的位置而定)
将.lib文件拷贝到G:\Softwore\VS2015\VC\lib目录中,将.dll文件拷贝到C:\Windows\System32目录中
备注:若系统为X64,则建议将.dll文件向C:\Windows\SysWOW64目录中也拷贝一份

2.配置环境
先创建一个Win32控制台项目,配置项目属性:
(1)项目——项目属性——配置属性——C/C++— —预处理器——预处理器定义,添加
GLUT_BUILDING_LIB

(2)项目——项目属性——配置属性——链接器——输入——附加依赖项,添加
glut32.lib opengl32.lib glu32.lib glaux.lib

3.测试
创建C++控制台应用程序
输入如下代码:

#include <gl/glut.h>//GLUT的头文件
void display()
{
    glClear(GL_COLOR_BUFFER_BIT);//清除。GL_COLOR_BUFFER_BIT表示清除颜色,glClear函数还可以清除其它的东西
    glBegin(GL_POLYGON);
    glVertex2f(-0.5, -0.5);
    glVertex2f(-0.5, 0.5);
    glVertex2f(0.5, 0.5);
    glVertex2f(0.5, -0.5);
    glEnd();
    glFlush();//保证前面的OpenGL命令立即执行(而不是让它们在缓冲区中等待)
}

void main(int argc, char** argv)
{
    glutInit(&argc, argv);//对GLUT进行初始化,这个函数必须在其它的GLUT使用之前调用一次。其格式比较死板,一般照抄这句glutInit(&argc, argv)就可以了。
    glutCreateWindow("simple");//根据前面设置的信息创建窗口。参数将被作为窗口的标题。注意:窗口被创建后,并不立即显示到屏幕上。需要调用glutMainLoop才能看到窗口。
    glutDisplayFunc(display);//设置一个函数,当需要进行画图时,这个函数就会被调用。
    glutMainLoop();//进行一个消息循环。(这个可能初学者也不太明白,现在只需要知道这个函数可以显示窗口,并且等待窗口关闭后才会返回,这就足够了。)
}

运行结果如图:
运行结果

二.VC++ 6.0

1.安装GLUT工具包
GLUT下载地址:(大小约为150k)
http://www.opengl.org/resources/libraries/glut/glut_downloads.php/glutdlls37beta.zip

Windows环境下安装GLUT的步骤:
1、将下载的压缩包解开,将得到5个文件(glut.h glut.lib glut32.lib glut.dll glut32.dll)
2、把解压得到的glut.h复制到VC的“include\gl”文件夹下。
3、把解压得到的glut.lib和glut32.lib复制到静态函数库所在文件夹 “VC\lib”文件夹。
4、把解压得到的glut.dll和glut32.dll复制到操作系统目录下面的system32文件夹内。(典型的位置为:C:\Windows\System32)
2.建立一个OpenGL工程
1、启动VC++6.0程序
2、选择File->New->Project,然后选择Win32 Console Application,选择一个工程名称并设置好工程所在位置,然后按OK。在弹出的对话框右边点Empty project,选择Finish。
3、然后向该工程添加一个代码文件,文件扩展名为.c(注意用.c来作为文件结尾。)
添加代码文件的方法:
方法一:添加已经存在的.c文件。在FileView 管理器中,选择Source Files文件夹—右击—Add Files to Folder…。或者从“工程”菜单—“增加到工程”—“文件”。
方法二:添加不存在的.c文件。从“文件”菜单—“新建”—选择“文件”选项卡—C++ Source File,将右边的“添加到工程”打勾,在“文件名”处输入扩展名为.c的文件名(记住一定输入扩展名 .c !!!)—“确定”,然后在.c文件中输入代码。
3.编译连接。在菜单“Build”中选择Compile或Build。
4.执行程序。在菜单“Build”中选择Execute执行。
(说明:以上创建的是一个Win32控制台程序,包含一个控制窗口和OpenGL窗口。如果只需要一个OpenGL窗口的应用程序,则将上面的第三步中的2小步改为:
2、选择File->New->Project,然后选择Win32 Application,选择一个工程名称并设置好工程所在位置,然后按OK。在弹出的对话框右边点Empty project,选择Finish。
同时,在第四步编译连接前,要先进行编译和连接选项的设置:
选择 Project -> settings ->选择 Link 选项卡:
从 Category(分类)中选择 Output(输出),在 Entry-point synmbol(入口点)文本框中键入 mainCRTStartup ;
从 Category(分类)中选择 “常规”,在Object/library modules(对象/库模式)一栏中添加: opengl32.lib glu32.lib glut32.lib这三个OpenGL的链接库。)

本文转载自:http://blog.csdn.net/shengmingqijiquan/article/details/51020499

生命奇迹泉
粉丝 1
博文 42
码字总数 0
作品 0
海淀
程序员
私信 提问
图片和图形之用OpenGL ES显示图形(9)

原文 概要 Android框架提供了大量用于创建有吸引力的功能性图形用户界面的标准工具。但是,如果您想要更多地控制应用程序在屏幕上绘制的内容,或者冒险进入三维图形,则需要使用其他工具。A...

lichong951
2018/05/26
0
0
ubuntu12.04下安装opengl

前言 OpenGL 是一套由SGI公司发展出来的绘图函式库,它是一组 C 语言的函式,用于 2D 与 3D 图形应用程式的开发上。 OpenGL 让程式开发人员不需要考虑到各种显示卡底层运作是否相同的问题,硬...

guoliang
2014/02/27
0
0
OpenGL学习入门之VS2010环境配置 [转]

OpenGL开发环境简介    基于OpenGL标准开发的应用程序运行时需有动态链接库OpenGL32.DLL、Glu32.DLL,这两个文件在安装Windows NT时已自动装载到C:WINDOWSSYSTEM32目录下(这里假定用户将W...

IMGTN
2012/07/24
0
0
OpenGL ES Programming Guide for iOS 第一章

关于OpenGL ES Open Graphics Library(OpenGL)用于二维及三维数据的可视化。它是一种多用途的开放标准图形库,支持二维和三维数位内容创作,机械和建筑设计,虚拟样,飞行模拟,游戏,以及更...

长平狐
2012/10/08
459
0
【转载】OpenGL C#绘图环境配置

OpenGL简介 OpenGL作为一种图形学编程接口已经非常流行, 虽然在大型游戏方面DirectX有一定的市场占有率, 但由于OpenGL的开放性,可移植性等优点,OpenGL已经成了一种图形学方面的标准。 由...

venorie
2013/06/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

阿里云POLARDB如何助力轻松筹打造5亿用户信赖的大病筹款平台?

轻松筹首创了“大病救助”模式,帮助了众多病患在第一时间解決了医疗资金等问题,为了从源头解决了医疗资金问题。而在轻松筹这样全球5.5亿用户信赖的大病筹款平台的背后,是日益增长的各种数...

阿里云云栖社区
29分钟前
4
0
Confluence 6 在升级过程中查看合并日志

为了监控升级的过程,你应该查看 application log 日志中的输出。 通常日志经常将会显示多个日志实例,这个实例是定义在日志的 INFO 级别的,通常格式如下: WikiToXhtmlMigrationThread-n -...

honeymoose
30分钟前
3
0
git diff 文件对比

git diff filepath 工作区与暂存区比较 git diff HEAD filepath 工作区与HEAD ( 当前工作分支) 比较 git diff --staged 或 --cached filepath 暂存区与HEAD比较 git diff branchName filepa......

李佳顺
30分钟前
1
0
spring mvc 定制化配置

spring mvc 自定义配置 1.实现某些接口,然后让上面的类加载进去. class MyHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver { @Override public boolean......

最爱肉肉
32分钟前
2
0
OSG_采样像机的内容如果不显示到窗口上

cameraLight->setRenderTargetImplementation(Camera::FRAME_BUFFER_OBJECT);// 这句使内容不渲染到屏幕上cameraLight->setRenderOrder(Camera::PRE_RENDER); 1.setRenderTargetImplement......

洛克人杰洛
36分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部