您的位置:首页 > 运维架构

Learning OpenGL(1) 初识OpenGL与开发环境配置

2013-11-12 12:23 281 查看
下面这个系列的文章将会跟着 点击打开链接 这个教程学习一下有关OpenGL 的内容,记录一下其中的有关内容。

第一篇文章: 初识OpenGL与开发环境配置

参考文章:http://blog.csdn.net/joeblackzqq/article/details/6956959

一、初识OpenGL

OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性。
1、与C语言紧密结合。
OpenGL命令最初就是用C语言函数来进行描述的,对于学习过C语言的人来讲,OpenGL是容易理解和学习的。如果你曾经接触过TC的graphics.h,你会发现,使用OpenGL作图甚至比TC更加简单。
2、强大的可移植性。
微软的Direct3D虽然也是十分优秀的图形API,但它只用于Windows系统(现在还要加上一个XBOX游戏机)。而OpenGL不仅用于 Windows,还可以用于Unix/Linux等其它系统,它甚至在大型计算机、各种专业计算机(如:医疗用显示设备)上都有应用。并且,OpenGL 的基本命令都做到了硬件无关,甚至是平台无关。
3、高性能的图形渲染。
OpenGL是一个工业标准,它的技术紧跟时代,现今各个显卡厂家无一不对OpenGL提供强力支持,激烈的竞争中使得OpenGL性能一直领先。
总之,OpenGL是一个很NB的图形软件接口。至于究竟有多NB,去看看DOOM3和QUAKE4等专业游戏就知道了。
OpenGL官方网站(英文)
http://www.opengl.org/

二、开发环境的配置

我是在win7 64位下,采用vs2010 IDE 作为开发工具,下面介绍如何配置OpenGL的开发环境。

1、下载安装GLUT工具包

Windows环境下的GLUT下载地址:(大小约为150k) http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
解压得到下面的五个文件:



2、分别把这个五个文件放到指定的位置:

(1)首先是glut.h 这个文件。

找到你VS2010的安装目录,然后在 进入 VC/include 目录,看看有木有GL这个文件夹,如果没有就新建一个,把glut.h
这个文件拷贝到GL这个文件夹下。

(2)然后是glut.lib和glut32.lib。

同样是在VS2010的安装目录,进入
VC/lib 目录,把这两个文件拷贝进去就可以了。

(3)最后是glut.dll和glut32.dll。这两个文件的位置就要注意了。

如果是32位的系统,进入C盘的Windows目录下;那么要将这两个文件拷贝到System32这个目录下。

如果是64位的系统,进入C盘的Windows目录下;那么要将这两个文件拷贝到SysWOW64这个目录下。

如下图:



3、至此,环境就配置好了。下面在VS2010中创建一个简单程序,同时配置一下VS2010中的相关的参数。

(1) 新建->项目->win32控制台应用程序。
(2)输入项目名:simpleGL,其他默认即可。
(3)输入源代码:
#include "stdafx.h"
#include <gl/glut.h>
#include <stdio.h>
#include <time.h>

// 太阳、地球和月亮
// 假设每个月都是12天
// 一年12个月,共是360天
static int day = 200; // day的变化:从0到359

double CalFrequency()
{
static int count;
static double save;
static clock_t last, current;
double timegap;

++count;
if( count <= 50 )
return save;
count = 0;
last = current;
current = clock();
timegap = (current-last)/(double)CLK_TCK;
save = 50.0/timegap;
return save;
}

void myDisplay(void)
{
double FPS = CalFrequency();
printf("FPS = %f\n", FPS);

glEnable(GL_DEPTH_TEST);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(75, 1, 1, 400000000);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0, -200000000, 200000000, 0, 0, 0, 0, 0, 1);

// 绘制红色的“太阳”
glColor3f(1.0f, 0.0f, 0.0f);
glutSolidSphere(69600000, 20, 20);
// 绘制蓝色的“地球”
glColor3f(0.0f, 0.0f, 1.0f);
glRotatef(day/360.0*360.0, 0.0f, 0.0f, -1.0f);
glTranslatef(150000000, 0.0f, 0.0f);
glutSolidSphere(15945000, 20, 20);
// 绘制黄色的“月亮”
glColor3f(1.0f, 1.0f, 0.0f);
glRotatef(day/30.0*360.0 - day/360.0*360.0, 0.0f, 0.0f, -1.0f);
glTranslatef(38000000, 0.0f, 0.0f);
glutSolidSphere(4345000, 20, 20);

glFlush();
glutSwapBuffers();
}

void myIdle(void)
{
++day;
if( day >= 360 )
day = 0;
myDisplay();
}

int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(400, 400);
glutCreateWindow("太阳,地球和月亮");
glutDisplayFunc(&myDisplay);
glutIdleFunc(&myIdle);
glutMainLoop();

return 0;
}


这时候点击执行程序,也可以正常运行,出现一个dos窗口和一个程序运行的窗口。



4、下面配置一下在参数,只要运行窗口就可以了。

(1)选择项目属性,选择C/C++->预处理器,在右侧的“预处理器定义”处,删除“_CONSOLE“,如图



(2)在项目属性中,切换到“链接器”->系统,右侧窗口的子系统选择:窗口 (/SUBSYSTEM:WINDOWS)



(3)在项目属性中,再切换到“链接器”->命令行,在“其他选项”中输入:/ENTRY:mainCRTStartup (可以去除程序运行时出现的dos窗口)



经过这三步的配置,既可以消去dos窗口了,只剩下那个运行窗口了。以上这部分的配置是相当于项目的,所以对每一个项目都要配置一次,不过这个应该很简单的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  opengl