CSG¶
CSG代表 构造实体几何 ,是一个组合基本形状或自定义网格以创建更复杂形状的工具。在三维建模软件中,CSG通常被称为“布尔运算符”。
级原型是CSG在Godot中的主要应用之一。此技术允许用户通过组合基本体来创建最常见形状的简单版本。内部环境可以通过使用反转原语来创建。
CSG节点介绍¶
与godot的其他特性一样,CSG以节点的形式得到支持。这些是CSG节点:
CSG工具功能¶
每个CSG节点支持3种布尔运算:
工会: 合并两个基本体的几何体,删除相交的几何体。
交叉: 只保留相交的几何图形,其余的将被删除。
减法: 第二个形状从第一个形状中减去,留下一个凹痕。
CSGPolygon¶
这个 CSGPolygon 节点沿以二维(x,y坐标)绘制的多边形拉伸,方法如下:
深度: 挤出一定量。
旋转: 围绕其原点旋转时挤压。
路径: 沿路径节点拉伸。此操作通常称为放样。
注解
这个 Path 模式必须提供 Path 要工作的节点。在路径节点中,绘制路径,CSGPolygon中的多边形将沿给定路径挤出。
自定义网格¶
任何网格都可以用于 CSGMesh ;网格可以在其他软件中建模并导入godot。支持多种材质。几何图形有一些限制:
它必须关闭,
它不能自相交,
它不能包含内部面,
每个边只能连接到另外两个面。
CSGCombiner¶
这个 CSGCombiner 节点是用于组织的空形状。它将只合并子节点。
处理订单¶
每个CSG节点将首先按照树的顺序处理其子节点及其操作:并集、交集或相减,并将它们依次应用于自身。
注解
为了提高性能,请确保CSG几何体相对简单,因为复杂的网格可能需要一段时间来处理。如果将对象添加到一起(如表对象和房间对象),请将它们创建为单独的CSG树。在一个树中强制过多的对象最终将开始影响性能。只在实际需要的地方使用二进制操作。
原型化一个层次¶
我们将建立一个房间的原型来练习使用CSG工具。
小技巧
在…工作 正交 在组合CSG形状时,投影可以提供更好的视图。
我们的级别将包含这些对象:
一个房间,
一张床,
一盏灯,
一张桌子,
书架。
创建一个以空间节点作为根节点的场景。
小技巧
环境的默认照明在某些角度上不提供清晰的阴影。使用更改显示模式 显示透支 在“三维视区”菜单中,或添加一个定向光节点以帮助您清楚地看到。
创建一个CSGBox并命名它 room
使能 反转面 改变你房间的尺寸。
接下来,创建一个CSGCombiner并命名它 desk
.
一张桌子有一个表面和四条腿:
在中创建1个CSGBox子节点 联合 表面模式并调整尺寸。
在中创建4个CSGBox子节点 联合 支腿模式并调整尺寸。
调整它们的位置,使之像桌子。
注解
CSGCombiner中的CSG节点将只在合并器中处理其操作。因此,使用csgcombiner来组织csg节点。
创建一个CSGCombiner并命名它 bed
.
我们的床由三部分组成:床、床垫和枕头。创建一个CSGBox并调整其床的尺寸。创建另一个CSGBox并调整其床垫尺寸。
我们将创建另一个名为 pillow
作为的孩子 bed
. 场景树应该如下所示:
我们将在 联合 形成枕头的模式。缩放球体的Y轴并启用 平滑面 .
选择 pillow
节点并将模式切换到 减法 合并后的球体会在床垫上开一个洞。
尝试重新设置父级 pillow
节点到根 Spatial
节点;孔将消失。
注解
这是为了说明CSG处理顺序的效果。因为根节点不是CSG节点,所以CSGCombiner节点是操作的结束;这显示了使用CSGCombiner组织CSG场景。
观察效果后,松开重新父级。你造的床应该是这样的:
创建一个CSGCombiner并命名它 lamp
.
灯由三部分组成:支架、灯杆和灯罩。创建csgcylinder,启用 Cone 让它成为看台。创建另一个CSG气缸并调整尺寸以将其用作电极。
我们将使用一个CSG聚合物作为灯罩。使用 Spin csgpolygon的模式并绘制 trapezoid 在 前视图 (数字键盘1);此形状将围绕原点拉伸并形成灯罩。
调整3个部件的位置,使其看起来像一盏灯。
创建一个CSGCombiner并命名它 bookshelf
.
我们将使用3个CSGBox节点作为书架。创建一个CSGBox并调整其尺寸;这将是书架的大小。
复制CSGBox并缩短每个轴的尺寸并将模式更改为 减法 .
你几乎已经建造了一个架子。再创建一个CSGBox,将搁板分为两层。
把你的家具放在你喜欢的房间里,你的场景看起来应该是这样的:
您已经使用godot中的CSG工具成功地构建了一个房间级别的原型。CSG工具可用于设计各种级别,如迷宫或城市;在设计游戏时探索其局限性。