Skip to content
目录

网格 Meshes

该分类包含创建和操作网格的方法。

网格

创建内置模型 mesh_create_set_shapes

该拼图用于创建基本的几何体网格,包括:立方体、球体、圆柱体、平面,以及直线等等。创建出来的网格会有一个默认的PBR材质。使用该拼图可以帮你快速搭建场景。

  • 名字参数可以帮助你在场景查看器中快速找到网格。
  • 选项接收一个对象类型的参数,用于控制网格的属性,这些属性根据网格类型而不尽相同。你可以通过在该拼图的右键菜单中执行创建 选项获取属性拼图。

网格属性 mesh_properties_accessors

用于设置或获取网格属性或状态。访问器是访问对象属性时触发的回调函数,用于设置或获取对象的内部数据,用法与属性相同,在拼图中表示为"属性*"

属性:

  • 边颜色:edgesColor - 当边渲染开启时,定义边的颜色
  • 与实例共享边:edgesShareWithInstances - 当为真时,对所有网格实例应用边渲染
  • 边宽度:edgesWidth - 当边渲染开启时,定义边的宽度
  • 椭圆体:ellipsoid - 使用碰撞引擎时,获取或设置用于模拟此网格的椭圆球体
  • 椭圆体偏移:ellipsoidOffset - 使用碰撞引擎时,获取或设置用于模拟此网格的椭圆球体的偏移
  • 可拾取:isPickable - 设置或获取网格是否可拾取
  • 可显示:isVisible - 设置或获取网格是否可见(可渲染)
  • 当碰撞时:onCollideObservable - 当与其它网格碰撞时触发此事件
  • 当碰撞位置改变时:onCollisionPositionChangeObservable - 当碰撞位置发生改变时触发此事件
  • 当销毁时:onDisposeObservable -当网格销毁时触发时此事件
  • 描边颜色:outlineColor - 当渲染描边时,定义颜色值
  • 描边宽度:outlineWidth - 当渲染描边时,定义描边宽度
  • 覆盖层不透明度:overlayAlpha - 当渲染覆盖层时,定义不透明度
  • 覆盖层颜色:overlayColor - 当渲染覆盖层时,定义颜色值
  • 渲染描边:renderOutline - 设置或获取是否同时渲染描边
  • 渲染覆盖层:renderOverlay - 设置或获取是否同时渲染覆盖层
  • 显示边界盒:showBoundingBox - 设置或获取是否同时渲染边界盒

访问器:

  • 公告牌模式:billboardMode - 设置或获取公告牌模式 0 无 1 锁定X 2 锁定Y 4 锁定Z 7 锁定全部
  • 检测碰撞:checkCollisions - 设置或获取网格是否可用于碰撞引擎
  • 图层蒙板:layerMask - 设置或获取当前图层蒙板。默认0FFFFFFF
  • 材质:material - 设置或获取材质
  • 接收阴影:receiveShadows - 设置或获取此网格是否接收实时阴影
  • 可见度:visibility - 在0到1之间设置或获取网格可见度

克隆网格 clone_mesh

复制当前网格的属性,生成一个新的独立的网格物体。

创建网格实例 mesh_create_instance

从当前网格创建一个新的网格实例。实例网格拥有独立的变换属性,其它属性与原网格共享。例如,所有的实例网格都共享一个材质。

合并网格 merge_meshes

出于优化性能的目的,将数组中的网格合并成一个网格。

设置网格父级 mesh_set_parent

设置网格的父物体。该拼图与节点分类下的node_parent拼图的不同之处在于,该拼图会保持子物体的在当前场景中的位置。

渲染边 mesh_render_edges

为当前网格启用边线渲染模式。此模式可将网格的边线渲染出来。配合网格边宽度 边颜色属性,可设置连线的线宽和颜色。

参数:

  • 系数 - 定义检测一个面的两个角度的最大距离,默认值0.95

销毁网格 dispose_mesh

销毁网格,删除与该网格关联的资源。

参数:

  • 含子级 - 销毁该网格的子级
  • 含材质纹理 - 销毁该网格的材质和纹理

变换

变换属性 set_get_mesh_transform

用于设置或获取网格的变换属性。

变换网格 translate_mesh

在局部空间或世界空间移动网格。

参数:

  • 网格 - 要移动的网格
  • 轴 - 定义网格要沿哪个轴移动
  • 距离 - 移动的距离
  • 局部 - 勾选使用局部空间,否则使用世界空间

碰撞移动 move_mesh_with_collisions

使用碰撞引擎移动网格。意味着网格在移动时带有碰撞属性。

旋转网格 rotate_mesh

在局部空间或世界空间旋转网格。

参数:

  • 网格 - 要移动的网格
  • 轴 - 定义网格要沿哪个轴旋转
  • 角度 - 旋转的角度
  • 局部 - 勾选使用局部空间,否则使用世界空间

POV旋转网格 rotate_mesh_pov

以POV模式旋转网格。

参数:

  • 网格 - 要移动的网格
  • 俯仰 - 俯仰角度
  • 偏航 - 偏航角度
  • 旋转 - 旋转角度

设置网格方向 set_mesh_direction

将此变换节点的旋转设置为给定的局部坐标轴。

获取网格方向 get_mesh_direction

返回一个世界坐标空间的向量3,这个向量3是局部轴(在局部坐标空间下)旋转的结果。

  • 轴:旋转的轴

网格面向 mesh_look_at

旋转网格使它朝向目标点。

拖拽网格 drag_mesh

使一个网格可以被拖拽。options接收一个对象参数,用于控制拖拽行为,通过该拼图的右键菜单-创建 option,可创建属性拼图。这些属性包括:

  • 拖拽轴 dragAxis - 拖拽模式,使网格沿指定的轴拖拽。如果未指定,则拖拽平面面向相机
  • 拖拽面法线 dragPlaneNormal - 拖拽模式,使网格沿指定的平面拖拽,通过法线确定。
  • 启用 enabled - 是否可拖拽
  • 移动附加物体 moveAttached - 当拖拽时,网格是否移动。若为false网格会静止不动
  • 更新拖拽面 updateDragPlane - 是否在拖拽过程中应更新拖拽平面的方向(默认:true)。
  • 使用物体坐标拖拽 useObjectOrientationForDragging - 如果设置为false网格将以世界坐标拖拽(默认:true

通过拼图左上角的高级选项,可以启用开始拖拽、拖拽和拖拽结束3种状态的回调插槽。

检测

检测点 check_point_behind_mesh

检查场景中的某个点是否被网格遮挡。

检测网格相交 check_intersects_mesh

检查两个网格是否相交。

参数:

  • 精确 - 高精确检测
  • 含子级 - 是否包含子级

检测点相交 check_intersects_point

检查场景中的某个点是否位于网格内部。

LOD

添加LOD等级 mesh_add_lod_level

根据距离为网格添加LOD网格。也就是,网格会根据距离显示不同的精度,这有利用提高性能。

自动LOD mesh_auto_lod

根据给定的设置自动简化网格。

参数设置接收一个数组参数,数组的项是一个对象,对象可用的键值有:

  • 品质 - 网格质量 0-1
  • 距离 - 显示距离
  • 优化网格 - 是否优化网格