3d 在等距瓷砖游戏中实现和设计墙的最佳方法是什么?

3d 在等距瓷砖游戏中实现和设计墙的最佳方法是什么?,3d,isometric,3d,Isometric,我在想这个解决方案将在哪里应用,这是一个可以改变瓷砖的游戏,有点像一个编辑器。您需要为两种类型的墙制作图形:西向和东向或北/西向 在等轴测瓷砖游戏中,似乎有两种方法可以设置墙: 将它们稍微画在瓷砖外面(模拟人生1、主题医院、锯齿联盟2、Zomboid项目) 将它们做成1x1(瓷砖)大,并在它们自己的瓷砖上绘制(Ultima 8,每一个rougelike) 示例图 第二种方法似乎是最简单的方法。因为墙占据了整个瓷砖,所以您不必担心地板的重叠,也不必为此设计图案。但是,如果您想制作不同于网格大

我在想这个解决方案将在哪里应用,这是一个可以改变瓷砖的游戏,有点像一个编辑器。您需要为两种类型的墙制作图形:西向和东向或北/西向

在等轴测瓷砖游戏中,似乎有两种方法可以设置墙:

  • 将它们稍微画在瓷砖外面(模拟人生1、主题医院、锯齿联盟2、Zomboid项目)
  • 将它们做成1x1(瓷砖)大,并在它们自己的瓷砖上绘制(Ultima 8,每一个rougelike)
示例图

第二种方法似乎是最简单的方法。因为墙占据了整个瓷砖,所以您不必担心地板的重叠,也不必为此设计图案。但是,如果您想制作不同于网格大小的图案,您确实会遇到另一个问题。如果你想有一个相当薄的墙。您的网格也需要更大。在正面,只需要1个墙板

第一个aproach需要一些代码来检测墙外的变化来绘制,并且可能看起来有点奇怪,除非在它周围设计地砖。它还需要至少4件


哪种方法是进行此操作的首选方法?为什么?

我建议从距离最远的对象开始渲染,然后以距离最近的对象结束渲染-这样可以获得一个简单的不变量:距离摄影机较近的对象可以覆盖距离较远的对象(如在现实生活中)


备选方案:您可以使用对象的“Z”坐标中的细微差异来让depthbuffer发挥作用——如果使用depthbuffer,渲染顺序是不相关的,但最好从最近的开始——这样渲染的texelcount可以更低

我将使用第二个选项,让墙占据自己的瓷砖。这是最容易实现的,需要较少的工作,艺术家的一部分


如果你担心做薄壁墙的能力,只需确保你的瓷砖尺寸足够小。您的游戏瓷砖不需要遵循地板上绘制的图案,例如,现实生活中的地板瓷砖可能由2x2个游戏瓷砖组成。

渲染顺序对问题并不重要。我所期待的是如何用最少的墙片设计图形,而不出现大洞,同时仍然获得等距游戏所具有的统一外观。只有一块,不可能创建4个没有重叠的围墙,因此我的问题是:它是如何做到的?这里有另一个例子来说明我的问题:数字代表预期的绘图顺序,但正如你所看到的,它没有给我想要的结果。