Godot项目设置:拉伸模式

时间:2024-03-15 18:03:07

拉伸设置

拉伸设置位于项目设置中,并提供几个选项:

Godot项目设置:拉伸模式

拉伸模式 (Stretch mode)

“拉伸模式”设置定义了如何拉伸基本大小以适合窗口或屏幕的分辨率。

Godot项目设置:拉伸模式

下面的动画使用仅16×9像素的“基本大小”来演示不同拉伸模式的效果。 单个精灵,大小也是16×9像素,覆盖整个视区,并在其上添加一个对角线 Line2D :

Godot项目设置:拉伸模式

  • Stretch Mode = Disabled (default): 没有拉伸发生。 场景中的一个单位对应于屏幕上的一个像素。 在此模式下,“拉伸宽高比”设置无效。

如果您想要完全控制每个屏幕像素,这是一个不错的选择,并且可能是3D游戏的最佳选择。

Godot项目设置:拉伸模式

  • Stretch Mode = 2D: 在此模式下,项目设置中在显示/宽度和显示/高度中指定的尺寸将被拉伸以覆盖整个屏幕(考虑“拉伸纵横比”设置)。 这意味着所有内容都直接以目标分辨率渲染。 3D基本上不受影响,而在2D中,子画面像素和屏幕像素之间不再存在1:1对应关系,这可能会导致缩放伪影。

这是一个很好的选择,如果你的2D作品有足够高的分辨率,不需要像素完美的渲染。考虑在你的2D纹理和字体上启用纹理过滤和mipmapping。

Godot项目设置:拉伸模式

  • Stretch Mode = Viewport: 视口缩放意味着将根视口的大小精确设置为“项目设置”的“显示”部分中指定的基本大小。 首先将场景渲染到此视口。 最后,缩放此视口以适合屏幕(考虑“拉伸宽高比”设置)。

当使用像素精度游戏时,或者为了渲染到较低的分辨率以提高性能,此模式很有用。

Godot项目设置:拉伸模式

拉伸比例(Stretch aspect)

第二个设置是拉伸比例。请注意,只有当拉伸模式设置为非禁用时,此设置才会生效。

在下面的动画中,您会注意到灰色和黑色区域。 黑色区域由引擎添加,无法绘制。 灰色区域是场景的一部分,可以绘制。 灰色区域对应于您在2D编辑器中看到的蓝色框架外的区域。

  • Stretch Aspect = Ignore: 在拉伸屏幕时,忽略长宽比。这意味着原始分辨率将被拉伸到完全填满屏幕,即使屏幕更宽或更窄。这可能会导致非均匀拉伸:东西看起来比设计的更宽或更高。

Godot项目设置:拉伸模式

  • Stretch Aspect = Keep: 在拉伸屏幕时保持高宽比。这意味着不管屏幕分辨率如何,viewport都会保持它原来的大小,并且屏幕的顶部/底部(“letterboxing”)或边(“pillarboxing”)都会添加黑条。

如果您事先知道目标设备的宽高比,或者您不想处理不同的宽高比,这是一个不错的选择。

Godot项目设置:拉伸模式

  • Stretch Aspect = Keep Width: 在拉伸屏幕时保持高宽比。如果屏幕比基本尺寸更宽,则在左边和右边添加黑色条(柱框)。但如果屏幕高于基本分辨率,视口将在垂直方向增长(更多的内容将在底部可见)。您也可以将其视为“垂直展开”。

这通常是创建可扩展的GUI或HUD的最佳选择,因此一些控件可以锚定到底部( 大小和锚定点)。

Godot项目设置:拉伸模式

  • Stretch Aspect = Keep Height: 在拉伸屏幕时保持高宽比。如果屏幕比基本尺寸高,则在顶部和底部(信箱)添加黑条。但是,如果屏幕比基本分辨率更宽,则视口将在水平方向上增大(右侧将可见更多内容)。您也可以将其视为“水平扩展”。

这通常是水平滚动的2D游戏的最佳选择(如跑步者或平台游戏者)。

Godot项目设置:拉伸模式

  • Stretch Aspect = Expand: 在拉伸屏幕时保持宽高比,但既不保持基本宽度也不保持高度。根据屏幕宽高比,视口在水平方向(如果屏幕比基本尺寸宽)或垂直方向(如果屏幕比原尺寸高)将变大。

Godot项目设置:拉伸模式

拉伸收缩

收缩设置允许您在上述拉伸选项已经提供的基础上添加一个额外的缩放系数。默认值为1意味着不会发生缩放。

例如,如果您将 "收缩 "设置为4,并将 "拉伸模式 "设置为 “禁用”,那么场景中的每个单元将对应屏幕上的4×4像素。

如果将拉伸模式设置为禁用以外的其他模式,根视口的大小就会按收缩系数缩小,输出中的像素也会按相同的比例放大。这对于2D游戏来说很少有用,但在3D游戏中可以通过以较低的分辨率渲染来提高性能。