【问题标题】:Forge Viewer, raster imagesForge Viewer,光栅图像
【发布时间】:2021-06-14 15:17:10
【问题描述】:

是否可以将光栅图像(PNG、JPG、TIFF)直接加载到 Forge Viewer?

我看到可以加载 PDF 的 Autodesk.PDF 插件,但我找不到任何 Autodesk.IMAGE 插件... 否则,我需要先将图像转换为 PDF,然后通过 Autodesk.PDF 加载它。

【问题讨论】:

    标签: autodesk-forge autodesk-viewer


    【解决方案1】:

    Autodesk Forge 查看器基于 Three.js - 因此您可以使用 Three.js API 来加载图像/纹理,不需要查看器扩展。

    但是,这取决于您想做什么。如果您只想在场景中加载图像,那么该代码就足够了。

    const texture = THREE.ImageUtils.loadTexture( "thumbnail256.png" );
    const material = new THREE.MeshBasicMaterial({ map : texture });
    const geometry = new THREE.PlaneGeometry(5, 20, 32);
    const planeMesh = new THREE.Mesh(geometry, material);
    const planeMesh.position.set(1, 2, 3);
    NOP_VIEWER.overlays.addScene('custom-scene');
    NOP_VIEWER.overlays.addMesh(planeMesh, 'custom-scene');
    

    但是如果你想在加载场景中的现有元素上应用纹理,你需要这样进行:

    const texture = THREE.ImageUtils.loadTexture( "thumbnail256.png" );
    const material = new THREE.MeshBasicMaterial({ map : texture, side: THREE.DoubleSide });
    NOP_VIEWER.impl.matman().addMaterial('custom-material', material, true);
    const model = NOP_VIEWER.model;
    model.unconsolidate(); // If the model is consolidated, material changes won't have any effect
    const tree = model.getInstanceTree();
    const frags = model.getFragmentList();
    const dbids = NOP_VIEWER.getSelection();
    for (const dbid of dbids) {
      tree.enumNodeFragments(dbid, (fragid) => {
        frags.setMaterial(fragid, material);
      });
    }
    NOP_VIEWER.impl.invalidate(true, true, false);
    
    

    请注意,您可能需要根据几何形状计算纹理 uv。

    【讨论】:

    • 感谢@cyrille,我必须在场景中添加图像,而不是在其他元素上添加纹理,因此您的第一个示例可能是我的解决方案。我发现this 发布了如何在查看器上加载自定义模型,这是添加纹理的正确方法吗?你有一个关于如何初始化查看器和使用three.js添加纹理的完整示例吗?谢谢
    • @CristianBarzaghi,是的,Petr 文章是另一种方式,但与上面的内容非常相似。一种非常不同的方法是动态创建 glTF 或 OBJ 文件并将其加载到场景中。这真的取决于你想做什么。但是如果你不想要纹理,我不确定你可以在非 2d 画布上做到这一点:(
    猜你喜欢
    • 2019-06-21
    • 1970-01-01
    • 2021-01-08
    • 2020-10-21
    • 2020-03-27
    • 1970-01-01
    • 2018-05-14
    • 1970-01-01
    • 2022-06-16
    相关资源
    最近更新 更多