2D Meshes (2D网格)

简介

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

参见

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

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

目前,在编辑器中生成二维网格的唯一方法,是导入一个OBJ文件作为网格,或者从Sprite转换而来.

优化绘制的像素

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

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

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

将Sprite转换为2D Meshes (2D网格)

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

../../_images/mesh2d1.png

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

../../_images/mesh2d2.png

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

../../_images/mesh2d3.png

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

../../_images/mesh2d4.png

最后,按下 Convert 2D Mesh 按钮,你的Sprite将被替换:

../../_images/mesh2d5.png