Work in progress

The content of this page was not yet updated for Godot 4.2 and may be outdated. If you know how to improve this page or you can confirm that it's up to date, feel free to open a pull request.

2D 网格

前言

在 3D 中,网格用于显示世界。在 2D 中它们不常见,因为图片使用得更频繁。Godot 的 2D 部分是一个纯 2D 引擎,因此它不能直接显示 3D 网格(尽管它可以通过 ViewportViewportTexture 来实现)。

参见

如果你对在二维视口上显示三维网格感兴趣, 请参见 使用 Viewport 作为纹理 教程.

2D 网格是包含二维几何(Z 轴可以省略或忽略)而不是三维几何的网格。你可以尝试使用代码中的 SurfaceTool 创建它们,并在 MeshInstance2D 节点中显示它们。

目前,在编辑器中生成 2D 网格的唯一方法是导入 OBJ 文件作为网格,或者从 Sprite2D 转换而来。

优化绘制的像素

在某些情况下, 这个工作流程对于优化二维绘图比较有用. 当绘制具有透明度的大型图像时,Godot将把整个四方形(quad)绘制到屏幕上. 大片的透明区域还是会被绘制.

如果绘制非常大的图像时(大概屏幕大小),或者将多个有大透明区域的图像叠加在一起(例如使用 ParallaxBackground 时),这会影响性能,尤其是在移动设备上。

转换成网格能确保只绘制不透明部分, 其余部分被忽略.

将 Sprite2D 转换为 2D 网格

你可以通过把 Sprite2D 转换为 MeshInstance2D 的方法来利用这种优化。从边缘有大量透明的图片开始,就像这棵树:

../../_images/mesh2d1.png

把它放到一个 Sprite2D 中,从菜单选择“转换为 2D 网格”:

../../_images/mesh2d2.png

会出现一个对话框, 显示将要创建的二维网格预览:

../../_images/mesh2d3.png

很多情况下, 默认值已经足够好, 但是你可以根据需要改变growth(增长)和simplication(简化):

../../_images/mesh2d4.png

最后,按下 转换 2D 网格 按钮,你的 Sprite2D 将被替换:

../../_images/mesh2d5.png