Autodesk Forge Viewer DiffTool并排视图左侧模型无法渲染问题
解决Autodesk Forge Viewer DiffTool并排模式左侧模型不渲染问题
排查与修复步骤
- 检查视口渲染上下文:并排模式下DiffTool会创建两个独立视口,左侧视口可能未正确初始化渲染上下文。可手动触发重绘:
const diffTool = viewer.getExtension('Autodesk.Diff'); if (diffTool && diffTool.mode === 'side-by-side') { diffTool.leftViewport.invalidate(true); } - 确保模型完全加载后切换模式:叠加模式对加载时机要求较低,但并排模式需要两个模型的几何数据完全就绪。监听
GEOMETRY_LOADED_EVENT,待双模型加载完成后再切换并排模式:let model1Loaded = false; let model2Loaded = false; viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, (e) => { if (e.model === model1) model1Loaded = true; if (e.model === model2) model2Loaded = true; if (model1Loaded && model2Loaded) { const diffTool = viewer.getExtension('Autodesk.Diff'); diffTool.switchMode('side-by-side'); } }); - 重置左侧视口缓存:WebGL上下文缓存异常可能导致渲染失效,尝试清除并重新渲染:
const diffTool = viewer.getExtension('Autodesk.Diff'); if (diffTool) { diffTool.leftViewport.clear(); diffTool.render(); } - 排查CSS样式冲突:自定义页面样式可能覆盖DiffTool的左侧视口容器样式,导致其尺寸为0或被隐藏。检查
.adsk-viewing-viewer .diff-left-viewport的width、height、opacity等属性,确保无异常覆盖。 - 升级Viewer SDK版本:旧版本DiffTool存在并排模式渲染bug,建议升级至最新版Autodesk Forge Viewer SDK。
额外调试技巧
若上述步骤无效,可在控制台打印diffTool.leftViewport,检查其canvas元素是否存在且尺寸正常,WebGL上下文是否初始化成功,定位具体渲染异常点。
内容的提问来源于stack exchange,提问作者Tomáš Václavík
相关产品推荐
相关产品推荐

