UNPKG

three-scene

Version:

3D 场景

636 lines (531 loc) 7.67 kB
import * as THREE from 'three' /** * 雾化 */ export interface Fog { /** * 显示 */ visible: boolean /** * 颜色 */ color: string | number /** * 相机可视最近距离 */ near: number /** * 相机可视最远距离 */ far: number } /** * 渲染器 */ export interface Render { /** * 抗锯齿 * 默认: true */ antialias: boolean /** * 透明 */ alpha: boolean /** * 设置对数深度缓存 * 默认 : true */ logarithmicDepthBuffer: boolean /** * 截图设置, true 时性能会下降 */ preserveDrawingBuffer: boolean /** * 强制使用 webgl */ forceWebGL: boolean } /** * 控制器 */ export interface Controls { /** * 显示 */ visible: boolean /** * 自动旋转 */ autoRotate: boolean /** * 自动旋转速度 */ autoRotateSpeed: number /** * 阻尼(惯性) */ enableDamping: boolean /** * 阻尼系数,鼠标灵敏度(值越小惯性越大) */ dampingFactor: number /** * 视角平移(右键拖拽) */ enablePan: boolean /** * 视角旋转 */ enableRotate: boolean /** * 视角缩放 */ enableZoom: boolean /** * 视角旋转角度上限 */ maxAzimuthAngle: number /** * 视角旋转角度下限 */ minAzimuthAngle: number /** * 视角最近距离 */ minDistance: number /** * 视角最远距离 */ maxDistance: number /** * 视角垂直角度下限 */ minPolarAngle: number /** * 视角垂直角度上限 */ maxPolarAngle: number /** * target 目标移动半径 */ maxTargetRadius: number /** * 旋转速度 */ rotateSpeed: number /** * 空间内平移/垂直平面平移 */ screenSpacePanning: boolean } /** * 环境光 */ export interface AmbientLight { /** * 显示 */ visible: boolean /** * 环境光颜色 */ color: number | string /** * 环境光强度 */ intensity: number } /** * 灯光阴影 */ export interface LightShadow { /** * 阴影贴图 大小(宽高) * 默认 4096 */ mapSize: number /** * 阴影偏差 * 默认 -1e-5 */ bias: number /** * 法线偏差 * 默认 1e-2 */ normalBias: number } /** * 灯光阴影相机 */ export interface LightShadowCamera { /** * 进距离 * 默认 0.1 */ near: number /** * 远距离 * 默认 20000 */ far: number /** * 边界值 * 默认 2000 */ boundary: number } /** * 平行光 */ export interface DirectionalLight { /** * 显示 * 默认 true */ visible: boolean /** * 辅助器 * 默认 false */ helper: boolean /** * 灯光 1 坐标 * 默认 [500, 1000, 800] */ position: number[] /** * 灯光 2 坐标 * 默认 [-500, 800, -800] */ position2: number[] /** * 灯光 2 是否展示 * 默认 true */ light2: boolean /** * 灯光颜色 * 默认 0xffffff */ color: number | string /** * 灯光强度 * 默认 1.5 */ intensity: number /** * 灯光2 强度 * 默认 1.5 */ intensity2: number /** * 灯光阴影 */ shadow: LightShadow /** * 灯光阴影相机 */ shadowCamera: LightShadowCamera } /** * 相机 */ export interface Camera { /** * 辅助器 */ helper: boolean /** * 最近距离 */ near: number /** * 最远距离 */ far: number /** * 摄像机视锥体垂直视野角度 */ fov: number /** * 是否为正交相机 */ orthogonal: boolean /** * 相机坐标 */ position: [number, number, number] } export interface Grid { /** * 显示 * @default false */ visible: boolean /** * 透明度 */ opacity: number /** * 透明 */ transparent: boolean /** * 宽度 */ width: number /** * 网格等分数 */ divisions: number /** * 中心线颜色 */ centerLineColor: number | string /** * 网格颜色 */ gridColor: number | string /** * 网格交叉点 */ fork: boolean /** * 网格交叉点大小 */ forkSize: number /** * 网格交叉点颜色 */ forkColor: number | string } export interface Axes { /** * 显示 */ visible: boolean /** * 大小 */ size: number } export interface Cruise { /** * 显示 */ visible: boolean /** * 激活(可识别键盘操作) */ enabled: boolean /** * 运行中 */ runing: boolean /** * 巡航点位 */ points: number[][] /** * 巡航曲线张力 */ tension: number /** * 基础地址 */ baseUrl: string /** * 贴图地址 */ mapUrl: string /** * 贴图重复 */ repeat: number[] /** * 宽度 */ width: number /** * 巡航时速度 */ speed: number /** * 贴图材质动画滚动速度 */ mapSpeed: number /** * 巡航点偏差(距离巡航点的上下偏差) */ offset: number /** * 系数 */ factor: number /** * 巡航分段数 */ segment: number /** * 索引 */ index: number /** * 辅助器 */ helper: boolean /** * 路径闭合 * 默认 true */ close: boolean /** * 自动巡航(可从动画函数执行机器人巡航) * 默认 false */ auto: boolean /** * 管路模式 */ tube: boolean /** * 材质颜色 */ color: string | number /** * 半径 (管路模式未管路半径、平面模式为拐角半径) */ radius: number /** * 路径分段 */ radialSegments: number /** * 一直显示路线(默认巡航中展示路线) */ alway: boolean /** * 发光 */ bloom: boolean /** * 发光强度 */ bloomIntensity: number /** * 帧动画回调 */ animateBack: | (( /** * 相机坐标 */ position: THREE.Vector3, /** * 相机焦点 */ lookAt: THREE.Vector3, /** * 曲线 */ curve: THREE.CatmullRomCurve3, /** * 进度 */ progress: number, /** * 激活视角 */ enabled: boolean ) => void) | undefined /** * 文本提示(按键规则) * 默认 true */ textTip: boolean /** * 相机自动移动 * 默认: true */ cameraAutoMove: boolean /** * 控制最大距离 * 默认: 5 */ maxDistance: number } export interface Options { /** * docment 容器 */ container: HTMLElement | string /** * 容器宽度 */ width: number /** * 容器高度 */ height: number /** * 基础地址(资源地址) */ baseUrl: string /** * 场景缩放倍数(如大屏,缩放,二维坐标计算需要) */ scale: number /** * 背景颜色 */ bgColor: number | string /** * 背景地址(图片) */ bgUrl: string | string[] /** * 环境纹理文件地址(hdr 文件) */ env: string /** * 雾化 */ fog: Fog /** * 渲染器 */ render: Render /** * 控制器 */ controls: Controls /** * 环境灯光 */ ambientLight: AmbientLight /** * 平行灯光 */ directionalLight: DirectionalLight /** * 相机 */ camera: Camera /** * 巡航 */ cruise: Cruise /** * 网格辅助器 */ grid: Grid /** * 坐标辅助器 */ axes: Axes } export type Params = import('./utils').DeepPartial<Options>