2012-06-06 36 views
0

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

+0

我想到了创建瓷砖网格阵列,但是这似乎并没有工作了。 – KeyHeart

+1

你可以更具体地做你想做什么(截图?)。 OpenGL实际上并没有任何'图层'的概念。 – Tim

+0

我正在创建一个基于图块的游戏,我想创建图层,以便在其他图层上绘制图层。例如:在上层画一棵树,在它下面的图层上放草。 – KeyHeart

回答

0

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

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

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

FBO很难使用,但功能强大的工具。

0

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

  • Z缓冲区:第一设置Z缓冲,当你画你定义每次Z值,这就是它(但半透明的对象失败)
  • 知道抽签顺序为:先拉低层,最后顶层(慢于Z缓冲区)