OpenGL红宝书第九版环境配置(VS2017)

对于很多想要学OpenGL的人来说,环境配置一直是一个大问题,笔者就是其中之一。虽然网络上有许多教程,但是由于不同的教程使用的库并不同,利用这些教程配置的环境往往连红宝书的第一个例子都运行不了。因此,在此介绍一下如何不利用CMake进行环境配置。

第一步:下载全部包含文件和库

因为红宝书第九版的配套文件中有缺失,所以直接使用经常会造成问题,所以笔者上传了修改填充好的资源以供大家下载:
https://download.csdn.net/download/qq_42778704/10823423

第二步:修改包含目录

1、新建一个空项目

2、右键右侧解决方案资源管理器中的Project1,点击属性

3、添加包含目录

点击VC++目录,把之前下载的压缩包解压,然后添加进包含目录
(配置和平台根据自己的需要选择)

4、添加库目录

5、添加附加依赖项

点击链接器->常规->附加依赖项

6、测试

这样OpenGL的环境就配置完毕了,我们可以运行一下第九版的第一个例子进行一下测试,下面是完整代码:

#include<iostream>
#include<vgl.h>
#include<LoadShaders.h>
using namespace std;enum VAO_IDs{ Triangles , NumVAOs };
enum Buffer_IDs{ ArrayBuffer , Numbuffers };
enum Attrib_IDs{ vPosition=0 };GLuint VAOs[NumVAOs];
GLuint Buffers[Numbuffers];const GLuint NumVertices = 6;void init(void) {static const GLfloat vertices[NumVertices][2] ={{ -0.90 , -0.90 },   //Triangle 1{ -0.90 , -0.90 },{ -0.90 ,  0.85 },{  0.90 , -0.85 },  //Triangle 2{  0.90 ,  0.90 },{ -0.85 ,  0.90 }};glCreateBuffers(Numbuffers, Buffers);glNamedBufferStorage(Buffers[ArrayBuffer], sizeof(vertices), vertices, 0);ShaderInfo  shaders[] = {{GL_VERTEX_SHADER,"triangles.vert"},{GL_FRAGMENT_SHADER,"triangles.frag"},{GL_NONE,NULL}};GLuint program = LoadShaders(shaders);glUseProgram(program);glGenVertexArrays(NumVAOs, VAOs);glBindVertexArray(VAOs[Triangles]);glBindBuffer(GL_ARRAY_BUFFER, Buffers[ArrayBuffer]);glVertexAttribPointer(vPosition, 2, GL_FLOAT,GL_FALSE, 0, BUFFER_OFFSET(0));glEnableVertexAttribArray(vPosition);}void display(void) {static const float black[] = { 0.0f,0.0f,0.0f,0.0f };glClearBufferfv(GL_COLOR, 0, black);glBindVertexArray(VAOs[Triangles]);glDrawArrays(GL_TRIANGLES, 0, NumVertices);
}int main(int argc, char** argv) {glfwInit();GLFWwindow* window = glfwCreateWindow(640, 480, "Triangles", NULL, NULL);glfwMakeContextCurrent(window);gl3wInit();init();while (!glfwWindowShouldClose(window)) {display();glfwSwapBuffers(window);glfwPollEvents();}glfwDestroyWindow(window);glfwTerminate();
}

F5运行测试:

可以看到示例代码正常运行,恭喜环境配置完毕。

最后

这里的环境只适用于当前的工程,如何一次性为所有工程配置好环境,笔者暂时也没有思路,希望有人能够进行补充。

因为也是刚刚开始学习OpenGL,难免有些疏漏,希望这篇博客能够帮助到其他准备根据OpenGL红宝书开始学习的初学者,欢迎提出各种各种意见与建议,希望能一起讨论提高。

谢谢

OpenGL红宝书第九版环境配置相关推荐

  1. 关于在vs2013中配置opengl红宝书第八版环境

    转自 http://blog.csdn.net/qq821869798/article/details/45247241 本人刚开始学习opengl,买了一本opengl红宝书第八版, 第一个例子研究 ...

  2. OpenGL红宝书的部分学习记录

    我看的OpenGL红宝书为: <OpenGL编程指南>-- 原书第9版 OpenGL Programming Guide – The Official Guide to Learning ...

  3. OpenGL红宝书:第一个渲染程序Triangles常见问题归总

    OpenGL红宝书第八版从shader开始讲起,其实渲染对大多数人来说都是充满吸引力的,但是程序写起来确实比较麻烦,书上面第一示例程序零零散散也弄了好几天.这里写个博客汇总一下,我觉得对所有初学者都有 ...

  4. OpenGL红宝书正序解读(一)

    OpenGL红宝书正序解读(一) 第一章:OpenGL简介 第二章:状态管理和绘制几何物体 绘图工具箱 清除窗口 指定颜色 强制完成绘图操作 坐标系统工具箱 描述点.直线.多边形 什么是点.直线.多边 ...

  5. VS2012通过makefile编译OpenGL红宝书的示例代码

    通过创建新VC项目,然后设置一堆属性,对于懒人来说还是太复杂了.既然它自带了makefile,可以尝试下使用nmake. 需要注意的是VS2012的安装目录里面已经没有GL的头文件和库文件.这个改动应 ...

  6. 游戏开发计算机图形学杂项知识系列:OpenGL红宝书中第一个渲染程序Triangles常见问题归总

    游戏开发计算机图形学杂项知识系列:OpenGL红宝书中第一个渲染程序Triangles常见问题归总 声明:未经作者允许,严禁商用,转载请标明出处和来源,谢谢 转载自:https://www.cnblo ...

  7. 用最简单的方法配置运行OpenGL红宝书第9版源码示例

    笔者真是苦逼啊,之前花了很多时间去学习"基于OpenGL的图形学"的开头部分,包括书本和老师的PPT.但是到自己尝试编译运行示例代码的时候真是困难重重.而且!在自己胡乱摸爬滚打终于 ...

  8. Mac上OpenGL红宝书例程环境适配

    参考:OpenGL编程指南第8版(红宝书) 参考:https://github.com/badousuan/openGLredBook9th (Owed by: 春夜喜雨 http://blog.cs ...

  9. OpenGL红宝书8th第一个例子triangles

    年初用Qt涉及过OpenGL,当时只根据Qt自给的库使用,按照Qt给的例子没有出现啥问题,但是最近接触计算机图形学,尝试编译红宝书8th(<OpenGL编程指南>(原书第8版)中文版)第一 ...

最新文章

  1. 多店铺多用户商城可以用来干嘛?适合什么样的商业模式?
  2. Java 常见异常种类
  3. 用VS2005开发Sharepoint工作流,出现此安装不支持该项目类型。的处理
  4. Dynamic LAN-to-LAN ××× 之 Router-to-Router
  5. HDU - 6635 Nonsense Time (暴力LIS)
  6. 【iCore3 双核心板_FPGA】例程五:Signal Tapll实验——逻辑分析仪
  7. servletcontext 使用解析
  8. java验证身份证号码是否有效源代码
  9. springboot security 权限不足_springBoot整合springSecurity(零一)
  10. python中最难的是什么_python什么的最难了
  11. windows网络版象棋的实现
  12. 无可奈何花落去,数据丢失时时来;何当共谈完整性,却话巴山夜雨时----详解SQL Server 数据库库完整性检查和置疑修复
  13. Spring Boot 核心原理与源码解析-大纲
  14. VS中,一个头文件使用另外一个头文件的静态变量,要谨慎
  15. 嵌入式开发培训学哪些?嵌入式培训课程好学吗
  16. 服务器抓不到mrcp信息,启动百度Mrcp服务器出错 错误码: 323
  17. 中国地图及各省市县地图json下载地址
  18. EasyExcel自定义复杂的表头并在同sheet中实现分页
  19. java IO编程详解
  20. 第三方微信+支付宝个人免签支付源码

热门文章

  1. android studio小日常(持续更新)
  2. 9. MySQL -- JDBC入门
  3. 【免费】php 生成二维码 qrcode 源代码可在html直接调用
  4. java全角字符转换为半角 半角转全角
  5. 威纶触摸屏MODBUS通信控制台达变频器程序 威纶触摸屏
  6. TAG的9C的交易类型
  7. 解决 Visual C++ 2012 C Runtime wannring and error
  8. iconfont配置nginx跨域问题、nginx反向代理接口跨域
  9. 文字四境:音、景、情、意
  10. DevExpress 组件源代码,图表、报告、数据透视表