Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3521385
  • 博文数量: 1805
  • 博客积分: 135
  • 博客等级: 入伍新兵
  • 技术积分: 3345
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-19 20:01
文章分类

全部博文(1805)

文章存档

2017年(19)

2016年(80)

2015年(341)

2014年(438)

2013年(349)

2012年(332)

2011年(248)

分类: C/C++

2013-07-31 08:39:22

原文地址:Ubuntu 12.10安装OpenGL 作者:txgc_wm

前言


       OpenGL 是一套由SGI公司发展出来的绘图函式库,它是一组 C 语言的函式,用于 2D 与 3D 图形应用程式的开发上。OpenGL 让程式开发人员不需要考虑到各种显示卡底层运作是否相同的问题,硬体由 OpenGL 核心去沟通,因此只要显示卡支援 OpenGL,那么程式就不需要重新再移植,而程式开发人员也不需要重新学习一组函式库来移植程式。


安装


首先不可或缺的就是编译器与基本的函式库,如果系统没有安装的话,依照下面的方式安装:

  1. $ sudo apt-get install build-essential

安装OpenGL Library

  1. $ sudo apt-get install libgl1-mesa-dev

安装OpenGL Utilities

  1. $ sudo apt-get install libglu1-mesa-dev
       OpenGL Utilities 是一组建构于 OpenGL Library 之上的工具组,提供许多很方便的函式,使 OpenGL 更强大且更容易使用。

安装OpenGL Utility Toolkit

  1. $ sudo apt-get install libglut-dev
       OpenGL Utility Toolkit 是建立在 OpenGL Utilities 上面的工具箱,除了强化了 OpenGL Utilities 的不足之外,也增加了 OpenGL 对于视窗介面支援。
       注意:在这一步的时候,可能会出现以下情况,shell提示:
  1. Reading package lists... Done
  2. Building dependency tree
  3. Reading state information... Done
  4. E: Unable to locate package libglut-dev
将上述$ sudo apt-get install libglut-dev命令改成$ sudo apt-get install freeglut3-dev即可。

 

测试


示例test.c源码:

  1. #include <GL/glut.h>

  2. void init(void)
  3. {
  4.     glClearColor(0.0, 0.0, 0.0, 0.0);
  5.     glMatrixMode(GL_PROJECTION);
  6.     glOrtho(-5, 5, -5, 5, 5, 15);
  7.     glMatrixMode(GL_MODELVIEW);
  8.     gluLookAt(0, 0, 10, 0, 0, 0, 0, 1, 0);

  9.     return;
  10. }

  11. void display(void)
  12. {
  13.     glClear(GL_COLOR_BUFFER_BIT);
  14.     glColor3f(1.0, 0, 0);
  15.     glutWireTeapot(3);
  16.     glFlush();

  17.     return;
  18. }

  19. int main(int argc, char *argv[])
  20. {
  21.     glutInit(&argc, argv);
  22.     glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
  23.     glutInitWindowPosition(0, 0);
  24.     glutInitWindowSize(300, 300);
  25.     glutCreateWindow("OpenGL 3D View");
  26.     init();
  27.     glutDisplayFunc(display);
  28.     glutMainLoop();

  29.     return 0;
  30. }
编译程式时,执行以下指令:
  1. $ gcc -o test test.c -lGL -lGLU -lglut
执行:
  1. $ ./test

 

阅读(401) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~