OpenGL 4.x学习资源

我知道有一些关于学习OpenGL的问题。 这是我所知道的:

  • math为3D
  • 三维理论

这里是我想知道的: – OpenGL 4.0 核心configuration文件 (或后者) – 着色语言400(或后者) – 上面的每一部分(如果它不适用于供应商那么它仍然不打扰我)

这是我不想知道的 – 固定functionpipe道(不会使用它!) – 较旧的OpenGL的 – 兼容性configuration文件

我喜欢教程,系列文章,书籍等大部分信息。

PS如果你知道opengl 3.x核心configuration文件的资源,请发布它们

我诚恳地不喜欢消极的回答,但恐怕我不得不提出这个问题。

您最终要求使用OpenGL 4.0及更高版本特有的function的初学者材料。 那么,让我们来看看4.x的一些独特function。

也许最大的特点是曲面细分。 那是什么意思? 这意味着镶嵌基元来生成更多的基元。 在人们甚至可以开始理解这个意思之前,首先必须了解基元如何得到渲染。 这使用了4.x之前的特性。

但是,即使对渲染的工作原理有了一个清晰的认识,仍然存在一个问题。 为了对镶嵌着色器进行任何有意义的讨论,首先必须对镶嵌algorithm有深入的了解。 这不是一个简单的主题。 对于教导用户使用镶嵌着色器的教程,本教程将首先介绍样条曲线,补丁或细分曲面。 这些都是冗长的话题,有大量的白皮书专门针对他们。 只有在详细说明algorithm之后,用户才可以准备好在镶嵌着色器中看到如何实现这些algorithm。

或者,换句话说,镶嵌着色器不是新手素材。 我甚至不会把它们定为中级材料。

4.x级别硬件的另一个重要特性是着色器映像加载存储 (及其伴侣, primefaces计数器 ),4.2中的核心。 它允许一些非常漂亮的东西,包括与顺序无关的透明度。 然而,为了使用户能够开始理解周围的所有怪癖,用户需要非常熟悉现代着色器硬件的深入工作。 因此,任何教程都必须首先解释基于现代VLIW / SIMD的硬件是如何工作的,以及着色器如何与这样的硬件一起使用。 再次,这不是微不足道的材料。

4.x硬件的另一大特点是间接渲染。 也就是说,将参数放在缓冲区对象本身的glDraw调用中。 问题是,使用这个function的原因实际上只有一个:因为GPU直接将数据生成到一个或多个缓冲区中,以便以后进行渲染。 这样做通常涉及到某种forms的GPGPU操作,这非常不像初学者一样。

所有这些function都是有用的,并有一个真正的目的。 但是没有一个应该被初学者使用; 在某些情况下,甚至连中级程序员都不应该碰它们。

现在是完全公平的,有4.2个function都是非基于硬件的(所以它们通常在3.3以及更低的版本上实现)并且非常有用。 单独的程序对象,例如。 当我编写基于3.3的教程时,这些function很受欢迎,我考虑回顾一下,并join这个function。 我没有这样做的唯一原因是实现(驱动程序)在这个function方面仍然不是完全稳定的。 但是这样做会很有用。

我得到的主要观点是:如果您处于graphics知识的舞台,您已经准备好利用GL 4.x硬件的独特function,那么您也有足够的graphics体验, t需要一个明确的逐步指导材料来实现graphics硬件的function。 你会是那种能够阅读GL_ARB_tessellation_shader扩展规范的人,并且理解如何让他们做你需要的。

这就是说,如果你对教OpenGL核3.0或更好的材料感兴趣, OpenGL Wiki有这样的链接很好的集合。 为了充分披露,我确实写了其中一个。

OpenGL SuperBible的第五版最近已经发布。 这个版本反映了与OpenGL 4.0同时发布的OpenGL 3.3,本书只涵盖了核心configuration文件,并且不承认以前的OpenGL知识。

这就是我从书中的描述中得到的。 我有第四版,这是OpenGL 2.0的一个很好的资源,所以我认为新版本和最新的OpenGL着色语言书将是你正在寻找的。

榴莲软件有一系列涵盖现代OpenGL的教程。 它们针对OpenGL 2.0,但是避免在以后的版本中使用任何弃用的function。

OpenGL 3.0和4.1之间确实很less有区别。 如果您坚持使用3.0或更高版本的核心configuration文件,则无法使用固定functionpipe道。 你真正要求的是一个不使用固定functionpipe道的OpenGL教程。

Jason L. McKesson出色的教程“学习现代3Dgraphics编程”从最初的基础开始就使用着色器,从不涉及固定functionstream水线。

http://www.arcsynthesis.org/gltut/index.html

我强烈推荐它。

我最近偶然发现了这本在线书: OpenGLBook.com

我还没有阅读,但描述说,这是一个免费的在线书籍格式的OpenGL 4.0编程资源。

很好的问题,真的。 事实上,文件是稀less的。

这里有一个很好的介绍: http : //sites.google.com/site/opengltutorialsbyaks/

你也可以喜欢groovounet的ogl4样本包: http ://www.g-truc.net/post-0310.html

但恐怕就是这样了。 潜伏在opengl讨论板更多信息…

编辑:几秒钟前发现。 直接从SIGGRAPH http://nvidia.fullviewmedia.com/siggraph2010/02-dev-barthold-lichtenbelt-mark-kilgard.html

http://www.opengl.org/sdk/docs/man4/

有OpenGL 4.1的手册页,它们在开发时certificate是有用的。

我认为你最好的希望之一就是乔的博客 。 它有一些关于现代OpenGL的很好的介绍性文章,其中有更多(据说)。

Swiftless正在更新教程,以包含新的上下文。 关于一个简单快捷的VAO,VBO和渲染,一个很好的入门教程位于swiftless.com

没读过,但是OpenGL 4.0着色语言菜谱

OpenGL 4的主要特点是tesselation,所以我想build议从一个独立的OpenGL 4 tesselation教程,即: http ://prideout.net/blog/? p=48

在手册和教程之后,一个好的后续步骤是看看那些基于“新”OpenGL 3/4之上的开源引擎。 作为开发者之一,我会指向Linderdaum Engine 。