Use Java Graphics2D vs JOGL



我开始用Java学习计算机图形学。我想知道,我应该在学习JOGL之前学习Java2D,还是应该只学习JOGL(它也处理三维图形)?这(我希望)不是一个基于观点的问题,因为我正在寻找一条正确的道路。换言之,我想我的问题是:如果JOGL存在,那么拥有Java Graphics 2D库有什么意义?

注意:我的最终目标是能够为商业应用程序开发图形。

您所说的"业务应用程序"是什么意思还不完全清楚。你说的不是"电脑游戏行业",是吗

说真的:几乎每一个"我应该用X还是Y?"形式的问题都有相同的答案:

  1. "这取决于你到底想做什么">
  2. 主观的

Graphics2D类是一个相当高级的抽象,只需几行就可以完成第一次自定义绘制操作。它们是直观的。你想用Graphics2D画一条线吗?好吧,打电话给graphics.drawLine(0,0,100,100);。你很快就会有成功的感觉。入门的基本代码方便地总结在http://docs.oracle.com/javase/tutorial/uiswing/painting/,并从http://docs.oracle.com/javase/tutorial/2d/geometry/index.html还有一些幻想,你已经可以达到很好的效果了。

OpenGL是一个不同的世界。首先,它的重点是3D图形,而这不仅仅是"2D的超集"。虽然从技术上讲也可以使用OpenGL进行2D图形,但这并不是它的初衷。它更接近硬件,通过强大(复杂)的渲染技术为大型3D对象的高性能管理量身定制。你想用OpenGL画一条线吗?好吧,如果你想用纯的、现代的(!)OpenGL来实现这一点,它可能需要100行代码,包括你自己用GLSL编写的着色器程序。没有深厚的数学和图形卡领域的背景,也没有阅读精心制作的教程或书籍(比如http://arcsynthesis.org/gltut/),您几乎无法将任何带到屏幕

总结一下,关于你的实际问题:

如果JOGL存在,那么拥有Java Graphics 2D库有什么意义?

如果您想创建一些2D图形,可能是一些条形图、饼图或折线图,也可能是一些图像,由于OpenGL的复杂性,您根本不会使用它。Java2D是标准API的一部分,它是为类似的事情定制的(当然,仍然有不同的、更专业的库用于不同的目的)。如果你想做任何超越2D的事情,或者使用一些非常复杂的渲染效果,你必须使用OpenGL。

相关内容

  • 没有找到相关文章