2015-06-07 23:02:03
来 源
中存储网
Ubuntu
前言 OpenGL 是一套由SGI公司发展出来的绘图函式库,它是一组 C 语言的函式,用于 2D 与 3D 图形应用程式的开发上。 OpenGL 让程式开发人员不需要考虑到各种显示卡底层运作是否相同的问题,硬体由 OpenGL 核心去沟通,因此只要显示卡支援 OpenGL,那么程式就

前言
OpenGL 是一套由SGI公司发展出来的绘图函式库,它是一组 C 语言的函式,用于 2D 与 3D 图形应用程式的开发上。

OpenGL 让程式开发人员不需要考虑到各种显示卡底层运作是否相同的问题,硬体由 OpenGL 核心去沟通,因此只要显示卡支援 OpenGL,那么程式就不需要重新再移植,而程式开发人员也不需要重新学习一组函式库来移植程式。

接下来,大家就一步一步的在Ubuntu底下建立开发OpenGL应用程式的环境。

安装
建立基本编译环境
首先不可或缺的,就是编译器与基本的函式库,一旦系统没有安装的话,请依照接下来的方式安装:

$ sudo apt-get install build-essential

安装OpenGL Library
接下来要把大家会用到的 Library 装上去,首先安装 OpenGL Library

$sudo apt-get install libgl1-mesa-dev

安装OpenGL Utilities
OpenGL Utilities 是一组建构于 OpenGL Library 之上的工具组,提供许多很方便的函式,使 OpenGL 更强大且更容易使用。接下来大家安装OpenGL Utilities

$sudo apt-get install libglu1-mesa-dev

安装OpenGL Utility Toolkit
OpenGL Utility Toolkit 是建立在 OpenGL Utilities 上面的工具箱,除了强化了 OpenGL Utilities 的不足之外,也增加了 OpenGL 对于视窗介面支援。

$sudo apt-get install libglut-dev
注意在这一步的时候,可能会出现以下情况,shell提示:
正在读取软件包列表...
完成正在分析软件包的依赖关系树
正在读取状态信息... 完成
E: 未发现软件包 libglut-dev一旦出现上述情况,请输入将上述$sudo apt-get install libglut-dev命令改成$sudo apt-get install freeglut3-dev就行拉。

设定编译参数与编译
在这之前,大家需要一个测试范例,example.c 如下:

#include <GL/glut.h>

void init();

void display();

int main(int argc, char* argv[])

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);

glutInitWindowPosition(0, 0);

glutInitWindowSize(300, 300);

glutCreateWindow("OpenGL 3D View");

init(); glutDisplayFunc(display);

glutMainLoop();

return 0;

}

void init()

{

glClearColor(0.0, 0.0, 0.0, 0.0);

glMatrixMode(GL_PROJECTION);

glOrtho(-5, 5, -5, 5, 5, 15);

glMatrixMode(GL_MODELVIEW);

gluLookAt(0, 0, 10, 0, 0, 0, 0, 1, 0);

}

void display()

{

glClear(GL_COLOR_BUFFER_BIT);

glColor3f(1.0, 0, 0);

glutWireTeapot(3);

glFlush();

}

有了测试范例、基础编译环境与各个 OpenGL 相关的函式库之后,大家所需要做的就是告诉编译器大家有安装 OpenGL 函式库,编译程式时要连结这些函式库。

$gcc example.c -c -lGL -lGLU -lglut
因为大家安装了 OpenGL Utility Toolkit ,它是建立在 OpenGL Utilities 与 OpenGL Library 之上,因此大家可以简单连结 OpenGL Utility Toolkit 的函式库就可以达到大家的目地了。接下来的编译参数跟上面的是同样效果:

$gcc example.c -c -lglut

接下来简单说明一下所使用的 gcc 参数

-l<Library> 告诉 gcc 去连结指定 Library -o<file> 指定执行档的输出名字
执行
接下来大家就可以来看看大家的结果,一旦看到茶壶图片,代表成功了!

$./example.out
完毕。

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。