OpenGL 开始学习指南
近期需要做一个涌潮的预报与仿真模拟,为了使模型更具有真实感,且逼真,使用起来更灵活。感觉还是得从基础的OpenGL学习。鉴于Direct3D技术存在的众多不确定性,且评论不太好的原因,决定用OpenGL来做。但是,之前接触的都是一些十分简单的OpenGL的管线变成,预计得舍弃并用现代版的OpenGL的着色语言进行实现。
下面给出一些自己在网上总结的学习OpenGL的一些建议,特别是初学者,可以拿来参考以下。
1.入门与学习资源
入门如果用NEHE,该经典教程确实众所周知,但也意味着老旧,全是固定管线内容,且不成体系。如果需要和一些固定管线的老代码打交道,那NEHE还是值得一看的。
- opengl-tutorial.org OpenGL 3.3+ Tutorial [我正在翻译这个教程(Github翻译的教程LINK),断断续续做了一年多。你可以通过切换语言看到我最初的翻译。后来我们还在做修订。]
- OpenGL Step by Step
- Lighthouse3d.com
- Home – Swiftless Tutorials
- OpenGL 3.3 - Tutorials
- http://tomdalling.com/blog/category/modern-opengl/
- http://open.gl/
(备注:即 opengl 3.0 以上 和 可编程渲染流水线)。
(1)OpenGL 3.3+ Tutorials
gamedev 上 Michal Bubnar
写的引导教程,非常不错。
和它所在的:gamedev 的 opengl 专栏:
OpenGL - Articles
(2)前面有人推荐和翻译的:
opengl-tutorial.org
不过课程较少。但是对一些科普性内容写的不错。
(3)另一个问题下有人推荐的:
Learning Modern 3D Graphics Programming
Jason L. McKesson
个人觉得,必须需要学习的一些基础知识包括:
(1)model,view,projection 变换;
(2)和几何变换对应的矩阵和向量的运算。cross,dot 等。
(3)渲染 pipeline 的流程,各个阶段的职责工作。
(4)depth 缓冲。
如果想在Mac上学OpenGL,这个Apple官方网站真心很不错OpenGL for OS X,这个页面上有个视频讲解怎样从固定管线迁移到Shader,讲的很好。
OpenGL蓝宝书已有第六版,红宝书有第八版,均完全剔除固定管线内容,全面介绍shading language。
补充一个目前看来最好的教程网站 http://www.learnopengl.com/(2016-2-3)
2、学习路线
建议学习的路线
1、OpenGL渲染管线!!!!!!
2、物体-世界-相机-裁剪-视口 坐标变换!!!!!!
毕竟OpenGL只是个API,是工具,把原理搞明白了,理解了,工具上手会快很多。即便你将来想转DirectX也就是换个API,换汤不换药,大致思想是一致的。
另外要看书的话,红宝和蓝宝书早期版本以固定管线为例讲解的就可以不要看了,直接从shader搞起吧。
另类的学习经验
看一下题主用的显然是Windows,那应该义不容辞的使用DirectX10。D9也不要用了,架构跟OpenGL一样落后,是不能学到靠谱的东西的。
OpenGL这倒霉玩意……反人类的设计,反人类的手册,反正我是被恶心了个不行……(架构上我没有深入了解……反正某些设计把我恶心个不行之后我就放弃这玩意了)如果一定要,我觉得弄个红包书 + opengl的函数手册应该就能看懂了。
3、补充资源
3.1 WhyGL
一套学习OpenGL的框架,及翻写Nehe的OpenGL教程
有关详细的介绍,请参考文章[2].
源码与演示程序下载地址:Dolnload LINK
参考文章
[1] 邹帆,张心欣, 王浩宇,hoodlum1980. 学习 OpenGL 用哪个版本好,知乎.
[2] 叶飞影, 翻写Nehe的OpenGL教程,2013.
OpenGL 开始学习指南的更多相关文章
- OpenGL开发学习指南二(glfw+glad)
版权声明:本文为博主原创文章,未经博主允许不得转载.blog.liujunliang.com.cn https://blog.csdn.net/qq_33747722/article/details/ ...
- opengl入门学习
OpenGL入门学习 说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640 ...
- OpenGL ES学习笔记(三)——纹理
首先申明下,本文为笔者学习<OpenGL ES应用开发实践指南(Android卷)>的笔记,涉及的代码均出自原书,如有需要,请到原书指定源码地址下载. <OpenGL ES学习笔记( ...
- OpenGL入门学习(转)
OpenGL入门学习 http://www.cppblog.com/doing5552/archive/2009/01/08/71532.html 说起编程作图,大概还有很多人想起TC的#includ ...
- 《Android学习指南》目录
源:<Android学习指南>目录 Android学习指南的内容分类: 分类 描述 0.学习Android必备的Java基础知识 没有Java基础的朋友,请不要先看Android的课程,这 ...
- 《Android学习指南》文件夹
转自:http://android.yaohuiji.com/about Android学习指南的内容分类: 分类 描写叙述 0.学习Android必备的Java基础知识 没有Java基础的朋友,请不 ...
- OpenGL入门学习(转载)
说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率.16色 ...
- opengl基础学习专题 (一 )编程环境搭建
题外话: 第一次在博客园上同大家分享博文.水的的地方,错别字的地方.环境交流.批评.知道了马上改. 以前在百度空间中写技术分享博文,后来百度啥也没说就把整个空间封了.当时感觉 还是有点寒心.只想黑一下 ...
- SCARA——OpenGL入门学习五六(三维变换、动画)
OpenGL入门学习(五) 此课为三维变换的内容,比较枯燥.主要是因为很多函数在单独使用时都不好描述其效果, 在前面绘制几何图形的时候,大家是否觉得我们绘图的范围太狭隘了呢?坐标只能从-1到1,还只能 ...
随机推荐
- 黑马程序员——JAVA基础之泛型和通配符
------- android培训.java培训.期待与您交流! ---------- 泛型: JDK1.5版本以后出现新特性.用于解决安全问题,是一个类型安全机制. 泛型好处: ...
- ADS1110/ADS1271
ADS1110 1.初始化 软件:设置p任意2个为GPIO口 硬件:设置p0.2,p0.3为SDA,SCL 输入.输出 ADS1110的I2C地址(1001aaa)例如ADS1110A0的地址是100 ...
- 【深入Cocos2d-x】使用MVC架构搭建游戏Four
喜欢Four这个项目,就赶快在GitHub上Star这个项目吧! 喜欢我的文章,来微博关注我吧:王选易在学C艹 点我下载 项目起源 项目Logo: 下面是该游戏的项目地址,各位想参考源代码的同学可以到 ...
- 《Python自然语言处理》中文版-纠错【更新中。。。】
最近在看<Python自然语言处理>中文版这本书,可能由于是从py2.x到py3.x,加上nltk的更新的原因,或者作者的一些笔误,在书中很多代码都运行不能通过,下面我就整理一下一点有问题 ...
- Linux进程间通信-命名管道
前面我们讲了进程间通信的一种方式,匿名管道.我们知道,匿名管道只能用于父子关系的进程之间.那么没有这种关系的进程之间该如何进行数据传递呢? 1.什么是命名管道 匿名管道是在缓存中开辟的输出和输入文件流 ...
- 输出n行杨辉三角数
/*===================================== 输出n行杨辉三角数 输入n,n是1-100之间的整数 ================================= ...
- webpack 多entry 配置
// webpack 多entry 配置var path = require('path'); module.exports = { entry: { entry2: './entry.js', de ...
- CentOS配置ssh无密码登录
CentOS配置ssh无密码登录的注意点 前提配置:使用root登录修改配置文件:/etc/ssh/sshd_config,将其中三行的注释去掉,如下: 然后重启ssh服务:service s ...
- 一步一步理解Paxos算法
一步一步理解Paxos算法 背景 Paxos 算法是Lamport于1990年提出的一种基于消息传递的一致性算法.由于算法难以理解起初并没有引起人们的重视,使Lamport在八年后重新发表到 TOCS ...
- Postman接口测试初探
Postman接口测试 有两种安装方式: 1)Chrome插件(https://www.getpostman.com/).安装完成后,它会在chrome的应用中,如下图 2)通过下载Native ap ...