Autodesk.NPR扩展模型边缘不显示及ext对象为空问题求助
解决方案
1. 边缘显示不生效的问题
NPR扩展的edges参数无法单独启用,它需要配合支持边缘渲染的样式才能生效。正确操作流程是先设置对应样式,再开启边缘显示:
// 等待扩展加载完成 await viewer.loadExtension('Autodesk.NPR'); const ext = viewer.getExtension('Autodesk.NPR'); // 先设置支持边缘渲染的样式,如edging或cel ext.setParameter("style", "edging"); // 再开启边缘显示 ext.setParameter("edges", true);
注意:仅cel、edging这类特定样式支持edges参数,其他样式下该参数不会产生效果。
2. 刷新页面后ext对象为null的问题
页面刷新后Viewer实例会重新初始化,之前获取的扩展实例会失效变为null。需要在Viewer初始化完成的事件中重新加载并获取扩展:
// 监听模型几何加载完成事件,确保Viewer初始化完毕 viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, async () => { await viewer.loadExtension('Autodesk.NPR'); const ext = viewer.getExtension('Autodesk.NPR'); // 重新设置所需参数 ext.setParameter("style", "edging"); ext.setParameter("edges", true); });
也可以直接在Viewer初始化的回调函数中处理扩展加载逻辑,保证每次页面刷新后都能重新获取有效的扩展实例。
内容的提问来源于stack exchange,提问作者Prince Satyam
相关产品推荐
相关产品推荐

