跳到主要内容

构造实体几何(CSG)

概述

这一小节你将详细了解构造实体几何(CSG)节点的相关知识。

CSG是英文Constructive Solid Geometry的缩写,中文名是构造实体几何。它是一种组合基本形状或自定义网格以创建更复杂形状的工具。在3D建模软件中,CSG通常被称为“布尔运算符”。 在三维引擎中一般无法对外部导入模型的网格信息直接修改,因此在IdeaXR中,我们可以利用CSG形状的灵活可编辑性,快速搭建简易关卡,适用于场景原型设计。

基础用法

创建CSG节点

我们可以通过以下步骤快捷创建CSG节点:

Docusaurus Plushie

添加多个CSG节点,互为父子结构,选中子节点可对父节点进行布尔运算

Docusaurus Plushie

网格布尔运算

布尔运算有以下三种操作方式:

  • 合并(Union)合并两个基础形状的部分,删除相交部分。
  • 相交(Intersection)只保留相交的基础形状,删除其余部分。
  • 扣除(Subtraction)从第一个形状减去第二个形状,留下一个带有其形状的凹痕。

Docusaurus Plushie

Docusaurus Plushie

形状编辑

CSG模型物体属性可进行平移,旋转,缩放等属性编辑操作,也可直接对长宽高,边数,锥体等参数进行调节,或在场景中对模型形态进行编辑操作。

基础形状

包括CSG立方体,CSG圆柱体,CSG球体和CSG环形。

CSG立方体

可以通过立方体属性中宽度高度深度属性编辑立方体的形状:

Docusaurus Plushie

Docusaurus Plushie

CSG圆柱体

可以通过修改边数,勾选启用锥形平滑表面等属性编辑圆柱体的形状,其中边数可以改变圆柱体的面片数,数量越大表面越精细:

Docusaurus Plushie

Docusaurus Plushie

CSG球体

可以通过球体属性中半径环数径向段数等属性编辑球体形状,其中径向段数可以改变球体的表面细节,数量越大表面越光滑:

Docusaurus Plushie

Docusaurus Plushie

CSG环形

可以通过环形属性中内/外半径边数环面边数等属性编辑环形形状:

Docusaurus Plushie

Docusaurus Plushie

CSG多边形

CSG多边形拉伸2D多边形形状以创建3D网格。

节点工具——绘制多边形

选择如下可以在场景中选出想要的点,框中1是重新画多边形,2是可以在原来的基础上编辑点

Docusaurus Plushie

需要注意的是,多边形将被绘制到XY平面上,因此要确保把场景世界坐标原点调到可以看见视口原点的地方,以免操作时看不到效果

Docusaurus Plushie

根据选择的点绘制出来的多边形三维网格

Docusaurus Plushie

选择拉伸模式:

  • 深度模式

Docusaurus Plushie

Docusaurus Plushie

  • 旋转模式

Docusaurus Plushie

Docusaurus Plushie

  • 路径模式

我们也可以通过创建一个路径节点在多边形中去指定,然后根据指定的路径绘制3维网格 Docusaurus Plushie

在场景中新建路径节点后(路径绘制的方法详见路径章节【todo】),为CSG多边形指定路径节点对象:

Docusaurus Plushie

得到如下三维网格效果:

Docusaurus Plushie

路径间隔:

改变路径间隔的效果

Docusaurus Plushie

note

路径间隔不可以设置太小,否则面片数太多会影响性能

路径旋转(拉伸截面的朝向):

  • 多边形: 多边形的形状不会被旋转,三维网格的截面始终平行于多边形。

Docusaurus Plushie

  • 路径:三维网格的截面始终和路径起始点的截面平行。

Docusaurus Plushie

  • 跟随路径:三维网格的截面始终与路径轴线垂直。

Docusaurus Plushie

通用属性

翻转面

该属性可翻转三角网格表面的法线朝向,勾选后可切换内表面或外表面的显示。

Docusaurus Plushie

布尔运算

当创建两个CSG模型时,将他们作为父子级放在一起的时候,可以进行合并,相交,扣除等操作,如图所示。

Docusaurus Plushie

投影阴影

几何实体的通用属性,选择物体后可以改变它的投射阴影为接受,或取消,如图所示,接受则会有阴影出现,取消泽没有阴影出现。

Docusaurus Plushie

可见性

空间节点的通用属性,这个节点可以控制物体的显示或影藏,主要应用在于对这个属性制作关键帧,添加动画后,可见节点后会有关键帧的小钥匙按钮,可以进行关键帧K帧。

Docusaurus Plushie

应用案例

基础应用

例1:在墙上开个任意门

在墙上开个任意门,基于CSG立方体和CSG多边形(深度模式)

Docusaurus Plushie

例2:捏个任意形状的花瓶

基于CSG多边形(旋转模式)

Docusaurus Plushie

高级应用

利用CSG多边形(路径模式)和Path创建任意形状线缆

Docusaurus Plushie