CN112258616A - 一种SketchUp到D5渲染器实时渲染的数据转换方法 - Google Patents

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

Info

Publication number
CN112258616A
CN112258616A CN202011150024.7A CN202011150024A CN112258616A CN 112258616 A CN112258616 A CN 112258616A CN 202011150024 A CN202011150024 A CN 202011150024A CN 112258616 A CN112258616 A CN 112258616A
Authority
CN
China
Prior art keywords
data
model
sketchup
renderer
information
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
CN202011150024.7A
Other languages
English (en)
Other versions
CN112258616B (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 CN202011150024.7A priority Critical patent/CN112258616B/zh
Publication of CN112258616A publication Critical patent/CN112258616A/zh
Application granted granted Critical
Publication of CN112258616B publication Critical patent/CN112258616B/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)
  • Processing Or Creating Images (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

一种SketchUp到D5渲染器实时渲染的数据转换方法
技术领域
本发明涉及3D数据转换,尤其涉及一种SketchUp到D5渲染器实时渲染的数据转换方法。
背景技术
TwinMotion一款专为建筑需求而设计的工具集该技术是将SketchUp项目同步到UnrealEngine中的一个插件,用户可以将SketchUp项目中的模型导入到UnrealEngine中进行实时可视化。主要原理是对SketchUp的数据结构进行遍历并转换到UnrealEngine可识别的格式,其缺点有:
1.Socket连接:TwinMotion采用短连接,每次更新后必须重新连接;
2.导出速度:TwinMotion的导出速度相对较慢;
3.材质对应:TwinMotion导出的材质存在不能跟SketchUp中的材质一一对应的情况;
4.模型:TwinMotion未对SketchUp产生的模型数据进行优化,在某些情形下会影响渲染效果。
发明内容
本发明所要解决的技术问题是,针对以上现有技术存在的缺点,提供一种SketchUp到D5渲染器实时渲染的数据转换方法。
本发明解决以上技术问题的技术方案是:一种SketchUp到D5渲染器实时渲染的数据转换方法,通过SketchUp插件读取当前项目的模型信息,处理后发送给Native连接模块做进一步的优化,最后同步到D5渲染器中,其具体包括以下步骤为:
S1:首先通过Mesh筛选和生成过程,产生有效的可以导出的Mesh集合,具体为:
(1)筛选有效模型
SketchUp中的ruby自带了一种ruby的libffi包装器Fiddle,在SketchUp插件的ruby脚本中,实现fiddle可以调用dll中的c语言方法连接到native模块实现导出,而在SketchUp中的ruby api中则提供了SketchUp.active_model接口,整个模型的整个mesh数据都包含在这个model中,对这个model中的entities进行遍历,最终目的是遍历到模型中的所有face,以face作为最小单位进行mesh的处理,在该插件需要处理的entity主要有三种:face,group,componentInstance.,遍历到face就取到face中的mesh,并调用dll方法进行数据传递,若是遇到isHidden为true的face则跳过不进行处理;遍历到group就对group.entities进行如上的遍历直到最底层的face为止;遍历到componentInstance也相应的对definition.entities进行遍历;
(2)Mesh生成:模型材质抽取和模型三维数据抽取
a.在Face接口的PolygonMesh函数中,SketchUp会提供计算好的模型顶点、贴图坐标以及法线数据等,然后SketchUp会将这些数据转换为Native模块可以识别的格式,并调用函数将数据发送过去;
b.材质抽取由专门的SketchUp.active_model.materials实现,SketchUp中的材质信息全岛存储在这个array里,不同的材质会有不同的唯一标识符和名称,我们在传递材质数据的时候主要是以材质名称作为关键字,对于有材质贴图的材质会把图片导出到指定的文件夹中,对于每一种material都会读取颜色,反射率,贴图等各种信息,然后把这些信息组合到XML中并发送给Native模块;
c.将上述a和b中数据及信息转换成D5渲染器内部可以处理的格式之后,发送到Native连接模块进行下一步处理,,同时在SketchUp里面模型材质数据的导出过程开始之前,先测试跟D5渲染器的连接,没有问题后所有数据发送到Native模块,之后调用相应的函数将发送的数据通过Socket发送到渲染器中,若出现连接问题,出现错误提示,提示用户当前状态,用户根据返回的错误码,并且用户需要根据错误提示采取的下一步操作,直至与D5渲染器连接正常;
S2:Native连接模块接收模型数据,并将数据传到GPU上进行优化,其具体步骤为:
(1)准备数据:需要将数据转换为可以被GPU处理的格式;
(2)调用CUDA C函数,将数据上传到GPU;
(3)调用CUDA核,对模型进行优化;
(4)调用CUDA C函数,将数据从GPU数组拷贝回CPU数组中;
(5)调用Socket函数,将合并后的模型数据和材质数据转换为字符串,通过Socket将数据发送到D5渲染器中进行渲染。
本发明进一步限定技术方案:
前述的在S2(1)中准备数据,其具体为:将所有的顶点数据、所有的法线数据分别打包到两个大数组中,然后再上传到GPU,同时将所有的Transform矩阵也需要打包起来,对于每个顶点或法线,都额外存储了一个Transform数组的索引,用来获取对当前坐标进行转换的矩阵,需要将数据转换为可以被GPU处理的格式。
前述的在S2(2)中先在CPU分配好打包的存储空间,将数据复制过去,然后再GPU分配同样大小的存储空间,调用CUDA C函数,进行数据上传。
前述的在S2(3)中对模型进行优化,具体为:将模型的顶点和法线用Transform矩阵进行变换,对于每个CUDA线程,用线程ID作为索引,从打包的顶点或法线数组里选择一个点,然后从打包的Transform矩阵数组中读取这个点对应的Transform,这样每个顶点的变换都是并行的,然后将材质相同的模型变换后的顶点组合到一个新的模型中,使得相同材质的模型进行合并。
本发明的有益效果是:
1.本发明基础采用了持久的连接,只要连接一次之后,用户每次更新模型之后就可以立即反映到D5渲染器中,不需要用户再选择或者多操作什么;
2.材质对应:本发明通过对SketchUp的所有内建材质类型进行解析,获得了良好的材质对应效果,几乎所有内建材质都可以在同步后反映出来。
3.模型优化:本发明在Native模块中对模型数据进行了优化,让相同材质的模型进行合并,不但提高了同步后的渲染速度,还使渲染效果得到了很大的改善。
4.导出类型筛选:本发明实现了用户对导出模型类别的筛选,例如用户可以只导出窗户或者屋顶。
附图说明
图1为实施例1整体流程图;
图2为实施例1中S1的具体流程图;
图3为实施例1中S2的具体流程图。
具体实施方式
实施例1
本实施例提供一种SketchUp到D5渲染器实时渲染的数据转换方法,如图1所示,通过SketchUp插件读取当前项目的模型信息,处理后发送给Native连接模块做进一步的优化,最后同步到D5渲染器中,其具体包括以下步骤为:
S1:如图2所示,首先通过Mesh筛选和生成过程,产生有效的可以导出的Mesh集合,具体为:
(1)筛选有效模型
SketchUp中的ruby自带了一种ruby的libffi包装器Fiddle,在SketchUp插件的ruby脚本中,实现fiddle可以调用dll中的c语言方法连接到native模块实现导出,而在SketchUp中的ruby api中则提供了SketchUp.active_model接口,整个模型的整个mesh数据都包含在这个model中,对这个model中的entities进行遍历,最终目的是遍历到模型中的所有face,以face作为最小单位进行mesh的处理,在该插件需要处理的entity主要有三种:face,group,componentInstance.,遍历到face就取到face中的mesh,并调用dll方法进行数据传递,若是遇到isHidden为true的face则跳过不进行处理;遍历到group就对group.entities进行如上的遍历直到最底层的face为止;遍历到componentInstance也相应的对definition.entities进行遍历;
(2)Mesh生成:模型材质抽取和模型三维数据抽取
a.在Face接口的PolygonMesh函数中,SketchUp会提供计算好的模型顶点、贴图坐标以及法线数据等,然后SketchUp会将这些数据转换为Native模块可以识别的格式,并调用函数将数据发送过去;
b.材质抽取由专门的SketchUp.active_model.materials实现,SketchUp中的材质信息全岛存储在这个array里,不同的材质会有不同的唯一标识符和名称,我们在传递材质数据的时候主要是以材质名称作为关键字,对于有材质贴图的材质会把图片导出到指定的文件夹中,对于每一种material都会读取颜色,反射率,贴图等各种信息,然后把这些信息组合到XML中并发送给Native模块;
c.将上述a和b中数据及信息转换成D5渲染器内部可以处理的格式之后,发送到Native连接模块进行下一步处理,,同时在SketchUp里面模型材质数据的导出过程开始之前,先测试跟D5渲染器的连接,没有问题后所有数据发送到Native模块,之后调用相应的函数将发送的数据通过Socket发送到渲染器中,若出现连接问题,出现错误提示,提示用户当前状态,用户根据返回的错误码,并且用户需要根据错误提示采取的下一步操作,直至与D5渲染器连接正常;
S2:如图3所示,Native连接模块接收模型数据,并将数据传到GPU上进行优化,其具体步骤为:
(1)准备数据:将所有的顶点数据、所有的法线数据分别打包到两个大数组中,然后再上传到GPU,同时将所有的Transform矩阵也需要打包起来,对于每个顶点或法线,都额外存储了一个Transform数组的索引,用来获取对当前坐标进行转换的矩阵,需要将数据转换为可以被GPU处理的格式;
(2)先在CPU分配好打包的存储空间,将数据复制过去,然后再GPU分配同样大小的存储空间,调用CUDA C函数,将数据上传到GPU;
(3)调用CUDA核,对模型进行优化,具体为:将模型的顶点和法线用Transform矩阵进行变换,对于每个CUDA线程,用线程ID作为索引,从打包的顶点或法线数组里选择一个点,然后从打包的Transform矩阵数组中读取这个点对应的Transform,这样每个顶点的变换都是并行的,然后将材质相同的模型变换后的顶点组合到一个新的模型中,使得相同材质的模型进行合并;
(4)调用CUDA C函数,将数据从GPU数组拷贝回CPU数组中;
(5)调用Socket函数,将合并后的模型数据和材质数据转换为字符串,通过Socket将数据发送到D5渲染器中进行渲染。
除上述实施例外,本发明还可以有其他实施方式。凡采用等同替换或等效变换形成的技术方案,均落在本发明要求的保护范围。

Claims (4)

1.一种SketchUp到D5渲染器实时渲染的数据转换方法,其特征在于:通过SketchUp插件读取当前项目的模型信息,处理后发送给Native连接模块做进一步的优化,最后同步到D5渲染器中,其具体包括以下步骤为:
S1:首先通过Mesh筛选和生成过程,产生有效的可以导出的Mesh集合,具体为:
(1)筛选有效模型
SketchUp中的ruby自带了一种ruby的libffi包装器Fiddle,在SketchUp插件的ruby脚本中,实现fiddle可以调用dll中的c语言方法连接到native模块实现导出,而在SketchUp中的ruby api中则提供了SketchUp.active_model接口,整个模型的整个mesh数据都包含在这个model中,对这个model中的entities进行遍历,最终目的是遍历到模型中的所有face,以face作为最小单位进行mesh的处理,在该插件需要处理的entity主要有三种:face,group,componentInstance.,遍历到face就取到face中的mesh,并调用dll方法进行数据传递,若是遇到isHidden为true的face则跳过不进行处理;遍历到group就对group.entities进行如上的遍历直到最底层的face为止;遍历到componentInstance也相应的对definition.entities进行遍历;
(2)Mesh生成:模型材质抽取和模型三维数据抽取
a.在Face接口的PolygonMesh函数中,SketchUp会提供计算好的模型顶点、贴图坐标以及法线数据等,然后SketchUp会将这些数据转换为Native模块可以识别的格式,并调用函数将数据发送过去;
b.材质抽取由专门的SketchUp.active_model.materials实现,SketchUp中的材质信息全岛存储在这个array里,不同的材质会有不同的唯一标识符和名称,我们在传递材质数据的时候主要是以材质名称作为关键字,对于有材质贴图的材质会把图片导出到指定的文件夹中,对于每一种material都会读取颜色,反射率,贴图等各种信息,然后把这些信息组合到XML中并发送给Native模块;
c.将上述a和b中数据及信息转换成D5渲染器内部可以处理的格式之后,发送到Native连接模块进行下一步处理,,同时在SketchUp里面模型材质数据的导出过程开始之前,先测试跟D5渲染器的连接,没有问题后所有数据发送到Native模块,之后调用相应的函数将发送的数据通过Socket发送到渲染器中,若出现连接问题,出现错误提示,提示用户当前状态,用户根据返回的错误码,并且用户需要根据错误提示采取的下一步操作,直至与D5渲染器连接正常;
S2:Native连接模块接收模型数据,并将数据传到GPU上进行优化,其具体步骤为:
(1)准备数据:需要将数据转换为可以被GPU处理的格式;
(2)调用CUDA C函数,将数据上传到GPU;
(3)调用CUDA核,对模型进行优化;
(4)调用CUDA C函数,将数据从GPU数组拷贝回CPU数组中;
(5)调用Socket函数,将合并后的模型数据和材质数据转换为字符串,通过Socket将数据发送到D5渲染器中进行渲染。
2.根据权利要求1所述的SketchUp到D5渲染器实时渲染的数据转换方法,其特征在于,在S2(1)中准备数据,其具体为:将所有的顶点数据、所有的法线数据分别打包到两个大数组中,然后再上传到GPU,同时将所有的Transform矩阵也需要打包起来,对于每个顶点或法线,都额外存储了一个Transform数组的索引,用来获取对当前坐标进行转换的矩阵,需要将数据转换为可以被GPU处理的格式。
3.根据权利要求1所述的SketchUp到D5渲染器实时渲染的数据转换方法,其特征在于,在S2(2)中先在CPU分配好打包的存储空间,将数据复制过去,然后再GPU分配同样大小的存储空间,调用CUDA C函数,进行数据上传。
4.根据权利要求1所述的SketchUp到D5渲染器实时渲染的数据转换方法,其特征在于,在S2(3)中对模型进行优化,具体为:将模型的顶点和法线用Transform矩阵进行变换,对于每个CUDA线程,用线程ID作为索引,从打包的顶点或法线数组里选择一个点,然后从打包的Transform矩阵数组中读取这个点对应的Transform,这样每个顶点的变换都是并行的,然后将材质相同的模型变换后的顶点组合到一个新的模型中,使得相同材质的模型进行合并。
CN202011150024.7A 2020-10-23 2020-10-23 一种SketchUp到D5渲染器实时渲染的数据转换方法 Active CN112258616B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011150024.7A CN112258616B (zh) 2020-10-23 2020-10-23 一种SketchUp到D5渲染器实时渲染的数据转换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011150024.7A CN112258616B (zh) 2020-10-23 2020-10-23 一种SketchUp到D5渲染器实时渲染的数据转换方法

Publications (2)

Publication Number Publication Date
CN112258616A true CN112258616A (zh) 2021-01-22
CN112258616B CN112258616B (zh) 2023-10-03

Family

ID=74261244

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011150024.7A Active CN112258616B (zh) 2020-10-23 2020-10-23 一种SketchUp到D5渲染器实时渲染的数据转换方法

Country Status (1)

Country Link
CN (1) CN112258616B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113572846A (zh) * 2021-07-27 2021-10-29 广州引力波信息科技有限公司 一种跨平台数据交换插件系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107590862A (zh) * 2017-09-14 2018-01-16 深圳市彬讯科技有限公司 一种定向快速渲染三维模型的系统
CN107680153A (zh) * 2017-09-14 2018-02-09 深圳市彬讯科技有限公司 一种基于三维模型替换指定部位材质的渲染出图方法
CN109636893A (zh) * 2019-01-03 2019-04-16 华南理工大学 三维OBJ模型及MTL材质在iPhone中的解析与渲染方法
CN109933868A (zh) * 2019-02-27 2019-06-25 壹仟零壹艺网络科技(北京)有限公司 SketchUp模型材质贴图自动匹配方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107590862A (zh) * 2017-09-14 2018-01-16 深圳市彬讯科技有限公司 一种定向快速渲染三维模型的系统
CN107680153A (zh) * 2017-09-14 2018-02-09 深圳市彬讯科技有限公司 一种基于三维模型替换指定部位材质的渲染出图方法
CN109636893A (zh) * 2019-01-03 2019-04-16 华南理工大学 三维OBJ模型及MTL材质在iPhone中的解析与渲染方法
CN109933868A (zh) * 2019-02-27 2019-06-25 壹仟零壹艺网络科技(北京)有限公司 SketchUp模型材质贴图自动匹配方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113572846A (zh) * 2021-07-27 2021-10-29 广州引力波信息科技有限公司 一种跨平台数据交换插件系统

Also Published As

Publication number Publication date
CN112258616B (zh) 2023-10-03

Similar Documents

Publication Publication Date Title
CN104637089B (zh) 三维模型数据处理方法和装置
CN111402390A (zh) 模型渲染方法、装置、设备及存储介质
CN110751696A (zh) 将BIM模型数据转化为glTF数据的方法、装置、设备及介质
CN112989482B (zh) Bim模型数据的生成方法及装置和构建方法及装置
KR20030073424A (ko) 렌더링시스템, 렌더링방법 및 그 기록매체
CN112365598B (zh) 倾斜摄影数据转换三维数据的方法、装置及终端
CN111666114B (zh) 一种插件式测井数据转换方法
CN109615707A (zh) 一种三维模型处理方法、装置、计算机设备和存储介质
CN115618653B (zh) 用于cae软件的仿真计算结果的后处理的方法、服务器和程序产品
US20220375186A1 (en) Method and apparatus for generating bounding box, device and storage medium
CN107958209B (zh) 一种违建识别方法、系统及电子设备
CN112258616B (zh) 一种SketchUp到D5渲染器实时渲染的数据转换方法
CN112258615B (zh) 一种Revit到D5渲染器实时渲染的数据转换方法
KR102346090B1 (ko) 체적 3d 비디오 데이터의 실시간 혼합 현실 서비스를 위해 증강 현실 원격 렌더링 방법
CN112258613B (zh) 一种archicad到d5渲染器实时渲染的数据转换方法
CN114004908B (zh) 一种简化dwg二维工程图纸实现方法
CN114581610A (zh) 一种针对Autodesk 3Ds Max三维模型坐标转换的方法
WO2021123346A1 (en) 3d rendering
CN111583374A (zh) 一种渲染代理文件的制作方法
US11960828B2 (en) Method and apparatus for mapping processing
CN117392294B (zh) 一种动画文件检查修复方法、系统、电子设备及存储介质
KR20190130959A (ko) 크로마 서브 샘플링된 이미지들에 대한 빠른 참조 객체 저장 형식에 대한 방법
CN116662266B (zh) 一种面向NetCDF数据的并行读写方法及系统
CN109165459A (zh) 一种基于虚拟现实和增强现实的验证集成系统以及方法
CN116302579B (zh) 面向Web端的时空大数据高效加载渲染方法及系统

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