赞
踩
本章主要为您介绍模型的属性功能。
一个模型至少会包含一个节点(Node),从节点类型上可以分为转换节点(TransformNode)、网格(Mesh)、实例网格(InstancedMesh)。此外,系统自带了一种特殊的模型,即面板,它本质也是网格,只是材质固定为高级动态纹理。
下面我们详细介绍下这几种节点的区别以及可以设置的属性。
转换节点没有实体,不会渲染,它一般用作网格的变换中心,当它的位置、缩放或者旋转值发生改变时,它下面挂载的子节点会以转换节点为中心发生改变。
转换节点是其他模型节点的父类,因此它可以设置的属性其他模型节点也都可以设置。
模型节点的名称,不同节点名称可以重复。
数据类型:string
模型节点所在的分组,一个节点可以设置到多个分组中。
数据类型:string[]
是否显示节点,当关闭时,会隐藏当前节点及其所有子节点,并且在画布中不可被拾取。
数据类型:boolean
节点的坐标点。如果节点为根节点,表示绝对坐标,如果节点有父节点,表示以父节点所在位置为原点的相对坐标。
数据类型:number
节点的缩放值。
数据类型:number
节点的旋转值,单位为角度。
数据类型:number
3D场景中模型的形状是由网格构建的,每个网格都是由三角形的面连接在一起,每个面有三个顶点。模型越复杂,网格中的点和面就越多,对性能的要求就越高。因此在建模的时候,我们应该尽量精简点面的数量。我们可以通过添加材质和贴图来为网格覆盖颜色和图片,不同的材质表现的效果也不同。
网格是转换节点的子类,因此它也具有转换节点的属性。下面我们详细介绍网格特有的属性。
点击左键时,网格是否可以被拾取到。如果设置为不可拾取,在编辑状态下不可被左键选中(但是可以在结构中被选中),在运行状态下不会触发鼠标相关事件。
数据类型:boolean
改变网格的透明度,范围0-1,0表示完全不可见,1表示完全可见。只对自身有效,不会改变子节点的透明度。不会影响网格拾取。
数据类型:number
网格表面是否显示阴影。
数据类型:boolean
网格是否可以产生阴影。
数据类型:boolean
可以设置网格相对于相机的显示方向。当您需要模型始终面向相机时,可以设置此属性为水平面向相机或者垂直面向相机。
数据类型:number,0不固定,
设置网格在场景中的渲染层级。当您需要在场景上层始终显示网格,不希望被遮挡时,可以设置此属性为置顶。
数据类型:number
我们可以给网格添加材质以显示出不同的效果,系统目前支持PBR材质、网格材质、渐变材质、水材质、节点材质等。
PBR即基于物理的渲染,它可以通过计算光线与物体表面的交互状态而实现模拟真实世界的画面。当配置了HDR后,模型表面即会反射出周围环境的效果,且HDR仅对PBR材质生效。
模型表面的金属光泽度,值越高,金属质感越强。范围0 - 1。
数据类型:number
材质反射的亮度,值越高,反射亮度越强。
数据类型:number
模型表面的粗糙程度,值越高,表面显得越不光滑。范围0 - 1。
数据类型:number
材质在灯光下观察到的颜色。
数据类型:十六进制颜色或者RGB颜色字符串。例如 #ffffff 或者 rgb(255, 255, 255)。
材质自身的颜色。
数据类型:十六进制颜色或者RGB颜色字符串。例如 #ffffff 或者 rgb(255, 255, 255)。
开启后材质将光照贴图中获取阴影信息
数据类型:boolean
材质的环境纹理(ao)贴图影响因子,值越大,环境纹理贴图对材质的影响越大。
材质的透明度,值越小,材质显得越透明。范围0 - 1。
数据类型:number
透明模式分为混合与叠加,材质或材质中的帖图含有透明时,默认为混合。将透明模式改为叠加后,材质遇到许多网格重叠的情况是,网格会发亮。
当相机旋转到该材质背面时是否隐藏材质。
数据类型:boolean
可在模型表面显示出网格的材质。
网格块的颜色。
数据类型:十六进制颜色或者RGB颜色字符串。例如 #ffffff 或者 rgb(255, 255, 255)。
网格线的颜色。
数据类型:十六进制颜色或者RGB颜色字符串。例如 #ffffff 或者 rgb(255, 255, 255)。
线条间隔相对于模型的缩放比例。值越大,线条间隔越宽。
数据类型:number
同PBR材质-透明度。
同PBR材质-隐藏背面。
1、凹凸纹理:水材质的形状法线贴图,需要一张法线贴图
2、波峰、波长、跳跃高度绝对每一条水波的高低起伏
3、流速,控制水面的流动速度
4、水色,控制水面的颜色
5、默认反射天空盒
使用BJS节点编辑器,连接节点自定义材质。
当材质设置为PBR材质或者水材质时,您可以为材质添加纹理。系统支持的纹理有以下几种:
下面介绍这些纹理可以设置的属性。
设置纹理贴图的资源路径。
数据类型:string
定义要使用的UV通道,从0开始,默认为0。
数据类型:number
纹理是否包含RGBD数据。
数据类型:boolean
定义纹理是否可以透明显示。
数据类型:boolean
定义如何映射纹理。
数据类型:number
定义纹理在U坐标上的偏移量。
类型:number
定义纹理在V坐标上的偏移量。
类型:number
定义纹理在U坐标上的缩放量。
类型:number
定义纹理在V坐标上的缩放量。
类型:number
当场景中有大量重复模型时,比如树林、人群等,如果每个模型都是单独的网格会非常消耗性能,比较好的解决办法是使用实例网格。实例网格与源网格共用顶点、几何体以及材质,这样会减少资源消耗,加快场景渲染速度。您可以通过复制为引用来创建模型的实例,我们也支持导入GLB本身自带的实例网格。当源模型被删除时,所有基于其创建的实例模型都会被删除。并且实例模型可配置的属性,以及动画、数据、交互等都是独立的,不会被源模型影响。
实例网格可以配置的属性与转换节点完全一致,您可以参考转换节点的属性介绍。
除此之外,系统在基础属性中提供了选择源模型的按钮,用来快速选中实例网格的源模型。
面板是一种特殊的网格,它用来在场景中展示2D信息,例如设备的温度、描述、名称等。
面板的属性包括网格中的所有基础属性,您可以参考网格 - 基础属性介绍。另外,面板无法更改材质。
您可以点击基础属性下方的编辑面板内容按钮,在弹窗中通过面板编辑器来设置要显示的内容。
面板编辑器的操作和场景编辑器类似,左侧为面板支持的显示内容,右侧为属性配置栏,当没有选中内容时,右侧显示的是面板整体的配置属性,当选中某个内容时,右侧显示的是该内容类型对应的配置属性。
面板的宽度,最好取2的整数倍。默认为1024。
数据类型:number
面板的高度,最好取2的整数倍。默认为1024。
数据类型:number
面板的背景颜色。
数据类型:十六进制颜色或者RGB颜色字符串。例如 #ffffff 或者 rgb(255, 255, 255)。
面板的背景图片地址。
数据类型:string
设置背景图片填充到面板上的方式。1代表拉伸,图片会同时放大或缩小宽高来铺满背景,缺点是不会保持原比例。2代表适应,图片会保持原有的宽高比例并尽可能的最大显示,缺点是会有空白区域。默认为拉伸。
数据类型:number
内容块的名称。在同一面板列表中不能重复。
数据类型:string
内容块左上角顶点至面板左侧的距离。
数据类型:number
内容块左上角顶点至面板顶部的距离。
数据类型:number
内容块的宽度。
数据类型:number
内容块的高度。
数据类型:number
内容块的透明度。范围0 - 1。
数据类型:number
内容块的背景颜色。
数据类型:十六进制颜色或者RGB颜色字符串。例如 #ffffff 或者 rgb(255, 255, 255)。
内容块显示的文字。
数据类型:string
文字颜色。
数据类型:十六进制颜色或者RGB颜色字符串。例如 #ffffff 或者 rgb(255, 255, 255)。
文字字体。
数据类型:string
文字粗细。100 - 细,500 - 正常,900 - 粗。
数据类型:string
文字大小。
数据类型:number
文字在内容块中水平的位置。start - 居左,center - 居中,end - 居右。
数据类型:string
文字在内容块中垂直的位置。start - 居上,center - 居中,end - 居下。
名称、距左、距上、宽度、高度、透明度、背景颜色均与文字属性相同。
内容块显示的图片地址。
数据类型:string
同面板属性的填充方式。
目前面板编辑器支持的操作有:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。