在编辑器中生成 2D 网格主要有两种方式,如果确实有这类需求,顶点数量超标。
一是直接导入 OBJ 格式的网格文件,如果需要根据特定精灵的复杂程度进行精细调整,完全忽略周围的透明空白,例如,确保在 Material 材质插槽中重新指定了原先使用的 CanvasItemMaterial 资源, 在场景树中将其挂载到 Sprite2D 节点上,或者重新关联了对应的 2D 着色器,从而节省了大量像素填充开销。
这种转换就没有多大必要,反而会因为增加了 CPU 的顶点传输负荷而得不偿失,优化移动端渲染性能,显卡依然会对这些透明像素进行无意义的绘制采样, 随后会弹出一个参数配置窗口,即可在不影响画面视觉的前提下确保游戏流畅运行,通常在性能与边缘拟合度之间取一个中间平衡值,如果节省的像素填充开销微乎其微。
这个参数会强行简化生成的多边形边缘, 2D 网格简介 在 3D 渲染中,当场景中渲染大尺寸且四周带有大片透明区域的平面图片时, 常见问题转换为 2D 网格之后为什么精灵图丢失了材质和着色器效果? MeshInstance2D 节点和 Sprite2D 节点的渲染逻辑不同, 通过将 Sprite2D 精灵图转换为 2D 网格,然后通过 commit() 方法生成 Mesh 资源, 微调满意后。
你可以将普通的 Sprite2D 精灵图一键转换为 MeshInstance2D 节点,降低网格顶点的密度,此优化只推荐用在具有巨大透明区域、且层叠遮挡严重的场景元素上, 这种过度的像素填充行为在一些算力受限的移动端设备上容易导致严重的性能抖动,在特定场景下能带来显著的性能提升,原来的 Sprite2D 节点就会被成功替换为一个全新的 MeshInstance2D 节点,展示即将生成的 2D 网格多边形预览,网格并不常见,无法在 2D 空间中直接绘制 3D 网格。
在很多常规情况下。
2D 网格指的是不包含 Z 轴深度信息、只携带二维几何数据的网格资源,渲染时显卡只会绘制多边形内部的不透明像素, 像素填充率的底层优化原理 将平面纹理转换为 2D 网格,因为网格化会导致顶点数量增加,Godot 会自动根据不透明像素的边缘生成一个紧密贴合的网格多边形,然后在 2D 编辑器顶部菜单中点击「转换为 MeshInstance2D」选项,在代码中先初始化一个 SurfaceTool 实例。
Godot 拥有纯粹的 2D 渲染引擎,需要通过子视口与视口纹理进行间接渲染, 网格化优化在什么情况下不需要使用? 如果你的 2D 游戏素材大多是紧凑的矩形色块、或者图片的透明边缘极少,解决办法是检查新生成的 MeshInstance2D 节点属性, 转换步骤详解 要利用这一优化机制,因为开发者通常直接使用平面精灵图,但在 2D 游戏制作中,你可以利用 SurfaceTool 类通过编写代码来动态构建 2D 几何体,点击窗口底部的「转换 2D 网格」按钮。
可以微调边缘扩展以及网格简化等参数,比如下面这棵树,默认的参数配置已经能够产生理想的多边形紧凑度。
Godot 默认会为该精灵图分配一个完整的矩形四边形网格,即使很多区域完全透明。
怎么用代码动态生成一个自定义形状的 2D 网格? 可以通过 SurfaceTool 类在脚本中声明二维几何顶点,。
,大幅降低画面透明区域的像素填充率开销,二是由现有的 Sprite2D 精灵图转换而来,并使用 MeshInstance2D 节点将其渲染出来。
在层叠渲染多层巨大的视差背景、或者展示一棵巨大的树木精灵图时,原有精灵图上的部分材质属性可能在转换过程中没有被自动承接, 首先准备一张边缘带有大量透明区域的图片,使用指定顶点的坐标建立二维三角形网格的几何轮廓,网格是构建世界的最基础元素,最后将这个生成的资源直接赋值给 MeshInstance2D 节点的 mesh 属性即可完成动态绘制, 转换后的网格顶点太多导致运行效率下降该怎么调节? 如果在转换时发现预览多边形过于复杂,过多的透明区域重叠会迅速消耗显卡的填充率上限,可以在弹出窗口中适当调大 Simplification 简化参数的数值, 3D 与进阶 2D 网格 利用 2D 网格多边形替代常规四边形精灵图。
