[发明专利]一种ARCHICAD到D5渲染器实时渲染的数据转换方法在审
申请号: | 202011148402.8 | 申请日: | 2020-10-23 |
公开(公告)号: | CN112258613A | 公开(公告)日: | 2021-01-22 |
发明(设计)人: | 朱海天;缪源清;马宗阳;方志成;韩峰;黄首志;牛泽平;刘景明 | 申请(专利权)人: | 南京维伍网络科技有限公司 |
主分类号: | G06T15/00 | 分类号: | G06T15/00 |
代理公司: | 南京利丰知识产权代理事务所(特殊普通合伙) 32256 | 代理人: | 任立 |
地址: | 211500 江苏省*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 archicad d5 渲染 实时 数据 转换 方法 | ||
本发明公开了一种ARCHICAD到D5渲染器实时渲染的数据转换方法,通过ARCHICAD插件读取当前项目的模型信息,处理后发送给本地连接模块做进一步的优化,最后同步到D5渲染器中,本发明通过对ARCHICAD的所有内建材质类型进行解析,获得了良好的材质对应效果,几乎所有内建材质都可以在同步后反映出来,同时在本地模块中对模型数据进行了优化,让相同材质的模型进行合并,优化后不但提高了同步后的渲染速度,还使渲染效果得到了很大的改善。
技术领域
本发明涉及3D数据转换,尤其涉及一种ARCHICAD到D5渲染器实时渲染的数据转换方法。
背景技术
TwinMotion是一款专为建筑需求而设计的工具集。该技术是将ARCHICAD项目同步到UnrealEngine中的一个插件,用户可以将ARCHICAD项目中的模型导入到UnrealEngine中进行实时可视化。主要原理是对ARCHICAD的数据结构进行遍历并转换到UnrealEngine可识别的格式,其缺点有:
1.Socket连接:TwinMotion采用短连接,每次更新后必须重新连接;
2.导出速度:TwinMotion的导出速度相对较慢;
3.材质对应:TwinMotion导出的材质存在不能跟ARCHICAD中的材质一一对应的情况;
4.模型:TwinMotion未对ARCHICAD产生的模型数据进行优化,在某些情形下会影响渲染效果。
发明内容
本发明所要解决的技术问题是,针对以上现有技术存在的缺点,提供一种ARCHICAD到D5渲染器实时渲染的数据转换方法。
本发明解决以上技术问题的技术方案是:一种ARCHICAD到D5渲染器实时渲染的数据转换方法,通过ARCHICAD插件读取当前项目的模型信息,处理后发送给本地连接模块做进一步的优化,最后同步到D5渲染器中,其具体包括以下步骤为:
S1:首先产生有效的可以导出的材质与几何结构的集合,具体为:
(1)获取模型
a.通过调用SDK提供的接口获取3D模型。
(2)读取材质信息
a.调用SDK提供的接口GetMaterialCount,获取当前模型的材质数目。
b.以材质编号为索引,获取材质的信息。若材质存在贴图则获取此贴图的像素信息,将像素写入png文件中以保持RGB以及alpha通道的信息。
c.将材质的名称、可能存在的材质贴图的位置、颜色信息保存至相应的数据结构中。
(3)读取三维数据
a.调用SDK提供的接口GetElementCount获取当前模型的元素个数。
b.以元素编号为索引,获取每个元素的信息。调用GetMeshBody调取每个元素中的实体信息。调用GetPolygonCount获取每个实体的多边形信息,再获取每个多边形的顶点数,加入顶点数组中。调用GetConvexPolygonCount获取每个多边形中的凸多边形信息,再将凸四边形分解成三角形,求出每个点在实体的顶点数组中的索引,获取面上的每个点的uv值与法向量。
c.将顶点数组、索引信息、uv数组、法向量数组保存到相应的数据结构中。将恒等矩阵作为变换矩阵保存。
(4)建立实例信息
a.将步骤(2)(3)中得到的信息进行组合,得到实例信息。
(5)发送给本地连接模块
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京维伍网络科技有限公司,未经南京维伍网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011148402.8/2.html,转载请声明来源钻瓜专利网。