学习 OpenGL 用哪个版本好?
17 个回答
不同意
@邱晓峰入门用NEHE的建议。虽然十分经典,但经典也意味着老旧,全是固定管线内容,且不成体系。如果需要和一些固定管线的老代码打交道,那NEHE还是值得一看的。
同意
@倪朝浩,至少从GL 2.0看起(目前已经4.3了)。一定得熟悉VAO/VBO/FBO等等。我曾耗费很多时间学固定管线,但学了shader后才感觉走上了正道,才是真正地零距离接触到了pipeline。当你去自己生成MVP、自己实现Phong Shading时,和简单的用一下glTranslatef, glLightfv这些API的感觉是不一样的。关于用什么书,我以前回答过这个问题
初学者学习opengl是用红宝书好还是蓝宝书好?。另外网上教程也有蛮多,我所知比较好的有(欢迎补充)
- opengl-tutorial.org OpenGL 3.3+ Tutorial[我正在翻译这个教程,断断续续做了一年多。你可以通过切换语言看到我最初的翻译。后来我们还在做修订。可耻地做个广告https://github.com/cybercser/OpenGL_3_3_Tutorial_Translation]
- OpenGL Step by Step
- Lighthouse3d.com
- Home – Swiftless Tutorials
- OpenGL 3.3 - Tutorials
- http://tomdalling.com/blog/category/modern-opengl/
- http://open.gl/
关于OpenGL ES/WebGL我知道的挺少,欢迎补充。
补充(2014年2月16日10:11:42):如果想在Mac上学OpenGL,这个Apple官方网站真心很不错OpenGL for OS X,这个页面上有个视频讲解怎样从固定管线迁移到Shader,讲的很好。
修改时间 2014年3月26日21:24:53
OpenGL蓝宝书已有第六版,红宝书有第八版,均完全剔除固定管线内容,全面介绍shading language。
修改时间 2016年2月3日20:23:27
补充一个目前看来最好的教程网站 http://www.learnopengl.com/
什么版本都不用管 先实现一遍底层的光栅化的3D渲染算法,只用一个画像素的功能,把插值,zbuffer,alpha,阴影,三角形的光栅化,全自己底层实现一遍,之后进阶挑nvidia 的sdk里的例子逐句看,siggraph早期的gpgpu的论文挑自己觉得有趣的去实现,shaderX,gpu gems里头拿感兴趣的实现,我就是这么过来的,后来去了皮克斯做R&D,现在在Weta Digital做R&D