OpenGL 1.1和当前4.3之间的主要区别是什么?

时间:2014-01-09 20:09:15

标签: java opengl

对于大学我们通过JOGL / Java学习使用OpenGL 1.1的3D图形,它仍然是相当简单的东西:

  • 标准绘制方法(GL_TRIANGLE_STRIPGL_LINES
  • 使用Cubic Bezier曲线
  • 绘制赛道/使用向量
  • 制作物品(机器人)动画
  • 使用2D纹理

在本课程结束后,我想继续3D图形编程,我还有一些尝试,似乎我只能通过构建我自己的(简单)引擎来学习它,所以就这样吧

我们在大学使用OpenGL 1.1因为它仍然相当简单和基础,但我认为该行业已经是4.3版了?

有人可以说出主要的差异,可能是功能,但对编程方法更感兴趣吗? 我注意到OpenGL 1.1中很多东西都是在CPU端完成的,尽管它已经支持GPU了。
同样是创建漂亮游戏所需的着色器语言,或者为什么经常使用它们,我发现它们(在我的空闲时间)异常难以理解。

1 个答案:

答案 0 :(得分:7)

主要区别在于您可以访问图形管道。

意味着OpenGL 1.1到2.0的图形管道已完全修复。 您可以通过预定义的OpenGL函数影响GPU行为。 (glBeginglPushMatrixglPopMatrix .....)

Modern OpenGL使您能够对渲染过程的大多数阶段产生影响。

可编程管道分为:

  • 顶点着色
  • 镶嵌
  • 几何着色
  • 片段着色

当前的GPU提供的驱动程序可以使用OpenGL着色语言(GLSL)进行编程,以动态编程渲染过程的每个阶段。

管道参考:

<小时/>

更新,由于评论:

由于您可以自定义渲染过程的每个阶段,因此您必须实现适当的着色器程序,以实现自己的照明,阴影甚至投影。这种接缝在开始时是不好的,但你有很多教程可以与它取得联系,而且你可以使用OpenGL的一些功能,因为它们是向后兼容的。 例如,我仍然使用gluPerspective函数来创建投影矩阵。

看看这里:http://open.gl/introduction 这是一个非常复杂且易于理解的教程,可以与现代OpenGL取得联系。

以下是API的一些链接,它们为您提供支持 编程现代OpenGL