掌桥专利:专业的专利平台
掌桥专利
首页

基于C++开发和物理材质的高性能跨平台三维渲染引擎

文献发布时间:2024-04-18 19:58:30


基于C++开发和物理材质的高性能跨平台三维渲染引擎

技术领域

本发明涉及计算机网络和图形图像处理技术领域,具体涉及一种基于C++开发和物理材质的高性能跨平台三维渲染引擎。

背景技术

通常要实现跨平台的三维渲染引擎,具有如下两种实现方式:

1、行业普遍使用的JavaScript+WebGL的技术解决方案:使用JavaScript作为编程语言,用WebGL作为底层渲染API(Application Programming Interface,应用程序编程接口,是一些预先定义的函数,用于提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码或理解内部工作机制的细节),并运行在网页浏览器环境中,例如桌面端、移动端和其它嵌入式操作系统都属于运行在网页浏览器环境中。然而,该方案存在如下技术缺陷:

(1)浏览器的单页面运行的最大内存限制在4G,无法突破;

(2)JavaScript的运行效率低下,很难实现大数据量的加载和渲染,无法满足真正的高性能三维渲染的需求;

(3)如果要实现PBR物理材质的渲染,必须使用最新的高级图形渲染API(API通常是以Http的形式提供),而WebGL无法提供进而无法使用这些最新的高级图形渲染API。

PBR物理材质的渲染就是基于物理的材质渲染。物理材质意味着表面接近光线在真实世界的表现方式,而不是直观以为的应有方式。相较于完全依赖美术师直觉来设置参数的着色工作流程,遵守PBR原则渲染的材质更准确,并且通常看起来更自然。

PBR物理材质的渲染方程(Render Equation)及渲染方程参数的参数释义如图1所示。

PBR物理材质的渲染对应的反射等式(Reflectance Equation)由PBR物理材质的渲染方程去掉自发光项获得,如下为反射率方程:

式中,ω

Cook-Torrance反射率方程如式(2)所示:

式(2)的文字描述:

如图2所示为基于微平面模型(Be based on the microfacet surface model)。其中,左侧,光滑表面的微平面的法线变化较小,反射光线的方向变化也更小;右侧,粗糙表面的微平面的法线变化较大,反射光线的方向变化也更大。

PBR物理材质的渲染所使用的微平面近似法应用如下形式的能量守恒(EnergyConservation):出射光线的能量永远不能超过入射光线的能量(发光面除外)。为了遵守能量守恒定律,需要对漫反射光Diffuse和镜面反射光Specular之间做出明确的区分。

一束光照到材质表面上,通常会分成反射(reflection)部分和折射(refraction)部分。

对于反射部分,直接将其视为镜面反射(specular),也就是说如果模型足够粗糙,表现出来的效果和在物理学中的“漫反射现象”是一样的;

而对于折射部分,其中第一部分光线被完全吸收而不会散开,而第二部分则在跟物体微粒发生若干次碰撞之后发射出表面,漫反射光Diffuse部分全部由第二部分构成,这部分光也被称为次表面散射光(subsurface-scattered light)。

如图3所示为次表面散射原理图,图3左侧,次表面散射的光线会从不同于入射点的位置射出。如果这些距离值小于需要被着手的像素大小,那么渲染就可以完全在局部完成(图3右侧);否则,就需要使用次表面散射渲染技术。

通常情况下,PBR会简化折射光,即如图3右侧所示,将第二部分折射光线所射出的位置全部设置为和射入的位置相同,即只需考虑在一个像素内的情况。而有一些被称为次表面散射(Subsurface Scattering)技术的着色器技术将次表面散射光会从不同于入射点的位置从物体内部再次射出这个问题予以考虑和处理,如图3左侧所示,它们显著的提升了一些诸如皮肤,大理石或者蜡质这样材质的视觉效果,不过伴随而来的则是性能下降代价。

渲染引擎使用基于物理的BRDF。

BRDF定量描述了物体表面一点是如何和光进行交互的。大多数情况下,BRDF可以用f(l,v)来表示,其中l为入射方向,v为观察方向(双向的含义)。

如果绕法线旋转入射方向,所有出射方向上的反射和散射光线的相对分布情况仍然不变(即BRDF函数f的值不变),就称为各项同性(isotropic)的BRDF。与之对应的则是各向异性(anisotropic)的BRDF。

由此可见,物理材质(PBR)是基于物理的渲染过程,是一套着色和渲染技术,更精确的描述光是如何与物体表面进行交互。PBR“基于物理”,是对现实的一种模拟仿真近似,所以渲染结果比较真实。要实现物理材质的渲染,使用JavaScript程序语言的渲染引擎只能使用WebGL作为底层渲染API,由于WebGL是很低的OpenGL标准,很多高级API并不支持,所以很难实现标准的物理材质效果。

2、第二种实现方法:在Windows环境下,使用C++程序语言作为编程语言,并使用D3D作为底层渲染API。这种方式可以满足大数据量的加载和渲染,运行效率也很高,也能充分利用硬件资源进行高性能渲染,但是由于D3D只能运行在Windows环境下,不能运行在Linux、Android、网页浏览器中,所以无法实现真正的跨平台高性能三维渲染。

发明内容

为了克服现有技术中这部分的缺失及不足,提供一种基于C++语言开发和物理材质的高性能跨平台三维渲染引擎,该三维渲染引擎使用C++程序语言,并使用OpenGL作为渲染底层API的渲染系统,在跨平台和实现物理材质方面有很大的优势;同时由于C++程序的运行效率很高,能满足大数据量下的高性能三维渲染的需求。使用C++和OpenGL的技术解决方案,可以有效的解决跨平台、高性能、物理材质渲染这三个问题。该方案的实现原理在于:

(1)要实现跨平台高性能的三维渲染效果,必须使用C++程序语言作为编程语言。因为C++程序语言在所有平台上都有编译器,包括网页浏览器,可以实现“一次编程,多平台编译”的特性。

(2)三维渲染引擎必须使用OpenGL作为底层渲染API,OpenGL是最早的图形标准,是工业图形领域唯一的全球标准。其它WebGL,D3D,Vulkan,Metal等图形API只支持特定的操作系统,无法实现跨平台的特性。

本发明的第一方面在于提供一种基于C++语言开发和物理材质的高性能跨平台三维渲染引擎,包括:

基于C++程序语言开发的底层库和跨平台SDK接口;所述底层库设置有C++标准库、C++Boost库;作为核心框架以及应用模块的底层库和跨平台SDK接口全部使用C++语言开发;

硬件设备,包括操作系统以及X86架构或ARM架构的硬件;以及

基于OpenGL形成渲染底层API的渲染系统。

优选的,所述跨平台SDK接口包括原生C++编译接口,Wasm编译接口,Js混合开发接口,原生桌面二次开发SDK接口,原生移动二次开发SDK接口以及Web二次开发SDK接口。

优选的,所述操作系统设置在底层操作系统层,设置有Windows、Linux、Android、iOS中的至少一种操作系统,所述底层操作系统层还设有支持Windows、Linux、Android、iOS操作系统的软件接口,应用于台式电脑、平板电脑和智能手机。

优选的,所述基于OpenGL形成渲染底层API的渲染系统包括:

内核系统,用于实施跨平台渲染内核的全部功能,包括引擎初始化、断言处理、单元测试、内存分配、解码压缩库、本地化服务、数据解析、状态收集、引擎配置、字符和哈希处理、3D数据库以及对象化处理,所述内核系统内设置OpenGL接口;

渲染引擎主体结构,包括资源管理模块、底层渲染模块和可视化效果模块;其中,所述资源管理模块用于多种资源的管理,所述多种资源包括三维模型资源、纹理资源、材质资源、字体资源、骨架资源、地图资源以及要素资源;所述底层渲染模块用于实施底层渲染,包括材质渲染器、各类着色器、动静态光源、摄像机和视点、纹理和表面渲染器、文字和字体渲染器以及图元提交器;所述可视化效果模块用于实施多种可视化效果的渲染,所述多种可视化效果包括实时动态光照、关键帧动画渲染、HDR渲染、任意时间天空和太阳光渲染、空间环境光遮蔽渲染、LBL光照、大量动态点光源光照、TAA、Bloom渲染、高度指数雾渲染、大气散射渲染;

数字孪生场景优化模块,用于实时场景组织和优化功能,所述场景组织和优化功能包括超大场景全空间索引组织、多尺度细节层次组织调度、复杂三维模型遮挡剔除以及多线程资源访问和调度。

优选的,所述基于C++语言开发和物理材质的高性能跨平台三维渲染引擎还包括基础构件层、开发调试工具层和客户端;所述基础构件层设置有引擎、组件库、控件库、扩展模块、通讯库和核心库,所述底层操作系统层用于调用基础构件层中的组件库、控件库、扩展模块、核心库进行编译,以形成输出结果,并与所述渲染引擎通讯后将渲染结果由开发调试工具层调试后输出到客户端;所述扩展模块设置有Ext扩展、Windows扩展DirectX、Linux扩展OpenGL、Android扩展OpenGLES、iOS扩展Metal中的至少一种;所述开发调试工具层设置有Visual Studio、Android Studio、XCode中的至少一种;所述客户端设置有PC、Linux、iOS、Android中的至少一种。

优选的,所述基于C++语言开发和物理材质的高性能跨平台三维渲染引擎还包括硬件的平台检测模块,用于在系统内部针对不同平台的OpenGL渲染标准进行算法配置,所述算法配置的标准为低配置的环境使用简化的算法,以保证系统能流畅运行。

优选的,所述基于C++语言开发和物理材质的高性能跨平台三维渲染引擎基于多线程运行框架以实现不同平台下线程的创建、使用和管理的,还包括线程池模块,所述线程池模块中包括多个线程池,用于提供多个任务并发方式,所述任务并发方式包括:调用者传入一组可并行的任务和分组的策略,基于所述策略使用线程池的若干线程并发地执行任务;所述多个线程池用于实现三维渲染引擎内部的多个线程,所述多个线程包括GUI线程,渲染线程和数据加载线程;其中,

所述GUI线程是所述三维渲染引擎的主线程,所有的引擎对象都是在所述GUI线程下创建、更新和销毁;同时所述GUI线程内部有事件循环机制,管理整个渲染系统的运行,每一帧渲染的发起和帧率统计;引擎对象的创建和数据更新必须放在主线程更新完成后,主线程会将数据同步到所述渲染线程,同步任务在每一帧渲染前发生,以保证渲染结果及时同步;所述GUI线程还用于数据加载任务完成后的处理工作,比如创建渲染顶点数据和纹理数据;所述GUI线程负责动态数据请求任务的发起,请求任务的负载均衡以及任务失败后的再请求发起;

所述渲染线程负责管理渲染设备相关的渲染资源的管理以及发起渲染任务;所述渲染线程与主线程相互配合,主线程创建的对象和数据作为前端资源;当前端资源同步到所述渲染线程时,所述渲染线程会创建相应的设备与所述前端资源相关的后端资源;所述渲染线程收到主线程的渲染信号后,进行场景渲染,所述场景渲染包括:对场景进行摄像机裁切、场景对象的遍历、创建渲染队列以及对每个需要渲染的对象创建渲染任务,并加入渲染队列;所述渲染资源包括:材质、各类着色器、三维模型、地图资源和要素资源。

本发明的第二方面提供一种基于C++语言开发和物理材质的高性能跨平台三维渲染引擎的使用方法,包括:

步骤S1,设置自动化打包脚本,对脚本编码进行编译,通过所述脚本将各业务功能模块整合为业务文件,对业务文件代码进行压缩得到业务层代码,加载业务层代码至业务平台;

步骤S2,对脚本编码进行编译,通过python脚本把各渲染功能模块整合到一个渲染库文件中,对渲染库文件代码进行混淆压缩得到独立的渲染层文件,加载渲染层文件至业务平台;

步骤S3,制定对接业务层和渲染层的接口协议,使业务层能够在不同平台下以相同的业务层代码逻辑运行,并使渲染层在不同平台展示同样的渲染效果,加载接口协议至业务平台;

步骤S4,启动业务平台,由业务层调用协议层的初始化画面加载接口、图像对象获取接口和图像对象添加至画面接口,将需要展示的图像发送给渲染层进行图像渲染并展示。

本发明的第三方面在于提供一种电子设备,包括处理器和存储器,所述存储器存储有多条指令,所述处理器用于读取所述指令并执行如第二方面所述的方法。

本发明的第四方面在于提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述多条指令可被处理器读取并执行如第二方面所述的方法。

本发明的有益效果:

1、能够多平台编译。在Windows、Linux、信创操作系统等桌面端,使用GCC编译器进行编译。在Android端采用Clang编译器进行编译。在Web端采用Webassembly编译器进行编译,这样可以保证在所有平台上保持高效率高性能和渲染效果一致性。

2、实现了国产化,100%国产自主可控;

3、实现了跨平台,不同的终端可以按需适配,统一开发语言,一次编程,多端编译;

4、可集成最新的图形渲染技术,达到高仿真渲染的效果;

5、聚生态,三维渲染技术自控可控,可集成所有开放的数据服务。

根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。

附图说明

后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。本发明的目标及特征考虑到如下结合附图的描述将更加明显,附图中:

图1为根据本发明实施例的PBR物理材质的渲染方程(Render Equation)及渲染方程参数的参数释义。

图2为根据本发明实施例的基于微平面模型(Be based on the microfacetsurface model)原理示意图。

图3为根据本发明实施例的次表面散射原理示意图。

图4为根据本发明实施例的基于C++语言开发和物理材质的高性能跨平台三维渲染引擎结构原理示意图。

图5为根据本发明实施例的电子设备示意图。

具体实施方式

为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案做详细的说明。

实施例一

如图4所示,本实施例提供一种基于C++语言开发和物理材质的高性能跨平台三维渲染引擎,包括:

1、基于C++程序语言开发的底层库和跨平台SDK接口,SDK接口为SoftwareDevelopment Kit,表示软件开发工具包,是软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合;底层库设置有C++标准库、C++Boost库,各个模块全部使用C++语言开发;作为核心框架以及应用模块的底层库和跨平台SDK接口全部使用C++语言开发,使用C++语言开发的应用程序需要编译后执行,源代码对用户不可见,编译之后的二进制代码不易被篡改和破解。资源文件加密后打包到执行文件中,运行时动态读取,保证资源文件的安全。

本实施例中,跨平台SDK接口包括原生C++编译接口,Wasm编译接口,Js混合开发接口,原生桌面二次开发SDK接口,原生移动二次开发SDK接口以及Web二次开发SDK接口。当然,本领域技术人员应当知晓,跨平台SDK接口设置为可扩展设置,可以根据需要基于C++统一开发语言扩展更多的开发SDK。

2、硬件设备,包括操作系统(本实施例中,支持市面上所有的操作系统,包括麒麟、统信、龙芯、鸿蒙、Windows、Linux以及Android)以及国产/非国产硬件(本实施例中,包括X86架构或ARM架构);

本实施例中,所述操作系统设置在底层操作系统层,设置有Windows、Linux、Android、iOS中的至少一种操作系统,所述底层操作系统层还设有支持Windows、Linux、Android、iOS操作系统的软件接口,应用于台式电脑、平板电脑和智能手机。

3、基于OpenGL形成渲染底层API的渲染系统,包括:

(1)内核系统,用于实施跨平台渲染内核的全部功能,包括但不限于引擎初始化、断言处理、单元测试、内存分配、解码压缩库、本地化服务、数据解析、状态收集、引擎配置、字符和哈希处理、3D数据库以及对象化处理,所述内核系统内设置OpenGL接口;

(2)渲染引擎主体结构,包括资源管理模块、底层渲染模块和可视化效果模块;其中,所述资源管理模块用于多种资源的管理,所述多种资源包括三维模型资源、纹理资源、材质资源、字体资源、骨架资源、地图资源以及要素资源;所述底层渲染模块用于实施底层渲染,包括材质渲染器、各类着色器、动静态光源、摄像机和视点、纹理和表面渲染器、文字和字体渲染器以及图元提交器;所述可视化效果模块用于实施多种可视化效果的渲染,所述多种可视化效果包括实时动态光照、关键帧动画渲染、HDR渲染、任意时间天空和太阳光渲染、空间环境光遮蔽渲染、LBL光照、大量动态点光源光照、TAA、Bloom渲染、高度指数雾渲染、大气散射渲染等;

(3)数字孪生场景优化模块,用于实时场景组织和优化功能,所述场景组织和优化功能包括超大场景全空间索引组织、多尺度细节层次组织调度、复杂三维模型遮挡剔除以及多线程资源访问和调度。

作为优选的实施方式,所述基于C++语言开发和物理材质的高性能跨平台三维渲染引擎还包括基础构件层、开发调试工具层和客户端;所述基础构件层设置有引擎、组件库、控件库、扩展模块、通讯库和核心库,所述底层操作系统层用于调用基础构件层中的组件库、控件库、扩展模块、核心库进行编译,以形成输出结果,并与所述渲染引擎通讯后将渲染结果由开发调试工具层调试后输出到客户端。

作为优选的实施方式,所述扩展模块设置有Ext扩展、Windows扩展DirectX、Linux扩展OpenGL、Android扩展OpenGLES、iOS扩展Metal中的至少一种。

作为优选的实施方式,所述开发调试工具层设置有Visual Studio、AndroidStudio、XCode中的至少一种。

作为优选的实施方式,所述客户端设置有PC、Linux、iOS、Android中的至少一种。

作为优选的实施方式,所述基于C++语言开发和物理材质的高性能跨平台三维渲染引擎还包括硬件的平台检测模块,用于在系统内部针对不同平台的OpenGL渲染标准进行算法配置,所述算法配置的标准为低配置的环境使用简化的算法,以保证系统能流畅运行。

作为优选的实施方式,由于所述基于C++语言开发和物理材质的高性能跨平台三维渲染引擎是基于多线程运行框架,以实现不同平台下线程的创建、使用和管理的,因此还包括线程池模块,所述线程池模块中包括多个线程池,用于提供多个任务并发方式,所述任务并发方式包括:调用者传入一组可并行的任务和分组的策略,基于所述策略使用线程池的若干线程并发地执行任务,使得调用者无需直接接触线程的调用和管理细节,降低了调用者的成本,也提升了线程的调度效率和吞吐量。创建一个线程池时,几个关键性的设计问题会影响并发效率,比如:可使用的线程数量,高效的任务分配方式,以及是否需要等待一个任务完成。

作为优选的实施方式,所述多个线程池用于实现三维渲染引擎内部的多个线程,所述多个线程包括GUI线程,渲染线程和数据加载线程;其中,

所述GUI线程是所述三维渲染引擎的主线程,所有的引擎对象都是在所述GUI线程下创建、更新和销毁;同时所述GUI线程内部有事件循环机制,管理整个渲染系统的运行,每一帧渲染的发起和帧率统计;引擎对象的创建和数据更新必须放在主线程更新完成后,主线程会将数据同步到所述渲染线程,同步任务在每一帧渲染前发生,以保证渲染结果及时同步;所述GUI线程还用于数据加载任务完成后的处理工作,比如创建渲染顶点数据和纹理数据;所述GUI线程负责动态数据请求任务的发起,请求任务的负载均衡以及任务失败后的再请求发起;

所述渲染线程负责管理渲染设备相关的渲染资源的管理以及发起渲染任务;所述渲染线程与主线程相互配合,主线程创建的对象和数据作为前端资源;当前端资源同步到所述渲染线程时,所述渲染线程会创建相应的设备与所述前端资源相关的后端资源;所述渲染线程收到主线程的渲染信号后,进行场景渲染,所述场景渲染包括:对场景进行摄像机裁切、场景对象的遍历、创建渲染队列以及对每个需要渲染的对象创建渲染任务,并加入渲染队列;所述渲染资源包括:材质、各类着色器、三维模型、地图资源和要素资源。

实施例二

本发明实施例二提供基于C++语言开发和物理材质的高性能跨平台三维渲染引擎的使用方法,包括:

步骤S1,设置自动化打包脚本,对脚本编码进行编译,通过所述脚本将各业务功能模块整合为业务文件,对业务文件代码进行压缩得到业务层代码,加载业务层代码至业务平台;

本申请实施例提供的业务平台除了主要引擎框架,还有为开发者提供了一些基于python的自动化打包和混淆的脚本。业务层代码由各功能模块组成,为了安全性和代码加载及运行的效率,编写了windows下运行的自动化打包脚本,脚本使用babel(编译器)对于各业务功能代码进行编译并统一格式化处理,然后使用python(计算机编程语言)脚本把多个模块的代码整合成一个文件,最后用uglifyjs(JS代码优化工具)对代码进行压缩。

步骤S2,对脚本编码进行编译,通过python脚本把各渲染功能模块整合到一个渲染库文件中,对渲染库文件代码进行混淆压缩得到独立的渲染层文件,加载渲染层文件至业务平台;

Web端引擎是一款基于HTML5的canvas,采用OpenGL渲染技术,使用JavaScript语言,完全自主研发的2d渲染引擎,是一套独立的渲染引擎库,配合web端的协议层,实现了业务层在PC网页端的正常运行和展示。

引擎为开发者提供了通用的基础图形图像的渲染功能。渲染层是基于OpenGL技术,多平台实现的原生渲染(移动端是Open GLES,PC网页端是web GL),从而实现业务层代码脚本跨平台运行。渲染层提供基础的图像图形渲染、音视频操作、网络操作和文件处理。每个平台的渲染层,都可以作为对应平台单独的2d渲染引擎,供开发者使用。

另外,渲染层还可以通过封装好的显示对象,实现图片、按钮等基础显示对象的显示,包括序列帧动画、live2d动画模型的支持等。

本申请将业务平台的引擎中的业务层和渲染层代码完全剥离,每层结构之间没有任何耦合性,保证了业务层代码可以实现跨平台运行,而不用关心每个平台具体的基础功能的实现方式。

步骤S3,制定对接业务层和渲染层的接口协议,使业务层能够在不同平台下以相同的业务层代码逻辑运行,并使渲染层在不同平台展示同样的渲染效果,加载接口协议至业务平台;

本申请实施例中,协议层制定了一套交互准则,保证了业务层与渲染层在互不影响的前提下,只针对数据进行交互。协议层制定的一套接口协议中,每个接口提供基础功能,这样可以使业务层能够在不同平台下,以相同的代码逻辑运行。另外对于不同的运行平台,需要按照各自的平台特性和开发模式,去对接实现每个接口的具体功能,在此不做限定。

步骤S4,启动业务平台,由业务层调用协议层的初始化画面加载接口、图像对象获取接口和图像对象添加至画面接口,将需要展示的图像发送给渲染层进行图像渲染并展示。

具体地,启动业务平台后,业务层需要使用协议层SAL_getCanvas接口初始化画面信息,然后可以通过SALSprite接口获取图像对象,再使用SAL_addElement接口将图像对象添加到画面上,这样就可以显示出一个图像了。并且这个脚本可以跨平台运行,在不同平台都显示出同样的效果。

如图5所示,本发明还提供了一种电子设备,包括处理器301和与所述处理器301连接的存储器302,所述存储器302存储有多条指令,所述指令可被所述处理器加载并执行,以使所述处理器能够执行如实施例二所述的方法。

与上述实施例对应的,本发明实施例提供一种计算机存储介质,包括:至少一个存储器和至少一个处理器;

存储器用于存储一个或多个程序指令;

处理器,用于运行一个或多个程序指令,用以执行一种互动阅读平台渲染引擎的工作方法。

与上述实施例对应的,本发明实施例提供一种计算机可读存储介质,计算机存储介质中包含一个或多个程序指令,一个或多个程序指令用于被处理器执行一种业务平台渲染引擎的工作方法。

本发明所公开的实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行上述的一种业务平台渲染引擎的工作方法。

在本发明实施例中,处理器可以是一种集成电路芯片,具有信号的处理能力。处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。处理器读取存储介质中的信息,结合其硬件完成上述方法的步骤。

存储介质可以是存储器,例如可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。

其中,非易失性存储器可以是只读存储器(Read-Only Memory,简称ROM)、可编程只读存储器(Programmable ROM,简称PROM)、可擦除可编程只读存储器(Erasable PROM,简称EPROM)、电可擦除可编程只读存储器(Electrically EPROM,简称EEPROM)或闪存。

易失性存储器可以是随机存取存储器(Random Access Memory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,简称SRAM)、动态随机存取存储器(Dynamic RAM,简称DRAM)、同步动态随机存取存储器(Synchronous DRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,简称DDRSDRAM)、增强型同步动态随机存取存储器(EnhancedSDRAM,简称ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,简称SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,简称DRRAM)。

本发明实施例描述的存储介质旨在包括但不限于这些和任意其它适合类型的存储器。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件与软件组合来实现。当应用软件时,可以将相应功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

相关技术
  • 基于图像渲染引擎和物理引擎的三维汽车驾驶模拟装置
  • 基于跨平台语言的跨平台软件开发方法及装置
技术分类

06120116502577