CN112258613A - 一种archicad到d5渲染器实时渲染的数据转换方法 - Google Patents

一种archicad到d5渲染器实时渲染的数据转换方法 Download PDF

Info

Publication number
CN112258613A
CN112258613A CN202011148402.8A CN202011148402A CN112258613A CN 112258613 A CN112258613 A CN 112258613A CN 202011148402 A CN202011148402 A CN 202011148402A CN 112258613 A CN112258613 A CN 112258613A
Authority
CN
China
Prior art keywords
data
information
model
calling
vertex
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011148402.8A
Other languages
English (en)
Other versions
CN112258613B (zh
Inventor
朱海天
缪源清
马宗阳
方志成
韩峰
黄首志
牛泽平
刘景明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Dimension 5 Network Technology Co ltd
Original Assignee
Nanjing Dimension 5 Network Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Dimension 5 Network Technology Co ltd filed Critical Nanjing Dimension 5 Network Technology Co ltd
Priority to CN202011148402.8A priority Critical patent/CN112258613B/zh
Publication of CN112258613A publication Critical patent/CN112258613A/zh
Application granted granted Critical
Publication of CN112258613B publication Critical patent/CN112258613B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

本发明公开了一种ARCHICAD到D5渲染器实时渲染的数据转换方法,通过ARCHICAD插件读取当前项目的模型信息,处理后发送给本地连接模块做进一步的优化,最后同步到D5渲染器中,本发明通过对ARCHICAD的所有内建材质类型进行解析,获得了良好的材质对应效果,几乎所有内建材质都可以在同步后反映出来,同时在本地模块中对模型数据进行了优化,让相同材质的模型进行合并,优化后不但提高了同步后的渲染速度,还使渲染效果得到了很大的改善。

Description

一种ARCHICAD到D5渲染器实时渲染的数据转换方法
技术领域
本发明涉及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)发送给本地连接模块
a.将材质、三维数据以及实例信息组织成特定的结构。
b.调用本地连接模块的接口,传递以上结构化的数据。
S2:本地连接模块接收模型数据,并将数据传到GPU上进行优化,其具体步骤为:
(1)准备数据:需要将数据转换为可以被GPU处理的格式;
(2)调用CUDA C函数,将数据上传到GPU;
(3)调用CUDA核,对模型进行优化;
(4)调用CUDA C函数,将数据从GPU数组拷贝回CPU数组中;
(5)调用Socket函数,将合并后的模型数据和材质数据转换为字符串,通过Socket将数据发送到D5渲染器中进行渲染。
本发明进一步限定的技术方案是:
优选地,在S2(1)中准备数据,其具体为:将所有的顶点数据、所有的法线数据分别打包到两个大数组中,然后再上传到GPU,同时将所有的转置矩阵也需要打包起来,对于每个顶点或法线,都额外存储了一个转置数组的索引,用来获取对当前坐标进行转换的矩阵,需要将数据转换为可以被GPU处理的格式。
优选地,在S2(2)中先在CPU分配好打包的存储空间,将数据复制过去,然后再GPU分配同样大小的存储空间,调用CUDA C函数,进行数据上传。
优选地,在S2(3)中对模型进行优化,具体为:将模型的顶点和法线用转置矩阵进行变换,对于每个CUDA线程,用线程ID作为索引,从打包的顶点或法线数组里选择一个点,然后从打包的转置矩阵数组中读取这个点对应的转置,这样每个顶点的变换都是并行的,然后将材质相同的模型变换后的顶点组合到一个新的模型中,使得相同材质的模型进行合并。
本发明的有益效果是:
1.本发明基础采用了持久的连接,只要连接一次之后,用户每次更新模型之后就可以立即反映到D5渲染器中,不需要用户再选择或者多操作什么;
2.材质对应:本发明通过对ARCHICAD的所有内建材质类型进行解析,获得了良好的材质对应效果,几乎所有内建材质都可以在同步后反映出来。
3.模型优化:本发明在本地模块中对模型数据进行了优化,让相同材质的模型进行合并,不但提高了同步后的渲染速度,还使渲染效果得到了很大的改善。
附图说明
图1为实施例1整体流程图;
图2为实施例1中S1的具体流程图;
图3为实施例1中S2的具体流程图。
具体实施方式
实施例1
本实施例提供一种ARCHICAD到D5渲染器实时渲染的数据转换方法,如图1所示,通过ARCHICAD插件读取当前项目的模型信息,处理后发送给本地连接模块做进一步的优化,最后同步到D5渲染器中,其具体包括以下步骤为:
S1:如图2所示,首先产生有效的可以导出的材质与几何结构的集合,具体为:
(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)发送给本地连接模块
a.将材质、三维数据以及实例信息组织成特定的结构。
b.调用本地连接模块的接口,传递以上结构化的数据。
S2:如图3所示,本地连接模块接收模型数据,并将数据传到GPU上进行优化,其具体步骤为:
(1)准备数据:将所有的顶点数据、所有的法线数据分别打包到两个大数组中,然后再上传到GPU,同时将所有的转置矩阵也需要打包起来,对于每个顶点或法线,都额外存储了一个转置数组的索引,用来获取对当前坐标进行转换的矩阵,需要将数据转换为可以被GPU处理的格式;
(2)先在CPU分配好打包的存储空间,将数据复制过去,然后再GPU分配同样大小的存储空间,调用CUDA C函数,将数据上传到GPU;
(3)调用CUDA核,对模型进行优化,具体为:将模型的顶点和法线用转置矩阵进行变换,对于每个CUDA线程,用线程ID作为索引,从打包的顶点或法线数组里选择一个点,然后从打包的转置矩阵数组中读取这个点对应的转置,这样每个顶点的变换都是并行的,然后将材质相同的模型变换后的顶点组合到一个新的模型中,使得相同材质的模型进行合并;
(4)调用CUDA C函数,将数据从GPU数组拷贝回CPU数组中;
(5)调用Socket函数,将合并后的模型数据和材质数据转换为字符串,通过Socket将数据发送到D5渲染器中进行渲染。
除上述实施例外,本发明还可以有其他实施方式。凡采用等同替换或等效变换形成的技术方案,均落在本发明要求的保护范围。

Claims (4)

1.一种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)发送给本地连接模块
a.将材质、三维数据以及实例信息组织成特定的结构;
b.调用本地连接模块的接口,传递以上结构化的数据;
S2:本地连接模块接收模型数据,并将数据传到GPU上进行优化,其具体步骤为:
(1)准备数据:需要将数据转换为可以被GPU处理的格式;
(2)调用CUDA C函数,将数据上传到GPU;
(3)调用CUDA核,对模型进行优化;
(4)调用CUDA C函数,将数据从GPU数组拷贝回CPU数组中;
(5)调用Socket函数,将合并后的模型数据和材质数据转换为字符串,通过Socket将数据发送到D5渲染器中进行渲染。
2.根据权利要求1所述的ARCHICAD到D5渲染器实时渲染的数据转换方法,其特征在于,在S2(1)中准备数据,其具体为:将所有的顶点数据、所有的法线数据分别打包到两个大数组中,然后再上传到GPU,同时将所有的转置矩阵也需要打包起来,对于每个顶点或法线,都额外存储了一个转置数组的索引,用来获取对当前坐标进行转换的矩阵,需要将数据转换为可以被GPU处理的格式。
3.根据权利要求1所述的ARCHICAD到D5渲染器实时渲染的数据转换方法,其特征在于,在S2(2)中先在CPU分配好打包的存储空间,将数据复制过去,然后再GPU分配同样大小的存储空间,调用CUDA C函数,进行数据上传。
4.根据权利要求1所述的ARCHICAD到D5渲染器实时渲染的数据转换方法,其特征在于,在S2(3)中对模型进行优化,具体为:将模型的顶点和法线用转置矩阵进行变换,对于每个CUDA线程,用线程ID作为索引,从打包的顶点或法线数组里选择一个点,然后从打包的转置矩阵数组中读取这个点对应的转置,这样每个顶点的变换都是并行的,然后将材质相同的模型变换后的顶点组合到一个新的模型中,使得相同材质的模型进行合并。
CN202011148402.8A 2020-10-23 2020-10-23 一种archicad到d5渲染器实时渲染的数据转换方法 Active CN112258613B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011148402.8A CN112258613B (zh) 2020-10-23 2020-10-23 一种archicad到d5渲染器实时渲染的数据转换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011148402.8A CN112258613B (zh) 2020-10-23 2020-10-23 一种archicad到d5渲染器实时渲染的数据转换方法

Publications (2)

Publication Number Publication Date
CN112258613A true CN112258613A (zh) 2021-01-22
CN112258613B CN112258613B (zh) 2023-11-03

Family

ID=74261919

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011148402.8A Active CN112258613B (zh) 2020-10-23 2020-10-23 一种archicad到d5渲染器实时渲染的数据转换方法

Country Status (1)

Country Link
CN (1) CN112258613B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101295408A (zh) * 2007-04-27 2008-10-29 新奥特硅谷视频技术有限责任公司 一种3d图文渲染方法和渲染系统
US20100013842A1 (en) * 2008-07-16 2010-01-21 Google Inc. Web-based graphics rendering system
CN103927395A (zh) * 2014-05-05 2014-07-16 曾志明 结构简化图像三维几何及材质纹理的数据结构及渲染方法
CN107590862A (zh) * 2017-09-14 2018-01-16 深圳市彬讯科技有限公司 一种定向快速渲染三维模型的系统
CN107622519A (zh) * 2017-09-15 2018-01-23 东南大学 基于移动设备的三维模型混合渲染系统及其方法
CN111340923A (zh) * 2020-02-23 2020-06-26 广东明星创意动画有限公司 一种快速arnold分层渲染设置方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101295408A (zh) * 2007-04-27 2008-10-29 新奥特硅谷视频技术有限责任公司 一种3d图文渲染方法和渲染系统
US20100013842A1 (en) * 2008-07-16 2010-01-21 Google Inc. Web-based graphics rendering system
CN103927395A (zh) * 2014-05-05 2014-07-16 曾志明 结构简化图像三维几何及材质纹理的数据结构及渲染方法
CN107590862A (zh) * 2017-09-14 2018-01-16 深圳市彬讯科技有限公司 一种定向快速渲染三维模型的系统
CN107622519A (zh) * 2017-09-15 2018-01-23 东南大学 基于移动设备的三维模型混合渲染系统及其方法
CN111340923A (zh) * 2020-02-23 2020-06-26 广东明星创意动画有限公司 一种快速arnold分层渲染设置方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
黄明;张建广;付昕乐;杨芳;郭明;: "基于图像处理单元的古建筑构件快速绘制", 测绘科学, no. 05 *

Also Published As

Publication number Publication date
CN112258613B (zh) 2023-11-03

Similar Documents

Publication Publication Date Title
CN104637089B (zh) 三维模型数据处理方法和装置
CN111402390A (zh) 模型渲染方法、装置、设备及存储介质
CN100481890C (zh) 图像特效设备、图形处理器和记录方法
CN103606184B (zh) 一种基于二维和三维一体化矢量渲染引擎的装置
KR960025239A (ko) 텍스쳐맵핑장치 및 방법
CN104484852A (zh) 一种点云曲面的复合几何图像表示方法
CN110516015B (zh) 基于地图图形数据和dlg制作地理pdf地图的方法
CN112365598B (zh) 倾斜摄影数据转换三维数据的方法、装置及终端
CN113628331B (zh) 一种虚幻引擎中摄影测量模型的数据组织和调度方法
US8928661B2 (en) Representing a field over a triangular mesh
CN113112581A (zh) 三维模型的纹理贴图生成方法、装置、设备及存储介质
CN115937456B (zh) 一种实景三维模型顶层重建方法及重建系统
TWI238979B (en) Rendering processing method
CN113592711B (zh) 点云数据不均匀的三维重建方法、系统、设备及存储介质
CN116385672A (zh) 一种三维地形场景模型数据产品的构建方法
CN112258616B (zh) 一种SketchUp到D5渲染器实时渲染的数据转换方法
CN106887032B (zh) 三维场景渲染方法和系统以及相关设备
CN112258613B (zh) 一种archicad到d5渲染器实时渲染的数据转换方法
CN112258615B (zh) 一种Revit到D5渲染器实时渲染的数据转换方法
CN112995758B (zh) 点云数据的编码方法、解码方法、存储介质及设备
KR102328061B1 (ko) 볼륨메트릭 비디오 생성 장치 및 방법
CN105550986B (zh) 一种基于多镜头多传感器的图像映射变换方法和装置
CN113240786B (zh) 一种视频点云渲染方法、装置、电子设备及存储介质
US6563507B1 (en) Storage circuit control device and graphic computation device
CN116883575B (zh) 建筑群渲染方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant