在 Forge Viewer 中显示之前如何加载模型和更改材料

How do can I load model and change materials before showing it in the Forge Viewer

我希望能够在 Forge 查看器中显示模型,但在模型显示之前我需要更改材料的默认值。目前我注册了 Autodesk.Viewing.GEOMETRY_LOADED_EVENT 并且当我收到事件时我隐藏模型,更改材料然后显示模型。除了默认模型在我可以隐藏它之前在查看器中显示一两秒钟之外,这是有效的。我怎样才能防止这种情况发生?

初始化查看器后,这里是加载文档的代码。如果我尝试隐藏模型,如查看器下方的注释代码所示 returns 此错误。我必须等待几何加载事件才能隐藏它。

wgs.js?v=v3.3:17876 未捕获类型错误:无法读取未定义的 属性 'getGeometryList' 在 RenderScene.getGeometryList (wgs.js?v=v3.3:17876) 在 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 图像预览来代替伪造 canvas。

即。 1. 隐藏锻造 canvas 风格 'display:none' 2. 显示你的 preview-jpg 代替 forge canvas 3. 等待 TEXTURES_LOADED_EVENT 事件,像这样...

https://github.com/wallabyway/forge-pdf-report/blob/6babb6d7332b6cdb983f57e7d140ff59a5136705/docs/index.html#L44

  1. 隐藏锻造 canvas 风格 'display:block'
  2. 隐藏您的预览-jpg。