如何使用LWJGL创建图层?

时间:2012-06-06 01:37:12

标签: java opengl lwjgl

我一直试图将我之前的游戏从C#移植到Java。我想知道如何创建可以绘制图块的图形图层。

2 个答案:

答案 0 :(得分:0)

除了深度缓冲区,颜色缓冲区和模板缓冲区,您还可以使用帧缓冲区对象(FBO)http://www.songho.ca/opengl/gl_fbo.html

它可以用作绘图目的地,例如制作镜子时首先将镜像视角渲染到某些临时纹理上,然后使用此纹理渲染镜像,就像为每个图层制作纹理一样所以你可以精确地绘制你需要的图层,最后渲染不同高度的所有图层(或者你想用它们做什么)。

或者像Tim一样简单地评论当你想要在层'n'上绘制某些东西时,你在高度z = n上渲染它,但是这样你就不会有物理层图像但它们全部组合在一起,所以如果你需要它们的话在图像处理(对不同图层的特殊效果)或将它们保存为图像后,您应该使用FBO。但在某些情况下,您可以在不同图层上绘制时应用不同的着色器。

FBO更难使用,但功能强大。

答案 1 :(得分:0)

对我来说效果最好(在2D游戏中):

  • Z-Buffer:首先设置Z-buffer,当你绘制时,你每次定义一个Z值,那就是它(但是在半透明物体处失败)
  • 知道绘制顺序:先绘制低层,最后绘制顶层(慢于z缓冲区)