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