CN114064187A - 一种跨渲染引擎的中间装置、数据处理方法及存储介质 - Google Patents
一种跨渲染引擎的中间装置、数据处理方法及存储介质 Download PDFInfo
- Publication number
- CN114064187A CN114064187A CN202111450506.9A CN202111450506A CN114064187A CN 114064187 A CN114064187 A CN 114064187A CN 202111450506 A CN202111450506 A CN 202111450506A CN 114064187 A CN114064187 A CN 114064187A
- Authority
- CN
- China
- Prior art keywords
- data
- rendering
- layer
- type
- chained list
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 13
- 238000009877 rendering Methods 0.000 claims abstract description 118
- 238000012545 processing Methods 0.000 claims abstract description 22
- 238000000034 method Methods 0.000 claims description 30
- 238000004891 communication Methods 0.000 claims description 21
- 239000000463 material Substances 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 8
- 230000001131 transforming effect Effects 0.000 claims 1
- 238000007796 conventional method Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 13
- 239000000872 buffer Substances 0.000 description 12
- 230000006870 function Effects 0.000 description 6
- 210000001503 joint Anatomy 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 241000737241 Cocos Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009510 drug design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000009517 secondary packaging Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/545—Gui
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请实施例提供一种跨渲染引擎的中间装置、数据处理方法及存储介质,涉及计算机技术领域。该装置包括至少一个应用层,用于接收业务层发送的待渲染数据,并将所述待渲染数据转化成项目适配的逻辑数据结构;中间层,用于将所述应用层的数据从逻辑数据结构转变为链式列表;至少一个实现层,用于根据渲染引擎的数据类型,对所述链式列表中的数据进行相应处理,并发送至所述渲染引擎进行渲染,在业务模块和渲染引擎之间建立中间接口,能够确保引擎的快速、方便地切换,解决现有方法引擎切换困难的问题。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种跨渲染引擎的中间装置、数据处理方法及存储介质。
背景技术
随着渲染技术的发展,市场上已经出现了越来越多的渲染引擎,如Unity、UE、Cocos等,每一款引擎都能够渲染出非常优秀的画面,而且各个引擎还有各自的偏重和重点。另外一方面,云引擎也在积极的发展当中,各大引擎厂商也都在积极的部署自己的云端平台。
一般会在立项初期确定使用的引擎,且具有独立的接口,当将业务从引擎A迅速的切换到引擎B的时候,大量的业务代码与引擎强耦合在一起,而没有一个明显的边界,不适合进行扩展和引擎的切换验证。
发明内容
本申请实施例的目的在于提供一种跨渲染引擎的中间装置、数据处理方法及存储介质,在业务模块和渲染引擎之间建立中间接口,能够确保引擎的快速、方便地切换,解决现有方法引擎切换困难的问题。
本申请实施例提供了一种跨渲染引擎的中间装置,所述装置包括:
至少一个应用层,用于接收业务层发送的待渲染数据,并将所述待渲染数据转化成项目适配的逻辑数据结构;
中间层,用于将所述应用层的数据从逻辑数据结构结构转变为链式列表;
至少一个实现层,用于根据渲染引擎的数据类型,对所述链式列表中的数据进行相应处理,并发送至所述渲染引擎进行渲染。
在上述实现过程中,通过设置中间装置,能够对接业务层和各个渲染引擎,可切换和快速对接各种引擎,保证了业务侧的稳定,解决现有方法引擎切换困难的问题。
进一步地,所述中间层包括:
结构,用于管理场景,所述场景包括相机和渲染对象;
资源,包括模型、材质和纹理,所述渲染对象通过引用对应的资源以生成可绘制的渲染对象。
在上述实现过程中,中间层中的结构作为负责管理场景的对象,全局唯一,渲染对象通过引用资源来形成可绘制的渲染对象。
进一步地,所述逻辑数据结构包括树形结构,所述应用层用于:
在node节点上标识三维空间中的位置信息;
在mesh节点上挂接模型,所述模型包括顶点数据、索引数据和纹理数据以及对应的数据类型。
在上述实现过程中,作为一种实施方式,可通过树形结构来组织渲染场景,通过数据的mesh节点对应的顶点数据、索引数据和纹理数据和数据类型,通过传递和分发各个数据的数据类型,可做到多引擎、多平台的分发。
进一步地,所述实现层用于:
将所述链式列表中的数据的数据类型和数据顺序进行转化和处理,以适应webgl的数据要求,并将处理后的数据发送至webgl,所述数据类型包括数组类型、Float类型和Int类型。
在上述实现过程中,实现层用于将从中间层得到的数据再次组织,根据不同引擎的特点,转化成符合这些引擎或平台的形式。
进一步地,所述实现层用于:
将所述链式列表中的数据的数据类型转化为通信协议要求的形式,并将转化后的数据通过所述通信协议发送至云端进行云渲染。
在上述实现过程中,通信协议约定了mesh数据如何传输到服务器,实现层可将数据转化成通信协议要求的形式。
本申请实施例还提供一种跨渲染引擎的数据处理方法,所述方法包括;
接收业务层发送的待渲染数据,并将所述待渲染数据转化成项目适配的逻辑数据结构;
将所述待渲染数据从逻辑数据结构转变为链式列表;
根据渲染引擎的数据类型,对所述链式列表中的数据进行相应处理,并发送至所述渲染引擎进行渲染。
在上述实现过程中,通过设置中间装置,能够对接业务层和各个渲染引擎,可切换和快速对接各种引擎,保证了业务侧的稳定,解决现有方法引擎切换困难的问题。
进一步地,所述逻辑数据结构包括树形结构,所述树形结构包括根节点、node节点和mesh节点,所述将所述待渲染数据转化成树形结构,包括:
在node节点上标识三维空间中的位置信息;
在mesh节点上挂接模型,所述模型包括顶点数据、索引数据和纹理数据以及对应的数据类型。
在上述实现过程中,作为一种实施方式,可通过树形结构来组织渲染场景,通过数据的mesh节点对应的顶点数据、索引数据和纹理数据和数据类型,通过传递和分发各个数据的数据类型,可做到多引擎、多平台的分发。
进一步地,所述根据渲染引擎的数据类型,对所述链式列表中的数据进行相应处理,并发送至所述渲染引擎进行渲染,包括:
将所述链式列表中的数据的数据类型和数据顺序进行转化和处理,以适应webgl的数据要求,并将处理后的数据发送至webgl,所述数据类型包括数组类型、Float类型和Int类型。
在上述实现过程中,实现层用于将从中间层得到的数据再次组织,根据不同引擎的特点,转化成符合这些引擎或平台的形式。
进一步地,所述根据渲染引擎的数据类型,对所述链式列表中的数据进行相应处理,并发送至所述渲染引擎进行渲染,包括:
将所述链式列表中的数据的数据类型转化为通信协议要求的形式,并将转化后的数据通过所述通信协议发送至云端进行云渲染。
在上述实现过程中,通信协议约定了mesh数据如何传输到服务器,实现层可将数据转化成通信协议要求的形式。
本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述中任一项所述的跨渲染引擎的数据处理方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种跨渲染引擎的中间装置的结构框图;
图2为本申请实施例提供的渲染引擎渲染时所需要的数据示意图;
图3为本申请实施例提供的现有的业务模块与引擎的关系示意图;
图4为本申请实施例提供的中间层的结构示意图;
图5为本申请实施例提供的树形结构示意图;
图6为本申请实施例提供的模型结构示意图;
图7为本申请实施例提供的跨渲染引擎的数据处理方法的流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参看图1,图1为本申请实施例提供的一种跨渲染引擎的中间装置的结构框图。该装置为应用于业务层和渲染引擎之间的中间接口,能够将业务层的渲染数据顺利地传递至中间接口,再通过中间接口传递给各个渲染引擎。
如图2所示,为渲染引擎渲染时所需要的数据示意图。无论任何引擎,所必需的要素主要有两项,一个大类是资源数据,包括几何数据、材质、纹理数据,当渲染物体时,就是使用该数据进行渲染的;另外一个大类是组织的渲染信息,如场景管理、渲染对象等。也就是说渲染对象,对资源数据进行引用和组织,然后传递给渲染引擎做渲染。如图3所示,为现有的业务模块与引擎的关系示意图,而在实际应用中,业务层往往和引擎接口强耦合,而基于不同引擎的不同产品差异却很大,因此,产品中的各个模块,都会对引擎产生强调用。从而使得业务层从引擎A切换到引擎B的时候,由于大量的业务代码与引擎强耦合在一起,而没有一个明显的边界,不利于进行扩展和引擎的切换验证。而本申请中加入了中间接口,从而从根本上解决了该问题。
中间接口上对接业务层,可按照不同业务层的用户习惯进行二次封装;下对接渲染引擎,例如,将数据经过处理,传递给本地渲染引擎,可将数据经过处理后传递给云端引擎,还可以将数据经过处理后进行进程间通讯传给其他exe。
该中间接口具体可以包括:
至少一个应用层100,用于接收业务层发送的待渲染数据,并将所述待渲染数据转化成树形结构;
中间层200,用于将所述应用层100的数据从树形结构转变为链式列表;
至少一个实现层300,用于根据渲染引擎的数据类型,对所述链式列表中的数据进行相应处理,并发送至所述渲染引擎进行渲染。
中间接口包括应用层100、中间层200和实现层300,其中,中间层200作为核心,决定了一个渲染引擎的完整表达结果,应用层100和实现层300都是围绕中间层200来展开,而且针对不同的平台、不同项目的特点,应用层100和实现层300都会有不同的形态,作为其中一种实施方式,可基于树形结构进行封装。
其中,中间层200包括:
结构,用于管理场景,所述场景包括相机和渲染对象;
资源,包括模型、材质和纹理,所述渲染对象通过引用对应的资源以生成可绘制的渲染对象。
另外,需要说明的是,应用层和实现层一样的,可以具有多个应用层,但在一个具体的项目中,往往只有一个应用层,一个中间层和多个实现层;应用层也不仅仅是树形结构,还可以是其他形态的逻辑数据结构,例如,ECS结构、链式结构等,可根据具体项目的需要来灵活选择,在此不做任何限定,只是树形结构最符合场景的特点而经常被使用;而应用层也按照应用层100对应的数据结构来封装,如按照树形结构来封装应用层100。
如图4所示,为中间层200的结构示意图。其中,结构(Root)是负责管理场景的对象,全局唯一。场景(Scene)是根据需要创建的场景,场景管理相机(Camera)和渲染对象(Object)。资源包括模型、材质和纹理,每个类别下又包括多个小类别,Object会引用对应的资源生成可绘制的渲染对象。
而各个渲染引擎由于自身独特的对接方式,使得对应的结构和资源数据将会存在差异。因此,实现层300关注的是数据如何传递,而中间层200关注的是数据以什么样的形式从应用层100获取并保存,以及如何传递给实现层300。因此,中间层200是数据的载体,各个实现层300在传递数据时,都会从中间层200获取对应的数据。
作为其中一种实施方式,对于树形结构的渲染场景来说,对于应用层100,在node节点上标识三维空间中的位置信息;在mesh节点上挂接模型,所述模型包括顶点数据、索引数据和纹理数据以及对应的数据类型。
如图5所示,为树形结构示意图,场景是一个属性结构,从根节点上,挂载很多node,每一个node都标识了其在3D空间中的位置信息(transform),在node上可以挂载模型,用于显示。Mesh节点就挂接在场景属性结构的叶子节点上,Mesh节点就是模型本身,其数据包括:顶点数据、索引数据和纹理数据,如图6所示,为模型结构示意图。
其中,顶点数据和索引数据用于表达Mesh节点的形状。
顶点数据是几段buffer和对应的用途,例如:
{
Buffer1:位置Position:类型Float32Array,ElementSize:3,
Buffer2:法线Normal:类型Float32Array,ElementSize:3,
Buffer3:纹理坐标UV:类型Float32Array,ElementSize:2,
}
索引数据是一段Buffer数据,数据类型是Uint16Array,用来描述顶点数据的顺序以形成三角面。
材质数据用于表达Mesh节点的展示。
材质数据又包含贴图和用于进行材质计算的参数。贴图是指常见的png、jpg等格式的图片,材质参数则是和贴图数据一起,参与到实际的计算中,逐像素的计算并生成屏幕最终的颜色。材质参数意义是多变的,但其类型往往是固定的,如float、vector3和matrix4等,由于本申请关注的是数据层面通过中间接口将数据到多个不同的渲染引擎的转发,所以更关注数据的类型,而不是其在材质中的意义。
综上,本申请实际关注的数据就是Mesh(顶点+索引)以及关联到Mesh的材质数据(贴图+参数)。因此只要传递和分发好以上数据类型,就可以做到多引擎、多平台的分发。
应用层100是面向业务实际应用的接口封装方式,用于将中间层200的接口形式封装成更加易用的形式,一般以树形结构组织,把渲染数据(模型、材质、纹理等)挂接到树形结构的各个子节点下面。可渲染的模型数据作为一个节点挂在了整个树的子节点下面;具体地,每一个模型都由顶点、索引、材质组成,材质又由贴图和材质参数组成。其目的在于通过数据能够完整的表达一个场景。
对于模型数据、材质数据、贴图数据的数据类型,主要包括两种形态::Buffer和基础类型。
其中,对于Buffer类型,例如几何数据、纹理数据,都是一大段一大段的数组,如对于一张256*256的图片,其持有了256*256*4字节的Buffer数据;对于几何体,每个顶点的位置信息就是一段类型为float的数组。
基础类型,如材质信息和渲染对象,材质信息包含描述这个物体的颜色(Color类型)、光泽度(float类型);而渲染对象则描述,其使用哪个材质(材质id,int类型),哪个几何体(几何体id,int类型),绘制时从绘制几何体数据的哪里开始,到哪里结束(offset,count,都是uint类型)等。
中间层200,用于将应用层100的数据进行组织和管理。具体用于将应用层100的数据从树形结构变为链式列表;裁剪掉隐藏的节点以及在摄像机外的节点;确定各个模型实体的绘制顺序,对模型进行动态的批次合并。
实现层300(Impl)用于:将所述链式列表中的数据的数据类型和数据顺序进行转化和处理,以适应webgl的数据要求,并将处理后的数据发送至webgl,所述数据类型包括数组类型、Float类型和Int类型。
实现层300从中间层200获取到需要的数据,将再次组织,从而不同的impl针对各个引擎或者平台的特点,将这些数据转为符合该引擎或该平台的形式。
作为一种实施方式,对于本地端的渲染,实现层300直接将数据传递给webgl,可以将该实现命名为WebglImpl。webgl接口已经规定了其传入的数据必须是什么形态,或者说以什么样子的形式传入。那么该impl的主要工作就是使得其获得的数据对象保持和webgl标准约定的数据形式一致。
对于webgl的接口形态,以及,需要怎样的数据以驱动浏览器和硬件绘制图像再在此不再赘述。但从宏观层面,就是将从中间层200获取到的数组类型的数据、Float类型的数据、Int类型的数据转化成为Webgl要求的形式。另外,webgl对数据传入的顺序也是有一定的要求,impl需根据其要求的顺序进行创建、传入、修改、删除。
实现层300用于:
将所述链式列表中的数据的数据类型转化为通信协议要求的形式,并将转化后的数据通过所述通信协议发送至云端进行云渲染。
作为另外一种实施方式,对于云端渲染,将数据通过网络发送给云端,进行云渲染,可将该实现命名为SocketImpl。事先和服务器约定一组通信协议,通信协议约定了mesh数据如何传输到服务器,该impl需要做的是将从中间层200获取到的数组类型的数据、Float类型的数据、Int类型的数据转化成为通信协议要求的形式。
上面两种形态都提到了数据的转化,具体是从数据结构体到Buffer的转换过程,例如:
转换成为
Uchar*matParamBuffer;//4个float的buffer
该buffer会通过socket传递给云端渲染引擎,或者传递给本地端的webgl通讯的对象。
实现层300对中间层200的数据进行实际的交付工作,依据不同的渲染引擎的类型,进行对应的操作处理:如对于webgl,实现层300的工作是,将中间层200的数据转换为GPU友好的形式,并调用webglAPI接口,驱动硬件进行绘制;云端渲染实现层300的工作是,将中间层200的数据转换为websocket的字节流,推动到服务器端进行渲染,其本身的工作侧重在数据流的压缩和传递协议的合理性设计方面。
应用层100、中间层200和实现层300三者之间是串行的关系,同时又是完整的一体,功能上有侧重,耦合度低,能够达到跨引擎跨平台的目的。
该中间接口能够彻底隔离业务层和各个渲染引擎,当想要替换渲染引擎的时候,只需要在中间接口生成对应的impl结构即可,方便维护和可扩展。
此外,由于各个渲染引擎的差异较大,在中间接口中对应的功能可以各自独立,如在各自的impl中进行维护,或增加一些辅助的类,或封装更加细致的结构,从而互不影响。
本申请实施例还提供一种跨渲染引擎的数据处理方法,应用于中间接口,如图7所示,为跨渲染引擎的数据处理方法的流程图,该方法具体可以包括以下步骤:
步骤S100:接收业务层发送的待渲染数据,并将所述待渲染数据转化成树形结构;
具体地:
在node节点上标识三维空间中的位置信息;在mesh节点上挂接模型,所述模型包括顶点数据、索引数据和纹理数据以及对应的数据类型。
步骤S200:将所述待渲染数据从树形结构转变为链式列表;
步骤S300:根据渲染引擎的数据类型,对所述链式列表中的数据进行相应处理,并发送至所述渲染引擎进行渲染。
作为其中一种实施方式,将所述链式列表中的数据的数据类型和数据顺序进行转化和处理,以适应webgl的数据要求,并将处理后的数据发送至webgl,所述数据类型包括数组类型、Float类型和Int类型。
作为另外一种实施方式,将所述链式列表中的数据的数据类型转化为通信协议要求的形式,并将转化后的数据通过所述通信协议发送至云端进行云渲染。
本申请实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行上述中的跨渲染引擎的数据处理方法。
本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述中的跨渲染引擎的数据处理方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种跨渲染引擎的中间装置,其特征在于,所述装置包括:
至少一个应用层,用于接收业务层发送的待渲染数据,并将所述待渲染数据转化成项目适配的逻辑数据结构;
中间层,用于将所述应用层的数据从逻辑数据结构转变为链式列表;
至少一个实现层,用于根据渲染引擎的数据类型,对所述链式列表中的数据进行相应处理,并发送至所述渲染引擎进行渲染。
2.根据权利要求1所述的跨渲染引擎的中间装置,其特征在于,所述中间层包括:
结构,用于管理场景,所述场景包括相机和渲染对象;
资源,包括模型、材质和纹理,所述渲染对象通过引用对应的资源以生成可绘制的渲染对象。
3.根据权利要求1所述的跨渲染引擎的中间装置,其特征在于,所述逻辑数据结构包括树形结构,所述应用层用于:
在node节点上标识三维空间中的位置信息;
在mesh节点上挂接模型,所述模型包括顶点数据、索引数据和纹理数据以及对应的数据类型。
4.根据权利要求1所述的跨渲染引擎的中间装置,其特征在于,所述实现层用于:
将所述链式列表中的数据的数据类型和数据顺序进行转化和处理,以适应webgl的数据要求,并将处理后的数据发送至webgl,所述数据类型包括数组类型、Float类型和Int类型。
5.根据权利要求1所述的跨渲染引擎的中间装置,其特征在于,所述实现层用于:
将所述链式列表中的数据的数据类型转化为通信协议要求的形式,并将转化后的数据通过所述通信协议发送至云端进行云渲染。
6.一种跨渲染引擎的数据处理方法,其特征在于,所述方法包括;
接收业务层发送的待渲染数据,并将所述待渲染数据转化成项目适配的逻辑数据结构;
将所述待渲染数据从逻辑数据结构转变为链式列表;
根据渲染引擎的数据类型,对所述链式列表中的数据进行相应处理,并发送至所述渲染引擎进行渲染。
7.根据权利要求6所述的跨渲染引擎的数据处理方法,其特征在于,所述逻辑数据结构包括树形结构,所述树形结构包括根节点、node节点和mesh节点,所述将所述待渲染数据转化成树形结构,包括:
在node节点上标识三维空间中的位置信息;
在mesh节点上挂接模型,所述模型包括顶点数据、索引数据和纹理数据以及对应的数据类型。
8.根据权利要求6所述的跨渲染引擎的数据处理方法,其特征在于,所述根据渲染引擎的数据类型,对所述链式列表中的数据进行相应处理,并发送至所述渲染引擎进行渲染,包括:
将所述链式列表中的数据的数据类型和数据顺序进行转化和处理,以适应webgl的数据要求,并将处理后的数据发送至webgl,所述数据类型包括数组类型、Float类型和Int类型。
9.根据权利要求6所述的跨渲染引擎的数据处理方法,其特征在于,所述根据渲染引擎的数据类型,对所述链式列表中的数据进行相应处理,并发送至所述渲染引擎进行渲染,包括:
将所述链式列表中的数据的数据类型转化为通信协议要求的形式,并将转化后的数据通过所述通信协议发送至云端进行云渲染。
10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行权利要求6至9任一项所述的跨渲染引擎的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111450506.9A CN114064187A (zh) | 2021-12-01 | 2021-12-01 | 一种跨渲染引擎的中间装置、数据处理方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111450506.9A CN114064187A (zh) | 2021-12-01 | 2021-12-01 | 一种跨渲染引擎的中间装置、数据处理方法及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114064187A true CN114064187A (zh) | 2022-02-18 |
Family
ID=80228372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111450506.9A Pending CN114064187A (zh) | 2021-12-01 | 2021-12-01 | 一种跨渲染引擎的中间装置、数据处理方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114064187A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101295407A (zh) * | 2007-04-27 | 2008-10-29 | 新奥特硅谷视频技术有限责任公司 | 图文系统及其渲染方法 |
US8976188B1 (en) * | 2012-04-20 | 2015-03-10 | Google Inc. | Optimized data communication system and method for an image rendering system |
CN111328394A (zh) * | 2018-10-23 | 2020-06-23 | 思杰系统有限公司 | Web内容的本地安全渲染 |
CN112395483A (zh) * | 2020-11-13 | 2021-02-23 | 郑州阿帕斯数云信息科技有限公司 | 基于树形结构的页面渲染方法及装置 |
CN113112579A (zh) * | 2021-04-13 | 2021-07-13 | 苍穹数码技术股份有限公司 | 渲染方法、装置、电子设备和计算机可读存储介质 |
CN113674389A (zh) * | 2021-10-25 | 2021-11-19 | 深圳须弥云图空间科技有限公司 | 场景渲染方法、装置、电子设备及存储介质 |
-
2021
- 2021-12-01 CN CN202111450506.9A patent/CN114064187A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101295407A (zh) * | 2007-04-27 | 2008-10-29 | 新奥特硅谷视频技术有限责任公司 | 图文系统及其渲染方法 |
US8976188B1 (en) * | 2012-04-20 | 2015-03-10 | Google Inc. | Optimized data communication system and method for an image rendering system |
CN111328394A (zh) * | 2018-10-23 | 2020-06-23 | 思杰系统有限公司 | Web内容的本地安全渲染 |
CN112395483A (zh) * | 2020-11-13 | 2021-02-23 | 郑州阿帕斯数云信息科技有限公司 | 基于树形结构的页面渲染方法及装置 |
CN113112579A (zh) * | 2021-04-13 | 2021-07-13 | 苍穹数码技术股份有限公司 | 渲染方法、装置、电子设备和计算机可读存储介质 |
CN113674389A (zh) * | 2021-10-25 | 2021-11-19 | 深圳须弥云图空间科技有限公司 | 场景渲染方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104395902B (zh) | 根据存储的图像确定3d模型信息 | |
US8612040B2 (en) | Automated derivative view rendering system | |
EP1589487A2 (en) | Apparatus and method for reconstructing three-dimensional graphics data | |
CN110211206B (zh) | 一种计算机动画制作系统 | |
US11113847B2 (en) | Conversion of infrastructure model geometry to a tile format | |
JP2023090835A (ja) | ファイルの生成装置およびファイルに基づく映像の生成装置 | |
US10997778B2 (en) | Method for generating three-dimensional model, and terminal device | |
CN108537891A (zh) | 三维材质和贴图数据自动转换到ue4的方法 | |
KR102356044B1 (ko) | 웹브라우저 및 가상/증강현실 기기 활용을 위한 bim 데이터 변환/추출 방법 | |
CN113826029A (zh) | 点云编解码中对复制点和孤立点进行编码的方法 | |
JP2023001336A (ja) | 画像表示方法、画像表示装置、電子機器、記憶媒体及びコンピュータプログラム | |
CN108038760B (zh) | 一种基于ar技术的商品展示控制系统 | |
CN109493431A (zh) | 3d模型数据处理方法、装置及系统 | |
CN116897541A (zh) | 使用渲染引擎的沉浸式技术媒体格式(itmf)规范的映射架构 | |
JP2023501640A (ja) | 点群処理の方法、コンピュータシステム、プログラム及びコンピュータ可読記憶媒体 | |
CN114064187A (zh) | 一种跨渲染引擎的中间装置、数据处理方法及存储介质 | |
Song et al. | Development of a lightweight CAE middleware for CAE data exchange | |
Rossignac | The 3D revolution: CAD access for all! | |
KR102131190B1 (ko) | 온라인 상에서 3d모델을 제공하는 시스템 | |
Li et al. | A streaming technology of 3D design and manufacturing visualization information sharing for cloud-based collaborative systems | |
WO2018040831A1 (zh) | 图形标识码生成方法及装置 | |
US20240169665A1 (en) | Decentralized Digitalization of Physical Objects | |
US20230298132A1 (en) | Scene builder | |
Pan et al. | Level of detail and multi-resolution modeling for virtual prototyping | |
CN111475482B (zh) | 一种hdfs数据的展示方法和装置 |
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 |