问题描述
我们使用Autodesk Forge运行Web应用程序。在Web应用程序中,我们想更改表面外观。因此,我们使用以下Audodesk函数
xargs -n 1 aws cloudformation list-stacks --region
该代码对于Autodesk Revit导入的模型运行正常。使用导入的IFC模型无法正常工作。这两种模型都是通过ADs模型派生api导入到AD Forge查看器的。
为了达到预期的结果,我们尝试使用MeshBasicMaterial和MeshphongMaterial。两者具有相同的结果:Revit模型很好,IFC模型不是。
为了查找一些解决方法,我们尝试复制片段网格并使用相同的混搭和更改的材质创建覆盖。代码就像
...
event.fragIdsArray.forEach(frag => {
const model = this.viewer.model;
model.getFragmentList().setMaterial(frag,this.material)
var object = this.viewer.impl.getFragmentProxy(this.viewer.impl.model,frag)
object.updateAnimTransform()
}
结果显示在图像中(右侧是预期结果):
以某种方式看起来图像纹理没有足够“详细”显示...
提前感谢您的任何建议!
解决方法
从问题上我不能完全确定问题是什么。将自定义材料应用于IFC模型时,没有可见的变化吗?还是应用了自定义材料,但是以“错误的方式”?
如果根本没有应用自定义材料,请确保模型未未整合。您可以确保使用viewer.model.unconsolidate();
。
如果应用了自定义材质,但是其材质看起来不正确,则可能是因为IFC模型中的土工不包含正确的材质坐标。在这种情况下,您将必须自己映射纹理,例如,使用自定义着色器:https://github.com/petrbroz/forge-basic-app/blob/custom-texture-mapping/public/CustomTextureExtension.js。