如视 Five SDK
    Preparing search index...

    Material Parameters (材质参数)

    • Summary: 配置 3D 模型与全景图过渡的视觉表现、渲染样式及特效。
    • Schema: 对应 ParameterMaterialValue 接口,定义了材质、点云、楼层等外观属性。
    • Concepts: Transparency (透明度), Point Cloud (点云), Floor Style (楼层样式), PBR (物理渲染)。
    • Configuration: 包含透明度、混合模式、点云大小/形状、阴影设置等详细参数。
    • Examples: 模型透明度调整、点云样式定制。

    Definition: ParameterMaterialValue

    以下是 ParameterMaterialValue 的 TypeScript 定义摘要:

    export interface ParameterMaterialValue {
    /** 模型整体透明度 [0, 1] */
    opacity: number;
    /** 点云基础缩放比例 */
    pointScale: number;
    /** 点云大小绘制方式 ('ATTENUATION' | 'FIXED') */
    pointSize: PBMPointSize;
    /** 楼层显示样式 ('OPACITY' | 'VISIBILITY') */
    floorStyle: PBMFloorStyle;
    // ... 更多字段见下方配置表
    }

    材质系统提供了两种维度的透明度控制:

    • Opacity (opacity): 控制模型整体的不透明度 (0-1)。
    • Model Alpha (modelAlpha): 控制纹理混合的权重。
      • 0: 仅显示模型自带的 UV 纹理(通常是颜色单一的白模或人工烘焙的纹理)。
      • 1: 仅显示从全景图投影到模型上的纹理(真实感强,但可能存在投影误差)。
      • 0.5: 两者混合。

    Five 支持高性能的点云渲染(PBM),并提供灵活的样式配置:

    • Size Attenuation: 通过 pointSize: 'ATTENUATION' 开启近大远小的透视效果,增强空间感。
    • Pixel Limits: 通过 pointMinPixelpointMaxPixel 限制点在屏幕上的最小/最大像素尺寸,防止远处点消失或近处点过大遮挡视线。

    对于多楼层场景,可以通过参数控制楼层的显示策略:

    • Floor Style (floorStyle): 控制非当前楼层的显示方式(如 OPACITY 半透明、VISIBILITY 隐藏等)。
    • Shown Floor (shownFloorIndex): 指定当前高亮显示的楼层索引。

    vertexMarks 是一个全局开关,用于控制是否启用模型顶点上的语义标记(_feature_id_rsmask)逻辑。

    • 机制: 模型顶点预置了 _feature_id_rsmask 属性,不同的值代表不同的语义部分。
    • 当前支持: 目前主要支持 _feature_id_rsmask=1(通常标记为天花板/房顶)。
      • vertexMarks 开启时,标记为 1 的顶点部分会在特定视角(如俯视)下自动隐藏,实现“开盖”效果,优化室内布局观测体验。
    • 未来扩展: 该机制设计支持更多标记值,未来可能用于控制其他特定模型部件的显示效果。

    以下表格列出了控制材质与外观的可用参数,按使用频率和场景分类。

    Parameter Type Default Description
    opacity number 1.0 模型整体透明度 [0, 1]。0 为完全透明,1 为完全不透明。
    pointScale number 0.02 点的基础缩放比例(控制点的大小)。
    pointSize PBMPointSize 'ATTENUATION' 点云大小绘制方式。
    'ATTENUATION': 随距离衰减(近大远小);
    'FIXED': 固定像素大小。
    pointShape PBMPointShape 'CIRCLE' 点云形状。
    'CIRCLE': 圆形;
    'SQUARE':方形。
    pointBack PBMPointBack 'DARK' 点云背面绘制方式。
    pointMinPixel number 0 点云最小像素尺寸。
    pointMaxPixel number 40 点云最大像素尺寸。
    pointAppearAnimation boolean true 是否开启点云出现动画。
    vertexMarks boolean true 是否显示/生效标注。
    brightness number 1.0 场景亮度倍数。
    floorStyle PBMFloorStyle 'OPACITY' 楼层显示样式。
    shownFloorIndex number -1 当前显示的楼层索引。-1 表示显示所有楼层。
    castShadow boolean false 模型是否产生阴影。
    receiveShadow boolean false 模型是否接收阴影。
    useAddBlend boolean false 是否使用半透明叠加渲染。
    customShaders PBMCustomShader[] [] 自定义 Shader 配置。
    panoFilter PBMPanoFilter null 全景图滤镜 (亮度、对比度、色温等)。详情见 Pano Filter
    clippers PBMClipperParameter[] [] 模型裁切参数。
    boundingBox THREE.Box3 Infinity 模型包围盒。

    这些参数较少使用,仅在需要精细调整特殊视觉效果时修改。

    Parameter Type Default Description
    colorSaturation number 0.0 饱和度调整值。
    colorBrightness number 0.0 亮度调整值(与 brightness 叠加)。
    colorStyle PBMColorStyle 'RGB' 颜色显示样式。
    constantColor THREE.Vector3 (0.6, 0.6, 0.6) 模型纯色模式下的颜色值。
    outlineGain number 0.0 轮廓线增益。
    distanceGain number 0.0 距离增益。
    gaussianSplattingSHDegree number 0 3D Gaussian Splatting 的球谐阶数。

    注意: 以下参数主要用于引擎内部状态同步或特定底层逻辑,不建议开发者手动修改,以免引起渲染异常。

    Parameter Type Default Description
    modelAlpha number 1.0 模型纹理混合系数。通常由 Five 内部模式切换控制。
    useHQWeight boolean false 是否使用高质量权重计算(影响渲染质量)。
    useHQDepth boolean false 是否使用高质量深度遮罩。
    progress number 0 全景图混合进度。
    transition PBMTransition 'FADE' 全景图过渡混合模式。
    gradientTexture THREE.Texture default 高程着色材质纹理。
    pano0 PBMPanoPicture null 起始点全景图信息。
    pano1 PBMPanoPicture null 结束点全景图信息。
    pano0Depth PBMPanoDepth null 起始点深度信息。
    pano1Depth PBMPanoDepth null 结束点深度信息。
    refinedScreen PBMRefinedScreen null 细化瓦片的屏幕渲染配置。
    // 设置半透明
    five.modelScene.parameter.set('opacity', 0.5);

    // 仅显示原始 UV 贴图
    five.modelScene.parameter.set('modelAlpha', 0.0);

    // 设置楼层样式
    five.modelScene.parameter.set('floorStyle', 'wireframe');
    // 大小随距离衰减
    five.modelScene.parameter.set('pointSize', 'ATTENUATION');

    // 基础大小
    five.modelScene.parameter.set('pointScale', 0.05);

    // 最大像素限制
    five.modelScene.parameter.set('pointMaxPixel', 20);

    tags: [材质, 透明度, 点云, 楼层, 阴影, 亮度, 天花板, 开盖, 顶点标记, 渲染样式, material, appearance, pointcloud, parameter, roof, ceiling, config, opacity]