常见开发问题
1. 水印及 AppKey
原因:SDK v0.5.0 版本以后,默认会在左下角添加水印标志。
解决办法:联系销售人员申请 AppKey,在 LCCRender.load() 的参数中设置 appKey 以去除水印。
2. SDK 集成至 Babel 工程报错
原因:SDK 使用现代浏览器语法,Babel 会将其编译为低版本语法,可能导致运行异常或编译不通过。
解决办法:
- 在工程中配置 Babel 不对 SDK 文件进行编译。
- 或者通过
<script>标签引入 SDK 文件,跳过编译:
<script src="./sdk.js"></script>
引入后使用 LCC.LCCRender 进行加载。
3. Three.js 引擎中 LCC 模型不可见
按以下步骤逐项排查:
- 查看浏览器控制台是否有报错信息(如文件不存在)。
- 排查
dataPath中的文件是否可正常访问和下载。 - 排查相机的
far平面值是否足够大,模型可能在相机视锥体之外。 - 排查是否在每帧渲染循环中调用了
LCCRender.update()。
如果以上排查均无问题,欢迎联系技术支持或在论坛中提问。
4. CesiumJS 中 3D Tile 模型被 LCC 模型遮挡
原因:默认情况下,LCC 模型写入深度且深度测试函数设为永远通过(ALWAYS)。在 Pass.CESIUM_3D_TILE 渲染队列中,如果 3D Tile 在 LCC 模型之前加载,会被 LCC 模型的深度覆盖。
解决办法:
- 在
LCCRender.load()的成功回调函数中加载 3D Tile 模型。 - 或者在两者都加载完成后调用
lccObject.lowerToBottom(),将 LCC 模型的渲染顺序放到最前面。
5. CesiumJS 低版本支持
原因:Cesium v1.102 开始默认支持 WebGL2,此前版本默认开启 WebGL1。Web SDK 不支持 WebGL1,需要强制使用 WebGL2。
解决办法:强制开启 WebGL2,目前最低支持到 Cesium v1.67。
const viewer = new Cesium.Viewer("cesiumContainer", {
orderIndependentTranslucency: false, // Disable order-independent translucency
useDefaultRenderLoop: true,
resolutionScale: window.devicePixelRatio,
contextOptions: {
webgl2: true, // Force WebGL 2.0
requestWebgl2: true
}
});
6. 计算机硬件很好,但使用 Viewer 很卡
原因:多显卡计算机(如 Intel 集成显卡 + NVIDIA 独立显卡)中,Windows 系统默认可能优先使用集成显卡,导致渲染卡顿。
解决办法:
- 将计算机电源模式设置为「高性能」。
- 在 NVIDIA 控制面板中将浏览器设置为使用独立显卡。
- 在 Windows 系统设置 → 显示 → 图形 中,将浏览器指定为「高性能」GPU。
设置完成后需重启浏览器,确保新设置生效。
7. 计算机硬件符合要求,但渲染卡顿
3DGS 渲染对资源要求较高。使用时请关闭资源消耗大的应用,如 3D 编辑器、LCC 重建任务、高清视频播放、高速下载任务、视频直播等,释放必要的计算资源。
8. 同一台笔记本电脑性能表现不同
如果在不同时段使用笔记本电脑漫游场景出现不同的性能表现(有时流畅、有时卡顿),原因多半与是否使用外接电源有关。使用电池供电时,笔记本会采用节能策略,降低 CPU 和 GPU 性能,因此可能出现卡顿现象。建议在进行 3DGS 场景浏览时使用外接电源。