添加后期特效
EvoMap JS API中,使用EM.effect
包下的类来创建后期特效,比如EM.effect.Bloom
、EM.effect.ObjectBloom
、EM.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); // 将抗锯齿特效添加到地图上
注意事项
如果你遇到泛光效果不明显的情况,可以通过调整泛光参数 strength
、radius
和 threshold
来增强效果。然而,需要注意的是,泛光半径越大,对性能的影响也会越大。因此,你需要在视觉效果和性能之间找到一个平衡点。