为什么16×16像素瓦片如此常见?


9

是否有充分的理由将图块(例如Minecraft的图块)设置为16×16?

我觉得它与二进制有关,因为16是10000二进制,但这可能是巧合。

我想知道是因为我想用地形生成游戏,并且想知道我的瓷砖应该多大,或者这是否真的无关紧要。


1
我不太确定这是如何从“ minecraft块”变为“ pixel tile”的,但是似乎您有一个答案。此外,潜在的重复的块问题:gamedev.stackexchange.com/questions/46955/...和新问题:gamedev.stackexchange.com/questions/26187/...
MichaelHouse

Answers:


9

磁贴和图标(即使在用户界面(如窗口系统)中也是如此)的大小通常为16x16或24x24,以使其易于修改磁贴。大多数情况下,由于以下原因,图块大小是8的倍数。

  • 通过简单地将4个像素放在一起(例如,创建4个像素的中位数/平均值),将32x32到16x16大小的图块缩小相对容易。如果您有类似的瓷砖尺寸17x17,则很难缩小尺寸。

  • 大多数屏幕分辨率也是8的倍数,例如1920x1200(显示器的典型高清分辨率)会导致游戏场上具有120x75的图块(使用16x16的图块大小时)。

  • 如果图块大小是8的倍数,则在编程语言中使用2个图块进行计算(例如,用字符覆盖地形)会更加容易。

  • 历史原因:大多数较早的Sprite引擎(在家用计算机和游戏机中)都有限制,只能将图块设置为8x8或16x16。(在代码小丑的评论后添加)

TL; DR更容易处理8的倍数的磁贴大小。

因此,使用诸如16x16、24x24或32x32之类的图块大小有多种原因。


拥有2的幂是一回事。但是,较旧平台和Sprite引擎的技术局限性也偏向于这些图块大小。
aggsol,2015年

1
确实,例如NES控制台使用8x8的图块。因此,对象精灵和角色精灵的尺寸通常是8的倍数(例如,SMB1中Mario的精灵是16x32的精灵,由八个8x8的图块组成)。
耶勒·范·坎普

4
2D基于图块的游戏中2的幂数大小(8、16、32)的另一个优点是,像素坐标和图块坐标之间的转换可以通过单个按位移位来完成(向右移动以在给定的条件下获得图块像素,向左移动即可获得图块的像素位置)。在3D游戏中,采用2的幂次方大小可以进行mipmapping,从而改善了遥远/倾斜表面的外观并提高了GPU纹理缓存的性能。
DMGregory
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.