34关于轻量化发布后材质显示与revit中不一致问题

admin 于 2024/07/02 13:19 最后修改

一、 无法导出贴图的几种情况

1. 不支持导出 “贴花” 图片

1642398437202-543.png

贴花导出后将是一个灰色边框,图片并不会输出。原因是它本质上并不是材质贴图,而且截止目前最新版本(Revit 2022),Revit API 也未提供其相关参数的访问接口。建议尽量避免使用贴花,而是使用传统的纹理贴图的方式附加图片资源。

2. 不支持导出 RPC 族构件图片

1642398493122-230.png

1642398508882-162.png

RPC 族构件是基于被称为 RPC 组件的特殊族,其内部图片及 UV 数据的 API 接口也未公开。对于此类构件只能导出它的 “基础纸板”。

建议建模时尽量避免使用 RPC 族,而是使用一些 “真正的” 模型族来表达植物、行人和车辆这些内容。

3. 不支持导出非 “图像” 类型的材质

只有当材质定义使用“图像”方式设定的纹理贴图才能被正确导出;

而其它的非 “图像” 类型的材质,原理上属于 Shader 贴图,受限于无法找到在终端图形平台的正确表达及信息传递方法,所以无法导出。

1642398548153-164.png

只有当材质定义使用“图像”方式设定的纹理贴图才能被正确导出;

而其它的非 “图像” 类型的材质,原理上属于 Shader 贴图,受限于无法找到在终端图形平台的正确表达及信息传递方法,所以无法导出。

4. 材质定义信息紊乱的情况

常见于某些在早期 Revit 版本上建模,后来用较新的 Revit 版本升级过的 rvt 模型,可能是由于 Revit 内部的 bug,导致升级过程中材质定义信息紊乱,导出过程中程序无法正确读取到其材质定义导致不能输出贴图;

若 Revit 版本大于 2018.1,最新版本的 Engine 已经可以正确识别并处理此类问题,在导出过程中自动修复并正确处理。

如果您的 Revit 或 协同大师的版本较老,您也可以通过手工操作来修正此类数据问题,方法是将材质定义中的“使用渲染外观”选项选中即可,如下图:

1642398606778-831.png

5. 使用 “按类别” 方式设置材质的情况

在 Revit 建模有一种为构件设置关联材质的方法,即使用 “按类别” 的方式来设置绑定构件的材质,为构件的材质绑定提供了极大的灵活性。

1642398617175-658.png

1642398629040-633.png

其基本方法为:

(1)首先为构件及构件内子元素设置对应的 “类别” 和“子类别”,并把材质属性设置为“按类别”;

(2)然后在 Revit 的 管理/对象样式 中为每个“类别”和“子类别”指定材质信息;

(3)最后 Revit 在显示构件时根据之前的设置找到构件及子构件内子元素对应的材质,动态关联并渲染输出;

但在导出数据的过程中,由于无法获取到构件内子元素的“子类别”信息,导出程序无法找到对应关联的材质,导致无法正确获取并输出构件内子元素“按类别”方式设置的材质

建议:“按类别”方式设置材质的方法,与模型导出功能不兼容,建议慎用。

6. 导出 3D Tiles 时, 对于带有凹凸贴图的材质,不同构件显示亮度不一致的问题

原因分析:3D Tiles 底层数据使用 glTF 格式作为模型载体,但 glTF 并不支持凹凸贴图,如果为材质定义了 “凹凸贴图”,导出程序会尝试将“凹凸贴图”转换为“法线贴图”,来模拟凹凸效果。但“法线贴图”对环境光线比较敏感,如果不同构件上的贴图摆放方向不同,比如有些横着贴有些竖着贴,就会导致在 Cesium 平台显示时出现不同的明暗效果;

解决思路:

(1) 可以到材质定义中取消“凹凸贴图”,虽然输出少了凹凸效果但解决了明暗差异问题,如下图:

1642398698699-837.png

(2) 联系客服索取配置文件,全局禁用自动转换凹凸贴图到法线贴图的特性,输出glTF 时自动忽略凹凸贴图;

7. 贴图类型组合与 glTF 格式规范不兼容的情况

若导出的数据格式为 glTF/glb 或 3D Tiles,受 glTF 格式规范中 PBR 定义限制,当前支持的贴图类型组合为以下 5 种,若您的贴图定义不在这 5 种范围内则会自动适配调整到这五种组合之一

普通纹理(diffuse)

普通纹理(diffuse) + 凹凸纹理(bump)

Alpha 纹理(alpha)

Alpha 纹理(alpha) + 凹凸纹理(bump)

凹凸纹理(bump)

若您的材质定义中的贴图类型组合不在这 5 种情况之内,可能会导致导出的视觉效果和 Revit 中的效果有差异;

二、 解决问题的基本思路

如果纹理贴图未如您预期导出展示,您可以按照以下思路来排查解决。

1. 如果您使用的协同大师版本较老,请先升级到最新版本后重试;

2. 判断是否属于前文中不支持导出贴图的几种情形,如果是的话则需要您先调整修改模型;

3. 导出模型时,视觉样式是否选中了 “纹理” 或 “真实”,如选择不正确可更正后重新导出;

4. 验证下是否能在 Revit 中看到模型上的贴图,如果 Revit 中都看不到贴图说明材质定义有问题,或者材质图片文件未正确部署,排除问题后再导出;

5. 若导出的格式为 3D Tiles,在内置预览器一切正常,但发布到 Web Server 下却看不到贴图。

6.若感觉在Cesium中模型显示的亮度不准确,可以拖动Cesium底部的时间轴来调整阳光角度,可改善模型显示的光照效果;