linux - 如何在 Linux 上编译和运行来自交互式计算机图形的代码 - 基于着色器的 OPENGL®(第 6 版)的自上而下的方法?

标签 linux opengl glut freeglut

我正在尝试从 http://www.cs.unm.edu/~angel/BOOK/INTERACTIVE_COMPUTER_GRAPHICS/SIXTH_EDITION/CODE/ 编译并运行本书的在线代码, 但他们似乎只有 Mac 和 Windows 版本;我如何在 Linux 上运行它?为了构建第 2 章中的简单示例,我花了数小时试图获得依赖项和正确的东西!

最佳答案

我是来自 future 的托尼!如果你继续你正在走的路,你最终会花费更多的时间来弄清楚这一点 - 好消息是我已经做到了,并且编制了以下步骤来帮助你解决问题!

  1. sudo apt-get install freeglut3 freeglut3-dev libglew1.5 libglew1.5-dev
  2. 来自 http://www.cs.unm.edu/~angel/BOOK/INTERACTIVE_COMPUTER_GRAPHICS/SIXTH_EDITION/CODE/ , 下载以下文件:

    • CHAPTER02/WINDOWS_VERSIONS/[我只是把这些文件放在 CHAPTER02/]
    • 通用/InitShader.cpp
    • include/中的所有内容(尽管 CheckError.h 是不必要的)
    • (因此,您的基本目录现在应该包含以下文件夹:CHAPTER02、Common 和 include。)
  3. cd CHAPTER02

  4. g++ ../Common/InitShader.cpp example1.cpp -I../include -lglut -lGL -lGLU -lc -lm -lGLEW -o example1.out
  5. 进行一些更改以解决错误:

    • 添加#include <stdio.h>包括/mat.h
    • 如果您收到“请求失败的 X 错误:GLXBadFBConfig”,请在 example1.cpp 中注释掉这两行:

    //glutInitContextVersion( 3, 2 ); //glutInitContextProfile( GLUT_CORE_PROFILE );

    • 如果您收到“错误:不支持 GLSL 1.50”。将 fshader21.glsl 和 vshader21.glsl 的第一行更改为 "#version 130"而不是 150
  6. ./example1.out
  7. 很高兴终于看到了 Sierpinski 垫圈!

关于linux - 如何在 Linux 上编译和运行来自交互式计算机图形的代码 - 基于着色器的 OPENGL®(第 6 版)的自上而下的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25657996/

相关文章:

linux - Node 中数千个并发 http 请求

linux - Ubuntu 更新管理器的问题

c++ - 将数据从后台缓冲区复制到前台缓冲区

c++ - 闭合贝塞尔曲线

c++ - 使用 glutDisplayFunc 绘图 (opengl)

php - 错误 : permission denied in hosting service 我能做什么

c++ - 如何在 openGL 中使用 GLFW?

java - 如何对 GL_TRIANGLE_STRIP 进行纹理处理?

c++ - 相机的 OpenGL 问题(?)

linux - 为什么我的变量总是减为零?