OpenGL与图形学学习(一)学习资料、环境搭建

2 篇文章 0 订阅

首先需要知道的是,目前国内互联网上并行地流行两种类型的OpenGL教程:古老的固定流水线与现代的可编程流水线。这可以说是两种完全不同的模式,如果在寻找学习资料时不加区分,很容易被他们搅得一头雾水。

固定流水线的一般特点是使用glut库,大量使用glbegin、glend这一类状态机函数;可编程流水线的一般特点是使用glfw库,大量申请与绑定缓冲区(如顶点缓冲区),使用GLSL语言进行渲染控制。

再比如物体拾取,要识别鼠标点击了画面中哪一个模型:固定流水线采用picking机制,使用矩阵来进行拾取;而可编程流水线采用帧缓冲对象fbo进行拾取,这里的思想完全不一样。

我在这个地方卡了很久,没人告诉我有两种模式,tm宝贵的时间都浪费了…

大家一定要记住有两种完全不同的编程模式,网上很少有文章去区别他们,导致两种完全不同的路线同时出现在网络上。

另外建议学习现代流水线,不要费力去学习古老的固定流水线了!!!

学习资料

IHNF的博客该作者对各种OpenGL实现方式的认识颇为深刻,本系列文章是对他的拙劣模仿。
另外他使用QT作为GUI框架,使用QT creator作为编程IDE,而我打算用VS作为IDE。

learnopengl现代可编程流水线经典教程

环境搭建

本系列文章采用VS+QT+OpenGL的环境,这是经过不断实践得到的最简单高效的编程环境。虽然环境搭建过程很麻烦,但是写起程序来就很爽了。

我实验过程中遇到了一些奇葩事情:
第一次项目中组件提升操作顺利
第二个项目组件提升VS提示找不到头文件

复制第一个项目
第一次复制的项目正常运行
第二次复制报错
第三次复制又可以正常运行
…这都是什么玩意啊… 这里直接为大家提供搭建好的环境,配置一下电脑上QT的路径就可以用了。
我的图形学项目

OpenGL的三种编程模式

我至今为止遇到三种OpenGl的编程模式,每种之间都没什么关联,仿佛是三个完全不同的图形框架,他们包括:

  1. 二维图元编程
  2. 三维矩阵操作编程
  3. 三维流水线编程

这三种模式里,当然是流水线编程最nb,二维编程也就拿来应付课堂作业。至于三维矩阵编程…再见了您嘞,您最没用。

三种不同的编程模式相互没有关联也就罢了,最紧要的问题是,三种编程模式貌似不能同时出现,比如我同时进行第一二种绘图模式,那二维图元就不能显示。

这三种模式与两种流水线有什么关系呢?我猜1和2是固定流水线,3就是单纯的可编程流水线。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值