Skip to content
目录

材质 Material

这类拼图用于创建和操作材质、贴图、颜色。

材质

创建材质 create_material

用于创建材质。材质类型包括:标准材质、PBR材质、节点材质、背景材质。

StandardMaterial

这是Block3D底层引擎BabylonJS的默认材质。是质量和性能之间的最佳权衡。

PBRMaterial

这是一种基于物理的材质,用于模拟真实的光照。

NodeMaterial

通过节点材质编辑器创建的更复杂的材质。

BackgroundMaterial

背景材质用于在场景中创建一个高效的环境。

材质属性 material_properties_accessors

用于设置或获取材质属性或状态。状态是访问对象属性时触发的回调函数,用于设置或获取对象的内部数据,用法与属性相同。

标准材质属性:

  • alphaCutOff - 定义alpha测试模式中的alpha极限
  • ambientColor - 被环境背景照明照亮的材质的颜色
  • ambientTexture - 在其他术语中又称AO贴图,它有助于在材质中添加烘焙的阴影。
  • bumpTexture - 凹凸贴图是一种在渲染的表面上模拟凹凸和凹痕的技术。
  • diffuseColor - 在灯光下看到的材质的基本颜色。
  • diffuseTexture - 在灯光下看到的材质的基本纹理。
  • emissiveColor - 定义材质的颜色,就像自带照明一样。即使在没有光线的情况下,也会混合在最终结果中。
  • emissiveTexture - 定义材质的贴图,就像自带照明一样。即使在没有光线的情况下,也会混合在最终结果中。
  • indexOfRefraction - 在折射的情况下,定义折射率的值。
  • lightmapTexture - 复杂的光照在运行时的计算可能会很昂贵。为了节省计算量,灯光贴图可以用来将计算好的光照存储在纹理中,然后应用于给定的网格。
  • maxSimultaneousLights - 设置可以用于材质的最大灯光数量
  • opacityTexture - 根据一张贴图定义材质的透明度
  • parallaxScaleBias - 应用一个缩放系数,决定高度图应该代表哪个"深度"。在视差中,0.05和0.1之间的数值是合理的,使用视差遮蔽可以达到0.2。
  • reflectionTexture - 指定用于显示反射的贴图
  • refractionTexture - 指定用于显示折射的贴图
  • roughness - 用于定义材质中的反射应该有多模糊
  • specularColor - 定义在材质中高光的颜色和强度。
  • specularPower - 定义材质中高光的锐度。值越大,越锐利,结果越光滑。相反,值越小,越模糊,结果越粗糙。
  • specularTexture - 定义在材质中光如何赋予高光颜色和强度。
  • twoSidedLighting - 如果设置为真,并且背面剔除为假,则背面的法线会翻转
  • useAlphaFromDiffuseTexture - 定义透明是否来自漫反射贴图的alpha通道
  • useEmissiveAsIllumination - 若为真,自光发的值会被加到最终结果;否则,会被乘进去
  • useGlossinessFromSpecularMapAlpha - 定义是否应从高光贴图alpha通道读取材质的光泽度/粗糙度
  • useLightmapAsShadowmap - 在灯光贴图的情况下,定义贴图是否包含灯光或阴影信息。
  • useObjectSpaceNormalMap - 允许使用物体空间法线贴图(代替切线空间)
  • useParallax - 是否开启视差模式
  • useParallaxOcclusion - 是否开启视差遮蔽。若为真,结果比传统的“视差”更真实,但性能会受到影响,需要权衡
  • useReflectionFresnelFromSpecular - 若为真,则会自动从材质的高光度中减去菲涅耳值
  • useReflectionOverAlpha - 指定材质会在透明表面(仅最亮的表面)上保持反射。汽车玻璃就是一个很好的例子。当路灯反射在上面时,看不到后面是什么
  • useSpecularOverAlpha - 指定材质会在透明表面(仅最亮的表面)上保持高光。汽车玻璃就是一个很好的例子。当路灯反射在上面时,看不到后面是什么
  • zOffset - 存储Z轴偏移系数值

标准材质状态:

  • alpha - 设置或获取材质的alpha值
  • alphaMode - 设置或获取alpha模式的值 0 禁用 1 加 2 合并 3 减 4 乘 5 最大值 6 一对一 7 预乘 8 预乘波特杜夫 9 插值 10 滤色模式
  • backFaceCulling - 设置或获取剔除状态(true表示启用剔除,false表示禁用)
  • transparencyMode - 设置或获取材质的透明度模式。0 不透明1 检测2 混合3 检测和混合
  • wireframe - 设置或获取线框模式的状态

PBR材质属性:

  • albedoColor - 漫反射颜色
  • albedoTexture - 漫反射贴图
  • alphaCutOff - 定义alpha测试模式中的alpha极限
  • ambientColor - 环境照明中材质的颜色
  • ambientTexture - 又名AO贴图
  • ambientTextureStrength - 又名AO贴图强度
  • bumpTexture - 在一张贴图中存储网格表面法线数据,用于置换网格。
  • emissiveColor - 从材质发出的颜色
  • emissiveIntensity - 材质发光部分的强度。有助于在不修改发光颜色的情况下控制发光效果。
  • emissiveTexture - 自发光贴图
  • enableSpecularAntiAliasing - 在PBR着色器中启用高光反射抗锯齿。它将在几何体上为分析照明和IBL照明相互作用。它还会根据凹凸值预先过滤粗糙度贴图。
  • environmentBRDFTexture - 让用户定义用于 IBL 的 brdf 查询纹理。
  • environmentIntensity - 环境的强度,例如,环境对物体的照射程度,对于粗糙的材质来说是通过谐波,对于有光泽的材质来说是通过反射。
  • metallic - 指定金属/粗糙度工作流的金属度数量。也可以用来缩放金属度贴图的金属度值。
  • metallicTexture - 用于从高光度/光滑度流程转为金属度/粗糙度流程
  • microSurface - 又名光泽度
  • microSurfaceTexture - 用于根据当前模式启用从单独通道获取粗糙度/光泽度。灰度表示金属模式下的粗糙度和高光模式下的光泽度。
  • opacityTexture - 将alpha值存储在纹理中
  • parallaxScaleBias - 控制视差模式的缩放偏移
  • reflectionColor - 材质反射的颜色
  • reflectionTexture - 将反射值存储在纹理中
  • reflectivityColor - 又名高光颜色
  • reflectivityTexture - 又名高光贴图
  • roughness - 在金属度/粗糙度流程中指定粗糙度,也用于缩放金属度贴图中的粗糙度
  • unlit - 无光模式
  • useAlphaFromAlbedoTexture - 指定用来做混合的alpha来自漫反射贴图的alpha通道
  • useAmbientOcclusionFromMetallicTextureRed - 指定是否金属度贴图的红通道中包含AO信息
  • useMetallnessFromMetallicTextureBlue - 指定金属纹理是否在其蓝色通道中包含金属度信息。
  • useMicroSurfaceFromReflectivityMapAlpha - 指定反射率贴图是否在其alpha通道中包含光泽度信息。
  • useParallax - 允许在视差模式中使用凹凸贴图
  • useParallaxOcclusion - 允许在视差遮蔽模式中使用凹凸贴图
  • useObjectSpaceNormalMap - 允许使用物体空间法线图(而不是切线空间)。
  • useParallax - 是否开启视差模式
  • useParallaxOcclusion - 是否开启视差遮蔽。若为真,结果比传统的“视差”更真实,但性能会受到影响,需要权衡
  • useRoughnessFromMetallicTextureAlpha - 指定金属度贴图是否在其alpha通道中包含粗糙度信息。
  • useRoughnessFromMetallicTextureGreen - S指定金属度贴图是否在其绿色通道中包含粗糙度信息。
  • useSpecularOverAlpha - 指定材质会在透明表面(仅最亮的表面)上保持高光。汽车玻璃就是一个很好的例子。当路灯反射在上面时,看不到后面是什么
  • zOffset - 存储Z轴偏移系数值

PBR材质状态:

  • alpha - 设置或获取材质的alpha值
  • alphaMode - 设置或获取alpha模式的值 0 禁用 1 加 2 合并 3 减 4 乘 5 最大值 6 一对一 7 预乘 8 预乘波特杜夫 9 插值 10 滤色模式
  • backFaceCulling - 设置或获取剔除状态(true表示启用剔除,false表示禁用)
  • transparencyMode - 设置或获取材质的透明度模式。0 不透明1 检测2 混合3 检测和混合
  • wireframe - 设置或获取线框模式的状态

节点材质属性:

  • maxSimultaneousLights - 设置可以用于材质的最大灯光数量
  • zOffset - 存储Z轴偏移系数值

节点材质状态:

  • alpha - 设置或获取材质的alpha值
  • alphaMode - 设置或获取alpha模式的值 0 禁用 1 加 2 合并 3 减 4 乘 5 最大值 6 一对一 7 预乘 8 预乘波特杜夫 9 插值 10 滤色模式
  • backFaceCulling - 设置或获取剔除状态(true表示启用剔除,false表示禁用)
  • transparencyMode - 设置或获取材质的透明度模式。0 不透明1 检测2 混合3 检测和混合
  • wireframe - 设置或获取线框模式的状态

背景材质属性:

  • primaryColor - 主光颜色(与环境贴图相乘)
  • reflectionAmount - 在菲涅耳反射的情况下,指定对背景的反射权重。
  • reflectionBlur - 反射贴图模糊级别
  • reflectionFalloffDistance - 有助于从场景中心指定反射贴图的衰减半径。如果用作镜子,这有助于为反射增加一个很好的衰减效果。
  • reflectionFresnel - 有助于指定材质以较低视角从漫反射贴图过渡到反射贴图。有助于在地面上添加镜面贴图。
  • reflectionReflectance0 - 指定在较低视角下的反射权重
  • reflectionReflectance90 - 指定在垂直视角下的反射权重。
  • reflectionTexture - 材质中使用的反射贴图
  • sceneCenter - 在不透明度菲涅耳或反射衰减的情况下,用作场景中心。一般为原点,也可以根据你的场景设置而修改。
  • shadowLevel - 如果需要,有助于将阴影调整到更柔和的水平。0表示纯黑色的阴影,1表示没有阴影。
  • shadowLights - 指定在材质上投射阴影的灯光列表。如果为空,则将包括所有场景阴影灯光。
  • shadowOnly - 使材质只渲染阴影

背景材质状态:

  • alpha - 设置或获取材质的alpha值
  • alphaMode - 设置或获取alpha模式的值 0 禁用 1 加 2 合并 3 减 4 乘 5 最大值 6 一对一 7 预乘 8 预乘波特杜夫 9 插值 10 滤色模式
  • backFaceCulling - 设置或获取剔除状态(true表示启用剔除,false表示禁用)
  • transparencyMode - 设置或获取材质的透明度模式。0 不透明1 检测2 混合3 检测和混合
  • wireframe - 设置或获取线框模式的状态

获取材质 get_material_by_name

根据名字获取材质。

销毁材质 dispose_material

销毁材质。

纹理

创建纹理 create_texture

纹理类型包括普通纹理和立方体纹理。

纹理属性 texture_properties_accessors

用于设置或获取纹理属性或状态。状态是访问对象属性时触发的回调函数,用于设置或获取对象的内部数据,用法与属性相 同。

纹理属性:

  • anisotropicFilteringLevel - 定义纹理中的各向异性过滤级别,需要兼容的硬件和浏览器(支持各向异性过滤)。越高越好,但会越慢。默认为4,是理想方案
  • invertZ - 纹理是否翻转z轴(用于立方体贴图).
  • level - 纹理强度
  • onDisposeObservable - 当纹理销毁时触发该事件
  • onLoadObservable - 当纹理加载完成时触发此事件
  • uAng - 定义纹理沿UV坐标的u轴旋转的度数(单位弧度)
  • uOffset - 定义纹理沿UV坐标的u轴的偏移值
  • uRotationCenter - 定义旋转的中心 (U)
  • uScale - 定义纹理沿UV坐标的u轴的缩放值
  • rotationY - 设置或获取纹理矩阵沿Y轴的旋转值(弧度
  • vAng - 定义纹理沿UV坐标的v轴旋转的度数(单位弧度)
  • vOffset - 定义纹理沿UV坐标的v轴的偏移值
  • vRotationCenter - 定义旋转的中心 (V)
  • vScale - 定义纹理沿UV坐标的v轴的缩放值
  • wAng - 定义纹理沿UV坐标的w轴旋转的度数(单位弧度)
  • wRotationCenter - 定义旋转的中心 (W)
  • wrapR - 贴图平铺方式0-裁切1-重复2-镜像

立方体纹理属性:

  • anisotropicFilteringLevel - 定义纹理中的各向异性过滤级别,需要兼容的硬件和浏览器(支持各向异性过滤)。越高越好,但会越慢。默认为4,是理想方案
  • invertZ - 纹理是否翻转z轴(用于立方体贴图).
  • level - 纹理强度
  • onDisposeObservable - 当纹理销毁时触发该事件
  • onLoadObservable - 当纹理加载完成时触发此事件
  • url - 定义纹理地址

纹理和立方体纹理状态:

  • coordinatesMode - 纹理映射方式 0-直接模式1-球形模式2-平面模式3-立方模式4-投射模式5-天空盒模式6-逆立方模式7-等矩圆柱模式8-固定等矩圆柱模式9-固定等矩圆柱镜像模式
  • hasAlpha - 定义纹理是否带有透明通道
  • invertY - 纹理是否翻转y轴
  • wrapU - 贴图平铺方式0-裁切1-重复2-镜像
  • wrapV - 贴图平铺方式0-裁切1-重复2-镜像

获取纹理大小 get_texture_size

返回纹理尺寸。

参数:

  • 大小size - 返回值是一个包含widthheight属性的对象
  • 宽width - 返回纹理宽度
  • 高height - 返回纹理高度
  • 宽高比ratio - 返回纹理的宽高比

更新纹理 update_texture_url

更新纹理。纹理加载完成时,执行执行插槽中的拼图。

销毁纹理 dispose_texture

销毁纹理并释放依赖的资源。

颜色

颜色3 material_color3

创建一个RGB模式的颜色。

16进制颜色3 material_color3_from_hex

从16进制字符串创建一个RGB模式的颜色。

常量颜色3 material_constant_color3

创建常量颜色3。

颜色4 material_color4

创建一个RGBA模式的颜色。

从16进制创建颜色4 material_color4_from_hex

从16进制字符串创建RGBA颜色。

从颜色3创建颜色4 material_color4_from_color3

从颜色3和alpha值创建颜色4。