2D精灵纹理的mipmaps用途是什么?

8

在当前的Unity中,

用于Unity.UI作为常规UI..

对于任何“Sprite(2D和UI)”,实际上它总是默认打开“Generate Mip Maps”。每次您放入图像时,都必须将其关闭并应用。

正如评论中所指出的,这些天您实际上可以使用世界空间UI画布,事实上高级用户可能确实有(例如)“悬浮在Zelda头上的按钮,并且它们在远处”。但是,如果您是日常Unity用户添加按钮,只需将其关闭即可 :)

enter image description here


精灵(特别是在3D中)可能远离相机。在这种情况下,没有必要使用全尺寸的精灵。 - Bart
嗯,但那将是一个远处物体上的纹理吗?(它会有光照等)。您永远不会缩小UI元素,也不会缩小“Sprite”。 - Fattie
在一个正交视图的游戏中,玩家可以进行缩放操作,这时候使用 mipmaps 是非常必要的,否则从远处观察时,详细的物体会呈现出糟糕的效果。特别是那些位于光亮物体前面的暗色透明精灵(比如天空背景上的黑色树叶)。 - Menyus
1
感谢@Menyus - 当然,但这个讨论更多地涉及使用Unity UI系统。 - Fattie
@Fattie 哦,我的错,伙计! - Menyus
1个回答

10
在Unity中,“sprites”仍然可以在3D空间中定位。例如,在世界空间画布上。此外,当缩放精灵时会使用mipmaps。这是因为mipmap采样是由纹素大小而不是距离确定的。
如果精灵是平面的并且完全按比例缩放,则没有使用mipmaps的理由。这可能适用于您的图标示例。
我怀疑在2D游戏中,默认情况下启用它,其中精灵通常不会被完美缩放。需要澄清的是,精灵不需要在画布上。精灵可以作为其自己的GameObject存在,并具有Sprite Renderer(不在画布上)。在这种情况下,缩放相机视图将更改屏幕上精灵的大小,从而导致mipmapping由于纹素大小的变化而发生。这使得在没有画布的情况下始终完美缩放精灵成为具有挑战性的任务。

主要的观点是,“sprites”在UI之外的更多地方被使用。我相信在场景中拖动一个sprite的默认行为是创建一个sprite gameobject,而不是将其添加到UI中(我可能错了)。Sprite gameobjects(不在画布上)将用于游戏玩法,这通常包括缩放相机视图以模拟放大或缩小。我同意您的观点,在标准UI中需要mipmaps是个例外。然而,在世界空间UI中将需要它们,因为相机可能会以陡峭的角度渲染UI。 - agriffin
我想你是对的。它似乎非常晦涩难懂。无论如何,这可能更多是一个讨论点而不是一个问题。干杯! - Fattie
1
“Scaled” 还包括不同的屏幕分辨率。如果您支持高 DPI 和低分辨率屏幕(例如 4k vs1080p 或各种 Android 手机),那么 mipmaps 将使您的高 DPI 精灵在低分辨率屏幕上看起来更好,性能也更好。 - Sarah Northway

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接