opengl / JOGL - 绘制纹理的最佳方法

时间:2014-07-13 10:42:06

标签: java opengl textures draw jogl

我想到了在OpenGL / JOGL中绘制图片的最佳方法。 我目前正在编写游戏,我的目标是将图片信息保存在文本文件中,而不是保存图片。 我的想法是编写一种方法,将每个像素信息(RGB)保存在X和Y的位置。 然后我绘制每个像素并完成。

你对这个想法有什么看法?

1 个答案:

答案 0 :(得分:1)

您应该只使用TextureIO从图片中制作纹理,并将此纹理与4个顶点一起使用,这些顶点在绘制时具有一些纹理坐标。 glReadPixels()非常慢,读取图片的每个像素会花费很多时间,保存其内容作为文本文件需要大量内存(将其保存为无损格式的压缩图像,如PNG可能是值得一试),逐个绘制每个像素比绘制纹理慢很多。 derhass是对的。你可以对你的图片进行矢量化(从中制作一个SVG),但你必须在之后光栅化它,或者你必须实现一些矢量化内容的渲染,它可能比使用纹理慢。我不确定你真的需要一个屏幕外缓冲区。

当我开始为第一人称射手工作时,我遇到了类似的问题。我一开始并没有使用JOGL,我重用了其他人的源代码,它依赖于图像中的软件渲染,但速度非常慢。然后,我使用JOGL逐个绘制每个像素而不是使用Java2D,它在我的机器上快了大约4倍但对我来说仍然很慢。最后,我不得不重新设计整个渲染以使用OpenGL,因为derhass会说,我使用三角形,四边形和纹理。性能变得可以接受,这就是你应该做的,使用OpenGL绘制原语并澄清你想要实现的目标,以便我们能够更好地帮助你。

相关问题