我正在尝试使用函数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)
它找不到文件夹中的纹理,但是它在文件夹中,并且名称正确!所以:我开始怀疑图像是否真的在服务器上......或者不是。我不知道如何检查或将图像插入服务器。
答案 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>
现在,如果我放弃合法的帽子,请注意用例的法律方面。