从平面纹理生成等距瓷砖

时间:2018-05-18 09:50:03

标签: iteration textures tiles isometric

是否有一个简单的工具(或代码)来使用1或2(侧面/顶部)纹理生成等距切片(立方体格式):

例如采取Minecraft草顶和侧面纹理:

grass side  grass top

生成等距结果:

isometric grass

我有一个包含所有块纹理的文件夹(如果需要,顶部和侧面,块可以是顶部/侧面相同的)

我想从这个输入中迭代并生成所有的等轴测图块,将它们保存为.png文件,但我不知道如何连接纹理并生成它。

我是否可以通过迭代脚本调用现有的软件,api,cli工具?

2 个答案:

答案 0 :(得分:0)

对于像这样的简单3D立方体,可以遵循ImageMagick documentation

convert \
 \( tile_top.png -alpha set -virtual-pixel transparent \
    +distort Affine '0,512 0,0   0,0 -87,-50  512,512 87,-50' \) \
 \( tile_left.png -alpha set -virtual-pixel transparent \
    +distort Affine '512,0 0,0   0,0 -87,-50  512,512 0,100' \) \
 \( tile_right.jpg -alpha set -virtual-pixel transparent \
    +distort Affine '  0,0 0,0   0,320 0,100    320,0 87,-50' \) \
 \
 -background none -compose plus -layers merge +repage \
 -compose over isometric_cube.png

答案 1 :(得分:0)

如果您不在乎源图像是否变得模糊不清,请确保使用所需的任何2d缩放/变换方法。尝试将低分辨率纹理旋转90度的非整数倍,看看会发生什么-这很丑。

如果您希望结果看起来像是完美的像素,则需要使用一个(足够不错的)3d渲染器进行投影-并禁用抗锯齿。

我敢打赌Blender可以做到,那是免费的,尽管我没有在Blender中尝试过。可能有一种方法可以完成任何3d渲染器,让您完全调整相机。 您将源正方形纹理放在正方形的2d平面上,然后使用设置为正交(非透视图)并适当倾斜的已创建摄影机进行渲染-在您的情况下,由于瓦片对我而言是对角的,因此可以向任一侧旋转45度还要下降30度这样可以为您提供像素完美的渲染,您可以将其保存到文件中或复制到剪贴板中,以便在所需的任何图像软件中进行编辑-例如,您仍然需要向其中添加Alpha通道。

如果正确设置摄影机角度,则只需要稍微调整一下摄影机距离,即可使源对象+纹理适合渲染窗口,并使其高度居中-但这不是冗长或困难的过程,因为您已经知道想要的大小并且居中也不难。即使距离太远,它仍然看起来几乎正确-太小了。因此,您只需简单地将相机移到目标对象附近(在局部坐标中,这样角度就不会改变),然后根据需要重新渲染并重复。只需手动执行一次此步骤,然后将保存的场景加载到Blender / 3ds Max / Maya / Whatever中并交换纹理。

这是一个很好的在线教程,可让您完全按照3dsmax的要求进行操作,但是我仍然认为,在任何可以完全控制摄像机的实际3d渲染器中,它几乎都是可以工作的:

http://www.pixelpilot.dk/isometric.htm

请注意,如果您的图块的高度高于0平面(您的示例确实如此),那么您就必须考虑到这一点-可能想从更简单的方法开始,并在确定高度之前先进行工作并了解它

这确实是正确执行并获得始终如一的良好结果的唯一方法。唯一的选择是:a)成为有天赋的艺术家,只需要手工绘制精灵即可。b)精灵的分辨率如此低,以至于不需要任何显着的技能水平。

否则,像我们其他人一样,您首先要在3d中对其建模,然后对其进行渲染以获取投影,然后在完成繁重的工作后用手在图像编辑器中对其进行修饰。

希望有帮助。