进入更新的OpenGL

时间:2010-12-02 22:07:11

标签: java opengl graphics

几年前,我在OpenGL2.1上做了很多演示,编写了许多使用基本功能(主要是立即模式)的演示,而没有关心整个着色器方法。

现在我再次需要OpenGL用于个人项目,从我正在阅读的这种API的整个方法发生变化,因为现在几乎所有内容都是由GPU通过顶点/像素着色器直接创建的。

我想知道实际的最新技术(我的意思是开发效率和结果)的主要区别是OpenGL与我的用途相比。

是否存在任何来自旧方法的教程?我是否应该放弃手动应用转换的旧想法,使用glBegin..glEnd等来绘制内容?

由于我正在使用Java,我想使用一个好的库,你有什么建议吗?我发现LWJGL似乎也很好,如果一切都已经管理好了,我想知道是否值得使用它,或者只是根据需要坚持一些更重要的写作组件(如数学相关对象)。

2 个答案:

答案 0 :(得分:6)

旧的即时模式和新的做事方式之间的差异非常大。令人惊讶的是,没有那么多好的内容,你可以忽略99%的网络上的OpenGL教程。

LWJGL的好处是,一旦你理解了LWJGL和常规OpenGL调用之间的差异,你通常可以使用其他语言的教程。

我能找到的唯一3个好资源是:

此外,LWJGL很棒。它不会给你更高级别的抽象,因为它只是一个围绕C调用的薄包装(但这也意味着它不会在尝试制作OpenGL OO时做一个平庸的工作),而且它的性能非常好。 LWJGL没有提供很多(甚至是数学),所以你很可能需要获得(或作为最后的手段)数学库来处理复杂的事情。

答案 1 :(得分:3)

Durian Software上有一些关于现代OpenGL编程的博客文章。它在C中,但它使用着色器(用GLSL编写),因此C代码的数量并不是那么好。

根据维基百科,有与Java的GLSL绑定,所以你可能想要研究它。

显然,LWJGL支持着色器:http://lwjgl.org/wiki/index.php?title=GLSL_Shaders_with_LWJGL

这是我之前提到的第一篇博文的链接:

http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Chapter-1:-The-Graphics-Pipeline.html

我希望有所帮助!