提问者:小点点

模型及其纹理未在Forge viewer中正确加载


我正在尝试使用我在此处找到的函数loadModel()将带有纹理的自定义模型加载到Forge Autodesk viewer中。前几天,模型正在加载,但没有纹理,没有出现错误。。。像往常一样,奇怪的事情发生在晚上,而今天,模型甚至没有出现在观众中。这一次,我得到以下错误:

Uncaught TypeError: Cannot read property 'proteinType' of undefined

起初,我的模型是一个zip文件夹,包含一个. obj、一个. mtl和一个. png(用于纹理)。我翻译成svf使用锻造提取器。所以我使用,在本地,在一个资源/三维模型文件夹,这导致svf文件夹。它包含.tif.png纹理、. svf文件、Materials.json.gz存档和svf文件夹中的其他常用文件(属性、相机定义...)。

没有蛋白Materials.json.gz存档。所以我可以假设问题可能来自aterials.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个答案

匿名用户

请记住,Autodesk Forge Viewer的使用限制免责声明声明“Autodesk Forge Viewer只能用于查看由Autodesk Forge services生成的文件。Autodesk Forge Viewer JavaScript必须从Autodesk托管的URL传递”。

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

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

模型衍生API的版本和您使用的Forge Viewer的版本之间可能存在“不一致”。我建议,要使用官方方式转换您的模型,请从服务器提供您的模型,并将其放入从头创建的基本查看器中。然后逐渐将/replace/integrate/“migrate”添加到“飞机模式”,并确定它在哪一步破坏了您的模型。

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

<代码>

现在,如果我重新戴上法律帽子,请注意用例的法律方面。