构造实体几何(CSG)
概述
这一小节你将详细了解构造实体几何(CSG)节点的相关知识。
CSG是英文Constructive Solid Geometry的缩写,中文名是构造实体几何。它是一种组合基本形状或自定义网格以创建更复杂形状的工具。在3D建模软件中,CSG通常被称为“布尔运算符”。 在三维引擎中一般无法对外部导入模型的网格信息直接修改,因此在IdeaXR中,我们可以利用CSG形状的灵活可编辑性,快速搭建简易关卡,适用于场景原型设计。
基础用法
创建CSG节点
我们可以通过以下步骤快捷创建CSG节点:
添加多个CSG节点,互为父子结构,选中子节点可对父节点进行布尔运算
网格布尔运算
布尔运算有以下三种操作方式:
- 合并(Union)合并两个基础形状的部分,删除相交部分。
- 相交(Intersection)只保留相交的基础形状,删除其余部分。
- 扣除(Subtraction)从第一个形状减去第二个形状,留下一个带有其形状的凹痕。
形状编辑
CSG模型物体属性可进行平移,旋转,缩放等属性编辑操作,也可直接对长宽高,边数,锥体等参数进行调节,或在场景中对模型形态进行编辑操作。
基础形状
包括CSG立方体,CSG圆柱体,CSG球体和CSG环形。
CSG立方体
可以通过立方体属性中宽度,高度,深度属性编辑立方体的形状:
CSG圆柱体
可以通过修改边数,勾选启用锥形,平滑表面等属性编辑圆柱体的形状,其中边数可以改变圆柱体的面片数,数量越大表面越精细:
CSG球体
可以通过球体属性中半径,环数,径向段数等属性编辑球体形状,其中径向段数可以改变球体的表面细节,数量越大表面越光滑:
CSG环形
可以通过环形属性中内/外半径,边数,环面边数等属性编辑环形形状:
CSG多边形
CSG多边形拉伸2D多边形形状以创建3D网格。
节点工具——绘制多边形
选择如下可以在场景中选出想要的点,框中1是重新画多边形,2是可以在原来的基础上编辑点
需要注意的是,多边形将被绘制到XY平面上,因此要确保把场景世界坐标原点调到可以看见视口原点的地方,以免操作时看不到效果
根据选择的点绘制出来的多边形三维网格
选择拉伸模式:
- 深度模式
- 旋转模式
- 路径模式
我们也可以通过创建一个路径节点在多边形中去指定,然后根据指定的路径绘制3维网格
在场景中新建路径节点后(路径绘制的方法详见路径章节【todo】),为CSG多边形指定路径节点对象:
得到如下三维网格效果:
路径间隔:
改变路径间隔的效果
note
路径间隔不可以设置太小,否则面片数太多会影响性能
路径旋转(拉伸截面的朝向):
- 多边形: 多边形的形状不会被旋转,三维网格的截面始终平行于多边形。
- 路径:三维网格的截面始终和路径起始点的截面平行。
- 跟随路径:三维网格的截面始终与路径轴线垂直。
通用属性
翻转面
该属性可翻转三角网格表面的法线朝向,勾选后可切换内表面或外表面的显示。
布尔运算
当创建两个CSG模型时,将他们作为父子级放在一起的时候,可以进行合并,相交,扣除等操作,如图所示。
投影阴影
几何实体的通用属性,选择物体后可以改变它的投射阴影为接受,或取消,如图所示,接受则会有阴影出现,取消泽没有阴影出现。
可见性
空间节点的通用属性,这个节点可以控制物体的显示或影藏,主要应用在于对这个属性制作关键帧,添加动画后,可见节点后会有关键帧的小钥匙按钮,可以进行关键帧K帧。
应用案例
基础应用
例1:在墙上开个任意门
在墙上开个任意门,基于CSG立方体和CSG多边形(深度模式)
例2:捏个任意形状的花瓶
基于CSG多边形(旋转模式)
高级应用
利用CSG多边形(路径模式)和Path创建任意形状线缆