prz*_*_li 40 opengl shader opengl-3 opengl-4
我知道有一些关于学习OpenGL的问题.这就是我所知道的:
以下是我想知道的: - OpenGL 4.0 核心配置文件(或后者) - Shader Language 400(或后者) - 上面的每一部分(如果它不能在供应商之间工作那么它仍然不会打扰我)
这是我不想知道的 - 固定功能管道(永远不会使用它!) - 旧的OpenGL - 兼容性配置文件
我更喜欢大部分信息,如教程,系列文章,书籍.
PS如果您了解opengl 3.x核心配置文件的资源,也可以发布它们
Nic*_*las 31
我诚挚地不喜欢否定的答案,但我担心我必须给这个问题一个.
您最终要求使用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扩展规范并了解如何使它们满足您需求的人.
话虽如此,如果您对教授OpenGL核心3.0或更高版本的材料感兴趣,OpenGL Wiki可以很好地收集这些链接.为了充分披露,我确实写了其中一个.
Fir*_*aad 11
在OpenGL的OpenGL超级第五版已经最近发布.此版本反映了与OpenGL 4.0同时发布的OpenGL 3.3,该书仅涵盖核心配置文件,并且不承担任何先前的OpenGL知识.
无论如何,这就是我从书中的描述中得到的.我有第4版,它是OpenGL 2.0的优秀资源,所以我认为新版本和最新的OpenGL着色语言书将是您正在寻找的.
Durian Software有一系列涵盖现代OpenGL的教程.它们针对OpenGL 2.0,但避免在以后的版本中使用任何已弃用的功能.
ccx*_*vii 10
OpenGL 3.0和4.1之间的差别确实很小.如果您坚持使用3.0或更高版本的核心配置文件,则无法使用固定功能管道.你真正要求的是一个不使用固定功能管道的OpenGL教程.
Jason L. McKesson的优秀教程"学习现代3D图形编程"开始使用着色器进行最早的基础知识,并且从不触及固定功能管道.
http://www.arcsynthesis.org/gltut/index.html
我强烈推荐它.
很好的问题,真的。事实上,文档很少。
这里有一个很好的介绍: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