三维模型是3D GIS中一类主要的数据类型,材质贴图又是三维模型的一个重要要素。方便快捷体验优秀的模型材质编辑功能,是3D GIS平台所要解决的重要问题之一。早期我们初步介绍过CityMaker平台的材质编辑功能及其使用方法,今天我们在此基础上,进一步介绍一下这种材质编辑功能具体是如何实现的。
首先,回顾一下利用Builder进行材质编辑的效果。
在三维场景中加载三维模型后,如果需要更新某个模型的指定材质,可以通过Builder中的材质编辑功能来直接完成。其中包括对现有材质的编辑、更新为其他材质等等,如下面几张图,详细的编辑方法可以参考相关软件操作。
原始三维模型
编辑当前材质
更新为其他材质
那么这种精确捕捉三维模型指定面并编辑其材质的功能是怎样实现的呢?
三维模型在FDB中的存储可以通过下面两张图来简单说明,实际上三维模型是由很多三角面组成的单元构成的。
我们看到的三维模型
实际存储的“三维模型”
当我们拾取模型时,不仅得到了这个模型本身,更重要的是同时也得到了拾取到模型上具体的哪个部分,即单元的索引编号(Index)。根据这个索引号,就可以准确获取到这个模型单元以及这个单元相关联的一系列参数信息,包括材质。
在2中获取到的模型、单元及其材质的基础上,我们就可以灵活地编辑该材质,再用编辑后的新材质来替换该模型单元原有的贴图,从而完成材质的更新。
另外,关于1中涉及到的模型结构的相关内容,可以参考如下文章:SDK培训资料分享 || 重要类库GcmResource。
加入我们官方QQ讨论群,参与更多互动分享
CityMaker软件技术分享群
189406624