【解决办法】对模型的骨架、材质和纹理的创建、添加、删除、修改等操作都需要创建一个模型实体管理器 ModelEntityManager manager = new ModelEntityManager(datasetVector);该管理器可更新skeleton中的所有实体:包括骨架、材质和纹理。
修改模型材质颜色的大概步骤如下:
1、获取到骨架的材质skeleton.Material
2、修改骨架的材质颜色material.MaterialColor
3、构建一个模型实体管理器
4、模型及模型实体管理器更新材质
示例代码如下:
GeoModel3D geoModel = recordset.GetGeometry() as GeoModel3D;
Model model = geoModel.Model;
SkeletonID skeletonID = new SkeletonID(-1, 0);//-1代表LOD层,0代表骨骼编号。
Skeleton skeleton = model.GetSkeleton(skeletonID);
Material3D material = new Material3D(skeleton.Material);
material.MaterialColor = Color.Red;//将材质颜色修改为红色
//将新定义的材质赋给骨架的材质
skeleton.Material= material;
//构建一个模型实体管理器
ModelEntityManager manager = new ModelEntityManager(datasetVector);
//模型及模型实体管理器更新材质
model.Update(skeleton);
manager.Update(model);
manager.UpdateDataset();
manager.Dispose();