autodesk-forge - 如何在 Forge Viewer 中显示模型之前加载模型和更改材料
问题描述
我希望能够在锻造查看器中显示模型,但在模型显示之前,我需要更改默认材料。目前我注册了 Autodesk.Viewing.GEOMETRY_LOADED_EVENT,当我收到事件时我隐藏模型,更改材料然后显示模型。除了默认模型在查看器中显示一两秒钟之外,我可以隐藏它,这很有效。我怎样才能防止这种情况发生?
在此处初始化查看器之后是加载文档的代码。如果我尝试按照下面注释代码中的指示隐藏模型,则查看器会返回此错误。我必须等待几何加载事件才能隐藏它。
wgs.js?v=v3.3:17876 Uncaught TypeError: Cannot read property 'getGeometryList' of undefined at RenderScene.getGeometryList (wgs.js?v=v3.3:17876) at Viewer3DImpl.onLoadComplete (viewer3D.js?v= v3.3:32002)
这是我正在运行的代码:
Autodesk.Viewing.Document.load(
documentId, (doc) => {
var geometryItems = Autodesk.Viewing.Document.getSubItemsWithProperties(doc.getRootItem(), { 'type': 'geometry' }, true);
if (geometryItems.length > 0) {
viewer.load(doc.getViewablePath(geometryItems[0]), null, (model) => {
// Document loaded
// Can't hide model here, viewer returns an error because geometry
// is not loaded
//viewer.hideModel(model.id);
resolve(model.id);
}); // show 1st view on this document...
}
},
function (errorMsg) { // onErrorCallback
console.log('Load Document returned error message: ' + errorMsg);
}
)
解决方案
我会简单地显示一个预先制作的 jpg 图像预览来代替伪造画布。
IE。1. 隐藏样式为“display:none”的伪造画布 2. 显示您的 preview-jpg 代替伪造画布 3. 等待 TEXTURES_LOADED_EVENT 事件,像这样...
- 隐藏样式为“display:block”的伪造画布
- 隐藏您的预览-jpg。
推荐阅读
- python - 多图像输入到python中的CNN模型
- python - dask 如何处理大于内存的数据集
- python - python从txt文件中读取格式化数据的快速方法
- html - Bootstrap 4 中的订单列不起作用
- jhipster - 如何更改rememberMeKey?
- hosting - 如何在 1&1(IONOS) 主机上访问 Cpanel?
- python - 如何将复选框与文件打开对话框链接并显示使用 python tkinter 在 GUI 中打开的文件的详细信息?
- php - PHP curl登录一次然后使用multi_curl抓取网站
- r - 无法使用具有 NA 值的 ggplot 进行可视化
- php - MySQL 全词匹配 - 多个词