添加后期特效

EvoMap JS API中,使用EM.effect 包下的类来创建后期特效,比如EM.effect.BloomEM.effect.ObjectBloomEM.effect.Outline等,然后通过地图对象上的addEffect方法将特效添加到地图上。此处以添加全屏泛光特效(Bloom)为例。

初始化地图

确保你已经引入了 EvoMap 的相关库,并且已经初始化了一个地图实例 map

let map = new EM.Map("map", {
  zoom: 22, // 地图的缩放级别,数值越大,地图显示的内容越详细
  center: [340.1978, 262.3658, 0], // 地图的中心点坐标,格式为 [x, y, z]
  pitch: 75, // 地图的倾斜角度
  roll: 57.89, // 地图的旋转角度
  bgColor: "#000", // 设置纯黑背景,以调节泛光效果
});

添加3D模型

接下来,我们添加一个3D模型到地图上。

let pudong = new EM.model.Model({
  url: "../public/model/shanghai/pudong.gltf", // 3D模型的URL
  coordinate: [320.364, 286.874, 3], // 模型的坐标点
  rotate: [90, 35, 0], // 模型的旋转角度
  scale: [10, 10, 10], // 模型的缩放比例
});
map.addModel(pudong); // 将3D模型添加到地图上

添加全屏泛光特效

现在,我们需要在地图上添加全屏泛光特效(Bloom)。这个特效可以使亮部区域产生泛光效果,增强视觉冲击力。

let bloom = new EM.effect.Bloom({
  strength: 1, // 泛光的强度
  radius: 1, // 泛光的半径
  threshold: 0, // 泛光的阈值
});
map.addEffect(bloom); // 将泛光特效添加到地图上

参数说明:

  • strength:泛光的强度,数值越大,泛光效果越明显。
  • radius:泛光的半径,数值越大,泛光的范围越大。
  • threshold:泛光的阈值,控制哪些部分会受到泛光影响,数值越小,受影响的范围越大。

添加抗锯齿

为了提高渲染质量,我们可以添加抗锯齿(FXAA)特效。这个特效可以减少图像的锯齿状边缘,使图像更加平滑。

let fxaa = new EM.effect.Fxaa(); // 初始化抗锯齿特效
map.addEffect(fxaa); // 将抗锯齿特效添加到地图上

注意事项

如果你遇到泛光效果不明显的情况,可以通过调整泛光参数 strengthradiusthreshold 来增强效果。然而,需要注意的是,泛光半径越大,对性能的影响也会越大。因此,你需要在视觉效果和性能之间找到一个平衡点。

results matching ""

    No results matching ""