常見開發問題
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 場景瀏覽時使用外接電源。