Forge viewer

时间:2018-04-23 08:36:37

标签: three.js autodesk-forge autodesk-viewer

我正在尝试使用函数loadModel()将带有纹理的自定义模型加载到Forge Autodesk查看器中,我发现here。 前几天,模型正在加载,但没有纹理,没有出现错误...... 像往常一样,夜晚发生了奇怪的事情,今天,模特甚至没有出现在观众中。这一次,我收到以下错误:

Uncaught TypeError: Cannot read property 'proteinType' of undefined

首先,我的模型是一个zip文件夹,包含.obj,.mtl和.png(用于纹理)。我使用Forge extractor将其翻译成svf。 所以我在本地使用资源/ 3D模型'文件夹,由此产生的svf文件夹。它包含.tif.png纹理,.svf文件,Materials.json.gz存档以及svf文件夹中的其他常用文件(属性,相机定义......)。

没有ProteinMaterials.json.gz存档。 所以我可以假设这个问题可能来自Materials.json文件......我打开了它,但是我没有看到内部的异常......

所以如果有人有想法......

编辑!

我写过代码:

window.NOP_VIEWER.loadModel(svfPath_test, options), (myobj) => {
        myobj.id = id;
        myobj.name=name;
        myobj.path=svfPath_test;
    })

并没有加载。

仅写完后:

window.NOP_VIEWER.loadModel(svfPath_test, options)

对象出现,但是完全变灰,纹理仍未应用......现在我有了这个新错误:

Texture load error 404 (NotFound)

它找不到文件夹中的纹理,但是它在文件夹中,并且名称正确!所以:我开始怀疑图像是否真的在服务器上......或者不是。我不知道如何检查或将图像插入服务器。

1 个答案:

答案 0 :(得分:0)

请注意, Autodesk Forge Viewer使用限制免责声明 声明“ Autodesk Forge查看器只能用于查看Autodesk Forge生成的文件Autodesk Forge Viewer JavaScript 必须从Autodesk托管网址“提供。”

然而,从工程角度来看,你的麻烦的原因可能会有所不同。可能是您使用的查看器版本与翻译查看器不兼容。

根据我的记忆,Forge提取器示例创建了自包含(本地下载的所有依赖项)项目,但是对于转换,它使用Forge服务器。

我可能会在Model Derivative API的版本和您使用的Forge Viewer版本之间出现“错位”。 我建议,要使用官方方式转换模型,请从服务器提供模型并将其放入created from scratch basic Viewer。 然后逐渐添加/替换/集成/“迁移”到"airplane mode" 并确定它打破你的模型的步骤。

或者只是将本地服务的viewer3D.js,three.js和style.css更改为远程src,您甚至可以通过更改/添加版本控制来尝试使用您在项目中使用的Viewer版本。例如,一个是:

<script src="https://developer.api.autodesk.com/derivativeservice/v2/viewers/viewer3D.min.js?v=v4.1"></script>

现在,如果我放弃合法的帽子,请注意用例的法律方面。