首页 / 浏览问题 / 组件GIS / 问题详情
Material3DPBR 类会使模型外观都变成黑色是怎么回事?
12EXP 2021年03月25日

SuperMap iObjects .NET 10i 2020 版的开发包

帮助文档有Material3DPBR这个类,但是将Material3DPBR替换 Material3D类就会使导出的模型外观都变黑色,看了文档也没有使用的相关例子,请问如果要往skeleton里面添加PBR材质需要怎么做呢?

1个回答

替换?不太清楚请问您说的替换是指什么操作?

黑色的问题,您的Material3DPBR.AlphaMode 和Material3D.Type等属性类型是否设置为PBR,Check属性检查是否合法?材质源是否无问题?材质的各种颜色属性是否设置为黑色?

skeleton设置PBR材质需要通过Skeleton.Material 属性进行设置,并需要江Material的type属性设为PBR类型。
9,633EXP 2021年03月25日
替换的意思是将Material3DPBR 改为 Material3D,不适用继承。Material3DPBR材质变黑色, Material3D则正常,目前想使用Material3DPBR。、

Material3DPBR.AlphaMode 是不透明,Material3D.Type这个是只能获取不能设置,Check属性返回false,但是使用Material3D 进行Check的时候返回也是false,但是导出模型的时候是正常的。材质的颜色设置了白色,其他色都不行。
Material3DPBR是Material3D子类,是其继承子类的,是可以正常使用的。

您可以将Material3DPBR转换为material3D后赋值。

如您不会使用Material3D,建议您查看”创建骨架并生成模型(Skeleton2GeoModel3D)“范例程序及其范例代码。

子类相对于父类有属性上的扩展,但是使用方法是一样的。

同时您的材质检查合法才可以使用,您参考范例代码设置后如还未能正常显示,您可以控制变量检查究竟是哪一条属性导致的问题。
那怎么样才是材质合法的标准呢,我用Materia3DPBR 直接FromFile()来获取的图片,格式jpg,png的都是,用Check方法检查都是false。
图片的话您可以直接用Materia3D来使用,在使用和合法性性上Materia3D及其子类Materiar3DPBR是没有区别的。

关于Material3D系列类的使用如果您不会的话,还是建议您看一下范例代码。
您可以自己试一下你们自己官方的例子,换成MaterialPBR按照您说的方法去用,我试了一样是黑色的。
您这边在Iobject的使用的纹理和设置参数有没有在IDesktop上使用成功?
用Material3D就是正常在IDesktop上打开就是正常的,用Material3DPBR打开就是黑色的,按理说我只是用子类替换了父类来使用,就算我没有加上子类的新功能也不影响正常使用的。Material3DPBR的所有参数我都试过了还是黑色的,除非你使用MetalicFactor设置光滑度会变一点。
不,我的意思是您在IDesktop桌面端,对模型赋予您的数据和参数设置PBR材质是否正常显示?

材质都添加了,在桌面端看不见材质

那就是您的材质有问题,您现在桌面端测试解决材质的问题叭。smiley

那材质有什么标准呢?用官方例子自带的图片也是同样的效果。开发文档上没有相关的说明

不是开发,您现在需要的是在桌面端确认解决您的材质可用,我这边是组件端的支持。smiley

好的,谢谢你
...