精灵表和纹理图集之间有什么区别?


21

我想知道子画面和纹理图集之间的区别是什么?

两者不一样吗?在Sprite工作表中,您有一些Sprite;在纹理图集中,您也有一些Sprite,所以有什么区别?

Answers:


23

Sprites-sheet(通常是指较大的图像)应该包含游戏中特定2D角色或投射物的动画帧。您几乎可以将其视为2D字符的模型。它存储为特定角色创建的所有各种动画。

在此处输入图片说明

纹理图集(通常是指包含大量纹理的 2d图像)。您可以将它们视为“绘制”在3d对象上的2d图像,或者作为着色器的一部分应用于它们,以向渲染器解释(将3d数据转换为2d图像的部分)它们如何反射光(法线贴图)或如果其表面上有任何凹槽,凸起或裂缝(凹凸贴图),或者可能还有其他诸如不透明之类的东西。该术语(纹理图集)通常用于3d游戏环境。任何3d对象(例如,武器,垃圾桶)或角色都可以应用纹理。特别是3d水平可能需要3d风景中各种墙壁和元素的多种不同纹理。所有这些纹理都可以轻松有效地包含在单个大图像中,该大图像由专用于特定模型的许多正方形(子区域)组成。

在此处输入图片说明

同样,可能需要注意的是,纹理图集通常包含角色皮肤(角色纹理),并且实际动画(表示显而易见)并未存储为2d图像,因为在这种情况下,动画通常基于网格的变形,骨头之类的工具。


2
所以你可以说SpriteSheets包含2D特征,而TextureAtlases包含TileSets?
user41816 2014年

3
tl; dr:是的,这是绝对正确的。Sprites Sheets通常表示大量特定角色的动画帧或其他情况下的多个角色。Texture Atlas通常是指包含许多子纹理的大图像;2d tiles非常适合该texture类别。因此,a Tile Set是一种非常特殊的纹理图集(或子类别)。在许多情况下,A texture Atlas也可能包含skins,因此Tile Set在一般情况下不是。
wolfdawn 2014年

嗯 看到评论后,我便撤回了我的投票。您的答案是正确的,只要Spritesheet用于2D(即Sprite),并且纹理图集通常用于3D(即放置在3D几何体上的实际纹理)。仅此而已-没有其他预选赛。
工程师

@ArcaneEngineer我不明白吗?您指出或建议的答案有待改进?
wolfdawn

1
@ArcaneEngineer-您说得对,绝对好,评论是令人误解的,有些不正确。同样,术语“瓦片集”具有误导性,因为如果定义不正确,它对不同的人可能意味着不同的意思。
wolfdawn

6

从技术上看,它是相同的:这是一个包含较小图像(子画面)的大图像。

3d vs 2d在这里没有区别,因为几乎所有2d游戏引擎都使用3d硬件进行渲染。


2

精灵表和纹理图集几乎相同。它们都是位图图像文件(jpg,png等),它们包含多个较小的图像(通常在网格中),并使用软件/游戏引擎对它们进行索引和显示,该软件/游戏引擎通过其坐标定位单个图像。它们还仅通过管理和加载单个文件来简化资源管理并降低绘图调用。

此工作表/地图集既包含角色的帧动画(通常用于“精灵表”),也包含将平铺为墙的纹理的图像(也称为“纹理地图集”):

银河战士

似乎不同之处在于它们通常是如何实现的。正如其他答案所指出的,在2D游戏中,通常将精灵表用于动画或按钮,而纹理图集中的图像用作网格对象的纹理。

尽管上下文和图像上显示的内容很重要,但程序管理和操作图像的方式也很重要。在游戏引擎中用作精灵表的图像文件可以依次播放各个图像以创建动画。但是,您可以在同一引擎中将与纹理图集相同的图像文件与网格上的图块一样使用,以创建砖壁。

这意味着根据您的软件如何管理这两种类型的使用,存在更具体的区别。例如,在Unity中,将应用于游戏对象的图像从子画面转换为Texture2D,然后将其作为纹理应用于另一个GameObject并不是那么容易。我就是通过Google到达此页面并决定添加此答案的。:-)


0

我会说纹理图集是最笼统的术语:您可以从纹理图集构建精灵表,但通常不是这样。

关键的独特假设是将纹理坐标映射到几何体的方式:精灵板假设为矩形子区域,而纹理图集可以映射到任何几何表面。

如果从纹理图集映射的所有几何表面碰巧都是2D四边形,则说明您有一张精灵表。如果随时间或逐帧更改映射,则可以模拟2D角色动画。

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.