CN112258613A - 一种archicad到d5渲染器实时渲染的数据转换方法 - Google Patents
一种archicad到d5渲染器实时渲染的数据转换方法 Download PDFInfo
- 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
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 17
- 238000000034 method Methods 0.000 title claims abstract description 15
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 9
- 238000005457 optimization Methods 0.000 claims abstract description 8
- 238000012545 processing Methods 0.000 claims abstract description 3
- 239000000463 material Substances 0.000 claims description 41
- 239000011159 matrix material Substances 0.000 claims description 15
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 claims description 14
- 230000006870 function Effects 0.000 claims description 11
- 230000009466 transformation Effects 0.000 claims description 9
- 230000017105 transposition Effects 0.000 claims description 9
- 238000003491 array Methods 0.000 claims description 4
- 230000000875 corresponding effect Effects 0.000 description 7
- 238000013507 mapping Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [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
技术领域
本发明涉及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作为索引,从打包的顶点或法线数组里选择一个点,然后从打包的转置矩阵数组中读取这个点对应的转置,这样每个顶点的变换都是并行的,然后将材质相同的模型变换后的顶点组合到一个新的模型中,使得相同材质的模型进行合并。
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)
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分层渲染设置方法 |
-
2020
- 2020-10-23 CN CN202011148402.8A patent/CN112258613B/zh active Active
Patent Citations (6)
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)
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 |