OpenGL 4.x学习资源

OpenGL 4.x学习资源,opengl,shader,opengl-3,opengl-4,Opengl,Shader,Opengl 3,Opengl 4,我知道学习OpenGL有一些问题。 以下是我所知道的: 三维数学 三维理论 以下是我想知道的: -OpenGL 4.0核心配置文件(或更高版本) -着色器语言400(或更高版本) -上面的每一部分(如果它不能跨供应商工作,那么它仍然不会困扰我) 以下是我不想知道的 -固定功能管道(永远不会使用它!) -旧的OpenGL -兼容性配置文件 我更喜欢更多的信息,比如教程、系列文章、书籍 PS如果你知道opengl 3.x核心配置文件上的资源,也可以发布它们非常好的问题,真的。事实上,文档很少 这

我知道学习OpenGL有一些问题。 以下是我所知道的:

  • 三维数学
  • 三维理论
以下是我想知道的: -OpenGL 4.0核心配置文件(或更高版本) -着色器语言400(或更高版本) -上面的每一部分(如果它不能跨供应商工作,那么它仍然不会困扰我)

以下是我不想知道的 -固定功能管道(永远不会使用它!) -旧的OpenGL -兼容性配置文件

我更喜欢更多的信息,比如教程、系列文章、书籍


PS如果你知道opengl 3.x核心配置文件上的资源,也可以发布它们

非常好的问题,真的。事实上,文档很少

这里有一个很好的介绍:

您可能还喜欢GroovoNet的ogl4示例包:

但恐怕差不多就是这样了。潜伏在opengl讨论板上获取更多信息

编辑:几秒钟前找到。直接从SIGGRAPH开始

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

最近发布了。这个版本反映了OpenGL 3.3,它与OpenGL 4.0同时发布,这本书只涵盖了核心概要文件,并且没有假定OpenGL之前的知识

这就是我从书的描述中得到的。我有第四版,它是OpenGL 2.0的优秀资源,因此我认为新版本以及最新的书籍正是您想要的


正在进行的一系列教程涵盖了现代OpenGL。它们的目标是OpenGL 2.0,但避免在以后的版本中使用任何不推荐的功能。

我认为您最大的希望之一是。它有一些关于现代OpenGL的好的介绍性文章,还有更多的(据推测)正在进行中。

Swiftless正在更新教程以包含新的上下文。一个关于快速简单的VAO、VBO和渲染的入门教程位于

我非常不喜欢否定的答案,但恐怕我必须给出一个关于这个问题的答案

您最终需要的是使用OpenGL 4.0及以上版本独有功能的初学者资料。好吧,让我们看看4.x的一些独特功能

也许最大的特点是镶嵌。这是什么意思?这意味着细分基本体以生成更多基本体。在开始理解这意味着什么之前,必须首先理解基本体是如何被渲染的。它使用4.x版本之前的功能

但是,即使对渲染的工作原理有了坚定的理解,仍然存在一个问题。为了对细分着色器进行有意义的讨论,必须首先对细分算法有深入的了解。这不是一个简单的问题。对于教用户使用细分着色器的教程,该教程首先必须介绍样条曲线、面片或细分曲面。这两个问题都是冗长的话题,有许多白皮书专门讨论它们。只有在详细介绍了算法之后,用户才能准备好在细分着色器中查看这些算法是如何实现的

或者,换句话说,细分着色器不是初学者材质。我甚至不认为它们是中级材料

4.x级硬件的另一大特点是(及其配套产品)4.2的核心。它允许一些非常漂亮的东西,包括与秩序无关的透明度。然而,为了让用户甚至开始理解它周围的所有怪癖,用户需要非常熟悉现代着色器硬件的深层工作原理。因此,任何教程都必须首先解释现代基于VLIW/SIMD的硬件是如何工作的,以及着色器如何与此类硬件一起使用。再说一次,这不是琐碎的材料

4.x硬件的另一大特性是间接渲染。也就是说,将参数放入缓冲区对象本身中的glDraw调用。问题是,使用此功能的真正原因只有一个:因为GPU将生成的数据直接放入一个或多个缓冲区,以便稍后进行渲染。这样做通常涉及某种形式的GPGPU操作,这并不是一个初学者级别的话题

所有这些功能都是有用的,并且有真正的用途。但是初学者不应该使用它们;在某些情况下,甚至中级程序员也不应该触碰它们

现在,公平地说,有一些4.2特性既不基于硬件(因此它们通常在3.3及更低版本上实现),也非常有用。例如,单独的程序对象。在我编写基于3.3的教程时,这些特性很受欢迎,我考虑回顾它们并合并此功能。我没有这么做的唯一原因是,实现(驱动程序)在这个功能方面仍然不完全稳定。但这样做是有益的

我要讲的要点是:如果您正处于图形知识阶段,准备利用GL 4.x硬件的独特功能,那么您也有足够的图形经验,不需要明确的分步教学材料来实现图形硬件的功能。您将是那种能够阅读GL_ARB_tessellation_shader extension规范并理解如何让它们执行所需操作的人


这就是说,如果您对教授OpenGL core 3.0或更高版本的材料感兴趣,则有一个很好的链接集合。为了充分披露,我确实写了其中一本。

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


我还没有读过它,但描述中说它是一个免费的OpenGL 4.0编程资源,采用在线图书格式。

OpenGL 3.0和4.1之间的差别非常小。如果您坚持使用3.0或更高版本的核心配置文件,您可以使用c