一种Revit到D5渲染器实时渲染的数据转换方法技术

技术编号:27132129 阅读:41 留言:0更新日期:2021-01-25 20:13
本发明专利技术公开了一种Revit到D5渲染器实时渲染的数据转换方法,通过Revit插件读取当前项目的模型信息,处理后发送给Native连接模块做进一步的优化,最后同步到D5渲染器中,本发明专利技术通过对Revit的所有内建材质类型进行解析,获得了良好的材质对应效果,几乎所有内建材质都可以在同步后反映出来,同时在Native模块中对模型数据进行了优化,让相同材质的模型进行合并,优化后不但提高了同步后的渲染速度,还使渲染效果得到了很大的改善。渲染效果得到了很大的改善。渲染效果得到了很大的改善。

【技术实现步骤摘要】
一种Revit到D5渲染器实时渲染的数据转换方法


[0001]本专利技术涉及3D数据转换,尤其涉及一种Revit到D5渲染器实时渲染的数据转换方法。

技术介绍

[0002]TwinMotion一款专为建筑需求而设计的工具集该技术是将Revit项目同步到UnrealEngine中的一个插件,用户可以将Revit项目中的模型导入到UnrealEngine中进行实时可视化。主要原理是对Revit的数据结构进行遍历并转换到UnrealEngine可识别的格式,其缺点有:
[0003]1.Socket连接:TwinMotion采用短连接,每次更新后必须重新连接;
[0004]2.导出速度:TwinMotion的导出速度相对较慢;
[0005]3.材质对应:TwinMotion导出的材质存在不能跟Revit中的材质一一对应的情况;
[0006]4.模型:TwinMotion未对Revit产生的模型数据进行优化,在某些情形下会影响渲染效果。

技术实现思路

[0007]本专利技术所要解决的技术问题是,针对以上现有技术存在的缺点,提供一种Revit到D5渲染器实时渲染的数据转换方法。
[0008]本专利技术解决以上技术问题的技术方案是:一种Revit到D5渲染器实时渲染的数据转换方法,通过Revit插件读取当前项目的模型信息,处理后发送给Native连接模块做进一步的优化,最后同步到D5渲染器中,其具体包括以下步骤为:
[0009]S1:首先通过Mesh筛选和生成过程,产生有效的可以导出的Mesh集合,具体为:
[0010](1)筛选有效模型
[0011]Revit提供了IExportContext接口和CustomExporter类,通过实现IExportContext接口,并创建一个实例传递给CustomExporter,实现导出的功能,其中,IExportContext接口的OnViewBegin方法会在每一个View被导出之前调用,用来将不需要导出的View跳过,而OnInstanceBegin方法会在每一个Revit中的对象Family Instance被导出之前调用,用来获取当前Instance的Transform矩阵,OnElementBegin方法会在每一个Revit里的元素被导出之前调用,根据其Category属性可以将用户不可见的、标注和分析元素跳过,另外属于用户选择的需要排除的Category的元素也会需要跳过,所有没有被跳过的元素的Mesh信息会在OnPolyMesh方法中给出,
[0012](2)Mesh生成:模型材质抽取和模型三维数据抽取
[0013]a在IExportContext接口的OnPolyMesh函数中,Revit会提供计算好的模型顶点、贴图坐标以及法线数据,Revit插件将这些数据转换为Native模块可以识别的格式,并调用函数将数据发送过去;
[0014]b材质抽取由专门的MaterialExtractor实现,Revit中的材质信息保存在一个字
典中,不同的材质会有不同的关键字以及对应的值,字典的关键字由材质对应的Schema决定,共有20种标准Schema,对于每一种MaterialExtractor都会读取颜色、反射率、凹凸贴图等信息,这些信息组合到XML里,并发送给Native模块;
[0015]c将上述a和b中数据及信息转换成D5渲染器内部可以处理的格式之后,发送到Native连接模块进行下一步处理,,同时在revit里面模型材质数据的导出过程开始之前,先测试跟D5渲染器的连接,没有问题后所有数据发送到Native模块,之后调用相应的函数将发送的数据通过Socket发送到渲染器中,若出现连接问题,出现错误提示,提示用户当前状态,用户根据返回的错误码,并且用户需要根据错误提示采取的下一步操作,直至与D5渲染器连接正常;
[0016]S2:Native连接模块接收模型数据,并将数据传到GPU上进行优化,其具体步骤为:
[0017](1)准备数据:需要将数据转换为可以被GPU处理的格式;
[0018](2)调用CUDA C函数,将数据上传到GPU;
[0019](3)调用CUDA核,对模型进行优化;
[0020](4)调用CUDA C函数,将数据从GPU数组拷贝回CPU数组中;
[0021](5)调用Socket函数,将合并后的模型数据和材质数据转换为字符串,通过Socket将数据发送到D5渲染器中进行渲染。
[0022]本专利技术进一步限定的技术方案是:
[0023]优选地,在S2(1)中准备数据,其具体为:将所有的顶点数据、所有的法线数据分别打包到两个大数组中,然后再上传到GPU,同时将所有的Transform矩阵也需要打包起来,对于每个顶点或法线,都额外存储了一个Transform数组的索引,用来获取对当前坐标进行转换的矩阵,需要将数据转换为可以被GPU处理的格式。
[0024]优选地,在S2(2)中先在CPU分配好打包的存储空间,将数据复制过去,然后再GPU分配同样大小的存储空间,调用CUDA C函数,进行数据上传。
[0025]优选地,在S2(3)中对模型进行优化,具体为:将模型的顶点和法线用Transform矩阵进行变换,对于每个CUDA线程,用线程ID作为索引,从打包的顶点或法线数组里选择一个点,然后从打包的Transform矩阵数组中读取这个点对应的Transform,这样每个顶点的变换都是并行的,然后将材质相同的模型变换后的顶点组合到一个新的模型中,使得相同材质的模型进行合并。
[0026]本专利技术的有益效果是:
[0027]1.本专利技术基础采用了持久的连接,只要连接一次之后,用户每次更新模型之后就可以立即反映到D5渲染器中,不需要用户再选择或者多操作什么;
[0028]2.材质对应:本专利技术通过对Revit的所有内建材质类型进行解析,获得了良好的材质对应效果,几乎所有内建材质都可以在同步后反映出来。
[0029]3.模型优化:本专利技术在Native模块中对模型数据进行了优化,让相同材质的模型进行合并,不但提高了同步后的渲染速度,还使渲染效果得到了很大的改善。
[0030]4.导出类型筛选:本专利技术实现了用户对导出模型类别的筛选,例如用户可以只导出窗户或者屋顶。
附图说明
[0031]图1为实施例1整体流程图;
[0032]图2为实施例1中S1的具体流程图;
[0033]图3为实施例1中S2的具体流程图。
具体实施方式
[0034]实施例1
[0035]本实施例提供一种Revit到D5渲染器实时渲染的数据转换方法,如图1所示,通过Revit插件读取当前项目的模型信息,处理后发送给Native连接模块做进一步的优化,最后同步到D5渲染器中,其具体包括以下步骤为:
[0036]S1:如图2所示,首先通过Mesh筛选和生成过程,产生有本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Revit到D5渲染器实时渲染的数据转换方法,其特征在于:通过Revit插件读取当前项目的模型信息,处理后发送给Native连接模块做进一步的优化,最后同步到D5渲染器中,其具体包括以下步骤为:S1:首先通过Mesh筛选和生成过程,产生有效的可以导出的Mesh集合,具体为:(1)筛选有效模型Revit提供了IExportContext接口和CustomExporter类,通过实现IExportContext接口,并创建一个实例传递给CustomExporter,实现导出的功能,其中,IExportContext接口的OnViewBegin方法会在每一个View被导出之前调用,用来将不需要导出的View跳过,而OnInstanceBegin方法会在每一个Revit中的对象Family Instance被导出之前调用,用来获取当前Instance的Transform矩阵,OnElementBegin方法会在每一个Revit里的元素被导出之前调用,根据其Category属性可以将用户不可见的、标注和分析元素跳过,另外属于用户选择的需要排除的Category的元素也会需要跳过,所有没有被跳过的元素的Mesh信息会在OnPolyMesh方法中给出;(2)Mesh生成:模型材质抽取和模型三维数据抽取a在IExportContext接口的OnPolyMesh函数中,Revit会提供计算好的模型顶点、贴图坐标以及法线数据,Revit插件将这些数据转换为Native模块可以识别的格式,并调用函数将数据发送过去;b材质抽取由专门的MaterialExtractor实现,Revit中的材质信息保存在一个字典中,不同的材质会有不同的关键字以及对应的值,字典的关键字由材质对应的Schema决定,共有20种标准Schema,对于每一种MaterialExtractor都会读取颜色、反射率、凹凸贴图等信息,这些信息组合到XML里,并发送给Native模块;c将上述a和b中数据及信息转换成D5渲染器内部可以处理的格式之后,发送到Native连接模块进行下一步处理,,同时在rev...

【专利技术属性】
技术研发人员:张赫原琪皓韩静烨光昌正刘景明白路朱海天黄首志
申请(专利权)人:南京维伍网络科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1