zoukankan      html  css  js  c++  java
  • Ubuntu 安装OpenGL

    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 更强大且更easy使用。

    安装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
  • 相关阅读:
    Leetcode Binary Tree Level Order Traversal
    Leetcode Symmetric Tree
    Leetcode Same Tree
    Leetcode Unique Paths
    Leetcode Populating Next Right Pointers in Each Node
    Leetcode Maximum Depth of Binary Tree
    Leetcode Minimum Path Sum
    Leetcode Merge Two Sorted Lists
    Leetcode Climbing Stairs
    Leetcode Triangle
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/6811294.html
Copyright © 2011-2022 走看看