0

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

4

2 回答 2

0

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

  • Z-Buffer:首先设置 Z-buffer,当你绘制时,你每次定义一个 Z 值,就是这样(但在半透明对象处失败)
  • 知道绘制顺序:先绘制底层,最后绘制顶层(比 z-Buffer 慢)
于 2012-12-04T06:34:34.703 回答
0

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

它可以用作绘图目标,例如制作镜子,您首先将镜像视点渲染到一些临时纹理上,然后使用此纹理渲染镜子,同样的方式您可以为每一层制作纹理,这样您就可以准确地在您需要的图层上绘制,最后以不同的高度渲染所有图层(或您想要对它们做什么)。

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

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

于 2012-06-12T07:23:59.670 回答