Three加载模型使用的view图层

使用ThreeJS加载模型,目前支持加载gltf文件、glb文件和threejs导出的json文件,当前使用文件后缀进行判断需要使用哪种加载方式。 新增加el-bmapv-three-view,该view存在于el-bmapv-view之下,用于给所有模型提供统一的渲染,比如灯光、后期处理灯等

已知问题

当同一个view图层中存在两种不同的文件格式会导致显示混乱,所以尽量全部用同一个文件格式,如果必须不同,则使用不同的el-bmapv-view进行隔离

基础示例

静态属性

仅且可以初始化配置,不支持响应式。

名称类型说明
lightsArray图层的全局灯光配置,可以配置多个灯光,详细参数见下面灯光说明
hdrObjectHDR配置
zoomThresholdArray全图层均可使用,用来指定图层执行渲染的地图层级,初始默认值[0, 30]
lazyNumber组件懒加载,默认-1,不进行懒加载,单位毫秒

HDR配置

{
  urls: ['px.hdr', 'nx.hdr', 'py.hdr', 'ny.hdr', 'pz.hdr', 'nz.hdr'], // HDR贴图下载地址,需要6个文件,代表6个方向, 默认 ''
  path: '/', // HDR下载地址的路径前缀, 默认 /
  exposure: 1.0 // 光亮程度, 默认1 ,值越小越暗
}

灯光配置

{
  type: 'DirectionalLight', //灯光类型, 可选值见下面的字典
  args: [], //灯光初始化时需要的参数,具体参数顺序可以查看threejs官网灯光的说明。 采用 ...args 的方式进行初始化
  position: {
    x: 0,
    y: 0,
    z: 0
  }, //光源的位置
  lookAt: {
    x: 0,
    y: 0,
    z: 0
  } //光源查看的目标点
}

const lightTypes = {
  AmbientLight: THREE.AmbientLight, // 环境光  环境光会均匀的照亮场景中的所有物体
  DirectionalLight: THREE.DirectionalLight, // 平行光  平行光是沿着特定方向发射的光
  HemisphereLight: THREE.HemisphereLight, // 半球光  光源直接放置于场景之上,光照颜色从天空光线颜色渐变到地面光线颜色。
  PointLight: THREE.PointLight, // 点光源  从一个点向各个方向发射的光源。一个常见的例子是模拟一个灯泡发出的光
  RectAreaLight: THREE.RectAreaLight, // 平面光光源  平面光光源从一个矩形平面上均匀地发射光线。这种光源可以用来模拟像明亮的窗户或者条状灯光光源
  SpotLight: THREE.SpotLight // 聚光灯  光线从一个点沿一个方向射出,随着光线照射的变远,光线圆锥体的尺寸也逐渐增大
};

ref可用方法

提供无副作用的同步帮助方法

函数返回说明
$$getInstance()ThreeLayer获取ThreeLayer实例

事件列表

事件名称 | 回调值 | 说明 init | ThreeLayer | threeLayer为three图层对象(使用百度的ThreeLayer对象)

最后更新时间:
贡献者: guyangyang