CN103970966B - 一种跨嵌入式平台的三维渲染引擎的构建方法 - Google Patents
一种跨嵌入式平台的三维渲染引擎的构建方法 Download PDFInfo
- Publication number
- CN103970966B CN103970966B CN201410226870.0A CN201410226870A CN103970966B CN 103970966 B CN103970966 B CN 103970966B CN 201410226870 A CN201410226870 A CN 201410226870A CN 103970966 B CN103970966 B CN 103970966B
- Authority
- CN
- China
- Prior art keywords
- submodule
- platform
- management module
- bottom hardware
- rendering engine
- 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.)
- Active
Links
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明提供了一种跨嵌入式平台的三维渲染引擎的构建方法,构建三维渲染引擎的第一层;各模块由一个以上子模块组成;对各子模块按照是否与底层硬件平台有关进行分类:对于与底层硬件平台无关的各子模块进行封装;对于与底层硬件平台有关的各子模块,定义该子模块的抽象基类;创建3D API屏蔽层作为三维渲染引擎的第二层,针对不同的底层硬件平台,将与底层硬件平台有关的子模块分别调用各底层硬件平台的3D API,分别将各子模块封装在3D API屏蔽层;创建每个底层硬件平台的插件子模块,各插件子模块调用对应的封装在3D API屏蔽层的子模块。利用本发明可以构造接入多种3D API、实现跨多种嵌入式平台的三维渲染引擎。
Description
技术领域
本发明涉及嵌入式平台三维可视化,尤其是一种跨嵌入式平台的三维渲染引擎的构建方法。
背景技术
当今,存在着多种操作系统,如Unix平台、Windows平台和用于嵌入式设备的各种实时操作系统等,每一种操作系统可能又由不同的生产商来提供。让开发出来的应用来支持多种平台或不同生产商提供的同一平台的不同版本一直是软件业面临的主要挑战之一。
目前得到广泛应用的嵌入式操作系统也有WinCE、Adroid、Vxworks、Linux和Nucleus等十几种。在嵌入式平台上开发应用软件一般是强依赖于操作系统平台,在一种操作系统平台上开发的应用软件很难直接移植应用于另一款操作系统,而是需要重新设计和编码调试,这种状况导致软件模块复用率低、管理维护难度大、软件开发周期长、并且扩展性差。随着嵌入式系统的发展、三维图形硬件加速器的广泛使用,基于嵌入式设备的三维图形应用系统发展迅速。由于三维程序的特殊性和复杂性,在一种嵌入式平台上开发的三维应用系统就更难移植到另一嵌入式平台上。
三维应用程序的设计与开发需要了解显卡特性。3D API是指显卡与应用程序之间的接口,能让编程人员不必再去了解显卡硬件的具体性能和参数,只要调用3D API内的程序,让API自动和硬件的驱动程序沟通,启动3D芯片内强大的3D图形处理功能,从而大幅度地提高了3D程序的设计效率。但是现在,在多种嵌入式平台上,存在着多种3D API,有DirectX、OpenGL、OpenGL ES、Glide、Heidi等,且3D API之间的差异性太大,即使同种3DAPI在不同平台上也存在区别,这给三维应用系统在嵌入式平台上的移植带来了直接的问题和巨大的挑战。
发明内容
本发明的主要目的在于提供一种跨嵌入式平台的三维渲染引擎的实现方法,使基于嵌入式平台开发的三维应用系统可以基于统一的代码进行开发,实现与嵌入式操作系统无关、独立于硬件平台,实现嵌入式三维应用系统可以轻松快速地移植在各种嵌入式平台上。
为达到上述目的,本发明提供了一种跨嵌入式平台的三维渲染引擎的实现方法,具体包括以下步骤:
(1)构建至少包括插件管理模块的且由一个以上模块组成的三维渲染引擎的第一层;各模块由一个以上子模块组成;
(2)对各子模块按照是否与底层硬件平台有关进行分类:对于与底层硬件平台无关的各子模块进行封装以对上层三维应用系统提供接口;对于与底层硬件平台有关的各子模块,定义该子模块的抽象基类,以对上层三维应用系统提供统一的接口;
(3)创建3D API屏蔽层作为三维渲染引擎的第二层,针对2个以上不同的底层硬件平台,将步骤(2)中与底层硬件平台有关的子模块分别调用各底层硬件平台的3D API,分别将各子模块封装在3D API屏蔽层;
(4)创建每个底层硬件平台的插件子模块构成插件管理模块,各插件子模块调用对应的步骤(3)中封装在3D API屏蔽层的子模块。
所述三维渲染引擎的第一层由数学计算模块、场景管理模块、插件管理模块、资源管理模块和渲染管理模块组成。
所述三维渲染引擎的第一层的各模块具体细分为以下子模块:所述数学计算模块细分为矩阵子模块、向量子模块和角度子模块;所述场景管理模块细分为场景管理器子模块、实体子模块、相机子模块、灯光子模块、场景节点子模块、场景环境子模块组成;所述资源管理模块细分为资源管理器子模块、模型子模块、材质子模块、GPU程序子模块和纹理对象子模块;所述渲染管理模块细分为渲染对象子模块、渲染窗口子模块、渲染系统子模块和硬件缓冲区子模块。
资源管理模块中的GPU程序子模块、纹理子模块以及渲染管理模块中的渲染窗口子模块、渲染系统子模块、硬件缓冲区子模块与底层硬件平台有关,其它子模块与底层硬件平台无关。
本发明基于其技术方案所具有的有益效果在于:
(1)本发明利用3D API屏蔽层,可以接入多种3D API,实现跨多种嵌入式平台的三维渲染引擎;
(2)本发明实现的跨嵌入式平台的三维渲染引擎可以向上层的三维应用系统提供一套统一的开发代码;
(3)在本发明实现的跨嵌入式平台三维渲染引擎之上开发的三维应用程序可以不经修改直接运行在多种嵌入式平台上。
附图说明
图1是跨嵌入式平台的三维渲染引擎的层次体系框架示意图。
具体实施方式
本发明提供了一种跨嵌入式平台的三维渲染引擎的实现方法,结合图1,具体包括以下步骤:
(1)构建三维渲染引擎的第一层,该层由模块1、模块2、模块3、模块4和插件管理模块组成;其中模块1表示数学计算模块,其中模块2表示场景管理模块、其中模块3表示资源管理模块,其中模块4表示渲染管理模块;所述数学计算模块细分为矩阵子模块、向量子模块和角度子模块;所述场景管理模块细分为场景管理器子模块、实体子模块、相机子模块、灯光子模块、场景节点子模块、场景环境子模块组成;所述资源管理模块细分为资源管理器子模块、模型子模块、材质子模块、GPU程序子模块和纹理对象子模块;所述渲染管理模块细分为渲染对象子模块、渲染窗口子模块、渲染系统子模块和硬件缓冲区子模块;
(2)对各子模块按照是否与底层硬件平台有关进行分类:资源管理模块中的GPU程序子模块、纹理子模块以及渲染管理模块中的渲染窗口子模块、渲染系统子模块、硬件缓冲区子模块与底层硬件平台有关,其它子模块与底层硬件平台无关;对于与底层硬件平台无关的各子模块进行封装以对上层三维应用系统提供接口;对于与底层硬件平台有关的各子模块,定义该子模块的抽象基类,以对上层三维应用系统提供统一的接口;
(3)创建3D API屏蔽层作为三维渲染引擎的第二层,针对2个以上不同的底层硬件平台,将步骤(2)中与底层硬件平台有关的子模块分别调用各底层硬件平台的3DAPI,分别将各子模块封装在3D API屏蔽层;
(4)创建每个底层硬件平台的插件子模块构成插件管理模块,各插件子模块调用对应的步骤(3)中封装在3D API屏蔽层的子模块。
结合图1说明其原理:嵌入式三维应用系统基于三维渲染引擎开发,三维渲染引擎基于某种3D API实现,3D API是在嵌入式平台之上的接口层。不同的嵌入式操作系统有不同的3D API,例如ios平台上的3D API是OpenGL ES,Android平台上的是Direct3D。跨平台的三维渲染引擎通过3D API屏蔽层实现基于各种3D API的有关功能模块。例如,基于OpenGL,3D API屏蔽层实现一套有关模块的功能插件M1,基于OpenGL ES,3D API屏蔽层实现一套有关模块的功能插件M2,基于Direct3D,3D API屏蔽层实现一套有关模块的功能插件M3,跨平台的三维渲染引擎通过插件管理模块可以统一管理M1、M2、M3这些插件组,因此,本发明方法实现了跨嵌入式平台。
进而,假设开发某嵌入式三维应用系统A,需实现在嵌入式平台ios上运行,ios平台上的3D API是OpenGL ES,则三维渲染引擎需基于OpenGL ES,实现有关模块功能插件M2;如再将三维应用系统A移植在嵌入式平台Android上运行,则开发三维应用系统A使用的三维渲染引擎实现有关模块功能插件M3,M2、M3是可以快速实现的,所以,基于跨平台的三维渲染引擎开发的三维应用系统,三维应用系统可以快速移植到各种嵌入式平台上。
Claims (1)
1.一种跨嵌入式平台的三维渲染引擎的构建方法,其特征在于具体包括以下步骤:
(1)构建至少包括插件管理模块的且由一个以上模块组成的三维渲染引擎的第一层;各模块由一个以上子模块组成;所述三维渲染引擎的第一层由数学计算模块、场景管理模块、插件管理模块、资源管理模块和渲染管理模块组成,资源管理模块中的GPU程序子模块、纹理子模块以及渲染管理模块中的渲染窗口子模块、渲染系统子模块、硬件缓冲区子模块与底层硬件平台有关,其它子模块与底层硬件平台无关;
(2)对各子模块按照是否与底层硬件平台有关进行分类:对于与底层硬件平台无关的各子模块进行封装以对上层三维应用系统提供接口;对于与底层硬件平台有关的各子模块,定义该子模块的抽象基类,以对上层三维应用系统提供统一的接口;
(3)创建3D API屏蔽层作为三维渲染引擎的第二层,针对2个以上不同的底层硬件平台,将步骤(2)中与底层硬件平台有关的子模块分别调用各底层硬件平台的3DAPI,分别将各子模块封装在3D API屏蔽层;
(4)创建每个底层硬件平台的插件子模块构成插件管理模块,各插件子模块调用对应的步骤(3)中封装在3D API屏蔽层的子模块;
所述数学计算模块细分为矩阵子模块、向量子模块和角度子模块;
所述场景管理模块细分为场景管理器子模块、实体子模块、相机子模块、灯光子模块、场景节点子模块、场景环境子模块组成;
所述资源管理模块细分为资源管理器子模块、模型子模块、材质子模块、GPU程序子模块和纹理对象子模块;
所述渲染管理模块细分为渲染对象子模块、渲染窗口子模块、渲染系统子模块和硬件缓冲区子模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410226870.0A CN103970966B (zh) | 2014-05-27 | 2014-05-27 | 一种跨嵌入式平台的三维渲染引擎的构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410226870.0A CN103970966B (zh) | 2014-05-27 | 2014-05-27 | 一种跨嵌入式平台的三维渲染引擎的构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103970966A CN103970966A (zh) | 2014-08-06 |
CN103970966B true CN103970966B (zh) | 2018-01-16 |
Family
ID=51240456
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410226870.0A Active CN103970966B (zh) | 2014-05-27 | 2014-05-27 | 一种跨嵌入式平台的三维渲染引擎的构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103970966B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108572818B (zh) * | 2017-03-08 | 2021-07-23 | 斑马智行网络(香港)有限公司 | 一种用户界面渲染方法及装置 |
CN109284454B (zh) * | 2018-08-02 | 2024-06-25 | 平安科技(深圳)有限公司 | 页面渲染方法、装置、计算机设备及存储介质 |
CN109254793B (zh) * | 2018-09-20 | 2022-02-15 | Oppo广东移动通信有限公司 | 引擎隔离方法、相关设备以及计算机可读存储介质 |
CN111833429A (zh) * | 2019-04-04 | 2020-10-27 | 厦门雅基软件有限公司 | 三维游戏渲染方法、三维引擎、电子设备及可读存储介质 |
CN110865800B (zh) * | 2019-11-01 | 2021-03-09 | 浙江大学 | 一种基于引擎模块化的全平台三维重建代码处理方法 |
CN112070871B (zh) * | 2020-09-02 | 2024-01-19 | 山东天兑信息科技有限公司 | 一种跨平台三维可视化引擎构建系统、方法、终端及储存介质 |
CN114219882B (zh) * | 2021-12-07 | 2024-10-25 | 杭州美创科技股份有限公司 | 3d渲染引擎构建方法、装置、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814024A (zh) * | 2009-10-23 | 2010-08-25 | 深圳创维-Rgb电子有限公司 | 一种跨平台3d界面设计架构和工具 |
CN102508644A (zh) * | 2011-09-22 | 2012-06-20 | Tcl集团股份有限公司 | 一种3d用户界面图形引擎架构 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8832720B2 (en) * | 2012-01-05 | 2014-09-09 | Intel Corporation | Multimedia driver architecture for reusability across operating systems and hardware platforms |
-
2014
- 2014-05-27 CN CN201410226870.0A patent/CN103970966B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814024A (zh) * | 2009-10-23 | 2010-08-25 | 深圳创维-Rgb电子有限公司 | 一种跨平台3d界面设计架构和工具 |
CN102508644A (zh) * | 2011-09-22 | 2012-06-20 | Tcl集团股份有限公司 | 一种3d用户界面图形引擎架构 |
Non-Patent Citations (3)
Title |
---|
三维图形引擎设计及其光影特效的研究与实现;李琳;《中国优秀硕士学位论文全文数据库 信息科技辑》;20091115;第2009年卷(第11期);第I138-1062页第二、三章,图2-1、2-4 * |
基于OpenGL的三维引擎SR的设计与实现;王欣 等;《石油化工建设》;20080430;第30卷(第2期);第14-17、45页第1节 * |
基于引擎模式的三维巷道漫游系统架构研究;杨波 等;《工矿自动化》;20100930(第9期);第52-53页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103970966A (zh) | 2014-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103970966B (zh) | 一种跨嵌入式平台的三维渲染引擎的构建方法 | |
US11587282B2 (en) | Hybrid hierarchy of bounding and grid structures for ray tracing | |
CN106997610B (zh) | 一种图像渲染方法、装置及电子设备 | |
CN107358649B (zh) | 地形文件的处理方法和装置 | |
US20240070966A1 (en) | Methods and Graphics Processing Units for Determining Differential Data for Rays of a Ray Bundle | |
US8253730B1 (en) | System and method for construction of data structures for ray tracing using bounding hierarchies | |
CN106776012B (zh) | 一种虚拟资源的管理方法及系统 | |
CN107393013B (zh) | 虚拟漫游文件生成、显示方法、装置、介质、设备和系统 | |
US10853079B2 (en) | Dependency-based streamlined processing | |
CN105354872A (zh) | 一种基于3d网页游戏的渲染引擎、实现方法及制作工具 | |
CN105740256A (zh) | 一种三维地图的生成方法及装置 | |
WO2012093196A1 (en) | Method and system for generating a three-dimensional user-interface for an embedded device | |
CN109995814A (zh) | 云主机资源的迁移方法及装置、通信设备、存储介质 | |
CN105630483A (zh) | 一种组态图元的显示方法及装置 | |
CN113750516A (zh) | 一种在游戏引擎中实现三维gis数据加载方法、系统及设备 | |
JP2024513325A (ja) | 物理的な特殊効果のレンダリング方法及び装置、コンピュータ機器、並びに、コンピュータプログラム | |
CN103176838A (zh) | 兼容Android本机程序的方法及系统 | |
CN105005484A (zh) | 一种跨平台游戏开发工具的事件分发方法 | |
CN111078782A (zh) | 工业大数据可视化系统及方法 | |
US11625229B1 (en) | Context for components in an application | |
CN115170765A (zh) | 一种模型处理系统、方法及装置 | |
CN108021448A (zh) | 一种内核空间的优化方法及装置 | |
CN106157366A (zh) | 基于bim的超大场景在移动端的渲染优化方法及系统 | |
CN113961343B (zh) | 图集生成方法及系统 | |
CN116702255A (zh) | 基于叠加模型的挖填体积计算方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20140806 Assignee: Suzhou Mdt InfoTech Ltd Assignor: Wuhan Zhao Tu Science and Technology Ltd. Contract record no.: 2018420000013 Denomination of invention: Method for constructing three-dimensional rendering engine crossing embedded platforms Granted publication date: 20180116 License type: Exclusive License Record date: 20180529 |