CN110533755B - 一种场景渲染的方法以及相关装置 - Google Patents
一种场景渲染的方法以及相关装置 Download PDFInfo
- Publication number
- CN110533755B CN110533755B CN201910818351.6A CN201910818351A CN110533755B CN 110533755 B CN110533755 B CN 110533755B CN 201910818351 A CN201910818351 A CN 201910818351A CN 110533755 B CN110533755 B CN 110533755B
- Authority
- CN
- China
- Prior art keywords
- index data
- texture array
- objects
- target scene
- map
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本申请公开了一种种场景渲染的方法以及相关装置,采用纹理数组可以对多个图集进行组合,而不仅限于图集个数,因此,一次绘制调用中可对该纹理数组内的所有贴图进行绘制,从而减少绘制调用次数,进而提升处理器的性能,提升终端设备的运行效率。本申请方法包括:获取目标场景所对应的场景渲染指令,目标场景包括多个对象;当调用场景渲染指令对目标场景进行渲染时,获取目标场景所对应的纹理数组,纹理数组至少包括七个图集,每个图集包括多个贴图;获取目标场景所对应的第一索引数据,第一索引数据用于指示在纹理数组中贴图与对象之间的对应关系;根据纹理数组以及第一索引数据,对目标场景中的对象进行渲染,对象与贴图具有对应关系。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种场景渲染的方法以及相关装置。
背景技术
近几年来,随着游戏技术的进步,游戏场景的制作规模越来越大,物体也越来越多。在绘制物体时,中央处理器(Central Processing Unit,CPU)调用图形应用程序编程接口(Application Programming Interface,API)向图形处理器(Graphics ProcessingUnit,GPU)提交渲染指令,这样的一次调用过程称为一个绘制调用(Drawcall)。
在每次调用图像接口时,CPU需要向GPU发送很多内容,包括数据、状态和指令等。CPU完成准备工作之后,GPU就可以开始本次的渲染。CPU在准备资源的时候往往需要消耗较多时间,如果Drawcall次数过多,就会导致CPU的性能下降。因此,减少Drawcall次数非常重要。目前,可以采用立方体纹理(CubeMap Texture)进行图集的合并,进而合并材质,减少Drawcall的次数。
然而,对于CubeMap这种纹理对象而言,只能合并固定数量的图集,因此,能够合并的贴图数量仍然是非常有限的,从而导致在低配置的终端设备上的运行效率较低。
发明内容
本申请实施例提供了一种场景渲染的方法以及相关装置,采用纹理数组可以对至少七个图集进行组合,而不仅限于CubeMap的六个图集,因此,一次Drawcall中可对该纹理数组内的所有贴图进行绘制,从而减少了Drawcall次数,进而提升了CPU的性能,由此提升了终端设备的运行效率。
有鉴于此,本申请第一方面提供一种场景渲染的方法,包括:
获取目标场景所对应的场景渲染指令,其中,目标场景包括多个对象;
当调用场景渲染指令对目标场景进行渲染时,获取目标场景所对应的纹理数组,其中,纹理数组至少包括七个图集,每个图集包括多个贴图;
获取目标场景所对应的第一索引数据,其中,第一索引数据用于指示在纹理数组中贴图与对象之间的对应关系;
根据纹理数组以及第一索引数据,对目标场景中的对象进行渲染,其中,对象与贴图具有对应关系。
本申请第二方面提供一种场景渲染装置,包括:
获取单元,用于获取目标场景所对应的场景渲染指令,其中,目标场景包括多个对象;
获取单元,还用于当调用获取单元获取的场景渲染指令对目标场景进行渲染时,获取目标场景所对应的纹理数组,其中,纹理数组至少包括七个图集,每个图集包括多个贴图;
获取单元,还用于获取目标场景所对应的第一索引数据,其中,第一索引数据用于指示在获取单元获取的纹理数组中贴图与对象之间的对应关系;
渲染单元,用于根据获取单元获取的纹理数组以及第一索引数据,对目标场景中的对象进行渲染,其中,对象与贴图具有对应关系。
在一种可能的设计中,在本申请实施例的第二方面的第一种实现方式中,
获取单元,还用于获取目标场景所对应的多个对象,其中,多个对象包括静态对象以及动态对象中的至少一种;
场景渲染装置还包括:生成单元,用于根据获取单元获取的多个对象生成纹理数组,其中,纹理数组与材质具有对应关系;
生成单元,还用于根据生成单元生成的纹理数组生成第一索引数据;
场景渲染装置还包括:替换单元,用于将多个对象所对应的第二索引数据替换为生成单元生成的第一索引数据,其中,第二索引数据用于指示在对象与贴图之间原始的对应关系。
在一种可能的设计中,生成单元,具体用于:
获取多个对象中的静态对象集合,其中,静态对象集合包括至少一个静态对象;
根据静态对象集合获取第一贴图集合,其中,第一贴图集合包括至少一个第一贴图,第一贴图与静态对象具有对应关系;
通过第一纹理打包器对第一贴图集合进行处理,得到至少一个第一图集;
获取多个对象中的动态对象集合,其中,动态对象集合包括至少一个动态对象;
根据动态对象集合获取第二贴图集合,其中,第二贴图集合包括至少一个第二贴图,第二贴图与动态对象具有对应关系,第二贴图包括多个子贴图;
通过第二纹理打包器对第二贴图集合进行合成处理,得到至少一个第二图集;
根据至少一个第一图集以及至少一个第二图集,生成纹理数组。
在一种可能的设计中,生成单元,具体用于:
获取多个对象中的静态对象集合,其中,静态对象集合包括多个静态对象;
根据静态对象集合获取第一贴图集合,其中,第一贴图集合包括多个第一贴图,第一贴图与静态对象具有对应关系;
通过第一纹理打包器对第一贴图集合进行合成处理,得到多个第一图集;
根据多个第一图集生成纹理数组。
在一种可能的设计中,生成单元,具体用于:
获取多个对象中的动态对象集合,其中,动态对象集合包括多个动态对象;
根据动态对象集合获取第二贴图集合,其中,第二贴图集合包括多个第二贴图,第二贴图与动态对象具有对应关系,第二贴图包括多个子贴图;
通过第二纹理打包器对第二贴图集合进行合成处理,得到多个第二图集;
根据多个第二图集生成纹理数组。
在一种可能的设计中,场景渲染装置还包括:记录单元,用于将纹理数组中每个图集对应的二进制数据记录至第一资源文件;
获取单元,具体用于通过记录单元记录的第一资源文件获取目标场景所对应的纹理数组;
记录单元,还用于将第一索引数据记录至第二资源文件;
获取单元,具体用于通过第二资源文件获取目标场景所对应的第一索引数据。
在一种可能的设计中,获取单元,还用于获取多个对象中的静态对象以及静态对象所对应的网格mesh数据,其中,mesh数据来源于第一渲染器组件;
场景渲染装置还包括:替换单元,用于将第一渲染器组件替换为第二渲染器组件,其中,第二渲染器组件用于指定纹理数组与材质之间的对应关系;
场景渲染装置还包括:记录单元,用于将获取单元获取的静态对象所对应的mesh数据以及第一索引数据记录至第三资源文件;
渲染单元,具体用于:
通过第三资源文件获取第一索引数据对应的静态对象的mesh数据;
采用静态对象的mesh数据以及纹理数组,对目标场景中的静态对象进行渲染,其中,静态对象的材质是通过第二渲染器组件指定的。
在一种可能的设计中,获取单元,还用于获取多个对象中的动态对象以及动态对象所对应的mesh数据;
场景渲染装置还包括:记录单元,用于将获取单元获取的动态对象所对应的mesh数据以及第一索引数据记录至第四资源文件;
渲染单元,具体用于:
通过第四资源文件获取第一索引数据对应的动态对象的mesh数据;
采用动态对象的mesh数据以及纹理数组,对目标场景中的静态对象进行渲染。
在一种可能的设计中,场景渲染装置还包括:检测单元,用于通过应用程序编程接口API检测终端设备是否支持纹理数组;
执行单元,用于在终端设备支持纹理数组的情况下,执行获取目标场景所对应的纹理数组以及索引数据的步骤;
添加单元,用于在终端设备不支持纹理数组的情况下,将终端设备所对应的设备信息添加至黑名单,其中,黑名单包括至少一个不支持纹理数组的设备信息。
在一种可能的设计中,场景渲染装置还包括:检测单元,用于检测白名单中是否存在终端设备所对应的设备信息,其中,白名单包括至少一个支持纹理数组的设备信息;
执行单元,用于在白名单中存在终端设备所对应的设备信息的情况下,执行获取目标场景所对应的纹理数组以及索引数据的步骤;
检测单元,用于在白名单中不存在终端设备所对应的设备信息的情况下,通过API检测终端设备是否支持纹理数组;
添加单元,用于在终端设备支持纹理数组的情况下,将终端设备所对应的设备信息添加至白名单。
本申请第三方面提供了一种终端设备,其特征在于,包括:存储器、收发器、处理器以及总线系统;
其中,存储器用于存储程序;
处理器用于执行存储器中的程序,包括如下步骤:
获取目标场景所对应的场景渲染指令,其中,目标场景包括多个对象;
当调用场景渲染指令对目标场景进行渲染时,获取目标场景所对应的纹理数组,其中,纹理数组至少包括七个图集,每个图集包括多个贴图;
获取目标场景所对应的第一索引数据,其中,第一索引数据用于指示在纹理数组中贴图与对象之间的对应关系;
根据纹理数组以及第一索引数据,对目标场景中的对象进行渲染,其中,对象与贴图具有对应关系;
总线系统用于连接存储器以及处理器,以使存储器以及处理器进行通信。
本申请的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例中,提供了一种场景渲染的方法,获取目标场景所对应的场景渲染指令,当调用场景渲染指令对目标场景进行渲染时,获取目标场景所对应的纹理数组,其中,目标场景包括多个对象,纹理数组至少包括七个图集,每个图集包括多个贴图,对象与贴图具有对应关系;获取目标场景所对应的第一索引数据,其中,第一索引数据用于指示在纹理数组中贴图与对象之间的对应关系;根据纹理数组以及第一索引数据,对目标场景中的对象进行渲染。通过上述方式,采用纹理数组可以对至少七个图集进行组合,而不仅限于CubeMap的六个图集,因此,一次Drawcall中可对该纹理数组内的所有贴图进行绘制,从而减少了Drawcall次数,进而提升了CPU的性能,由此提升了终端设备的运行效率。
附图说明
图1为本申请实施例中终端设备的一个结构示意图;
图2为本申请实施例中场景渲染系统的一个架构示意图;
图3为本申请实施例中场景渲染的方法一个实施例示意图;
图4为本申请实施例中场景渲染的方法中获取纹理数组的一个界面示意图;
图5为本申请实施例中场景渲染的方法中第二客户端的一个菜单界面示意图;
图6为本申请实施例中场景渲染的方法中第一图集的一个界面示意图;
图7为本申请实施例中场景渲染的方法中第二图集的一个界面示意图;
图8为本申请实施例中场景渲染的方法中材质指定场景的一个界面示意图;
图9为本申请实施例中场景渲染的方法一个实施例示意图;
图10为本申请实施例中场景渲染装置一个实施例示意图;
图11为本申请实施例中场景渲染装置另一个实施例示意图;
图12为本申请实施例中终端设备的一个实施例示意图。
具体实施方式
本申请实施例提供了一种场景渲染的方法以及相关装置,采用纹理数组可以对至少七个图集进行组合,而不仅限于CubeMap的六个图集,因此,一次Drawcall中可对该纹理数组内的所有贴图进行绘制,从而减少了Drawcall次数,进而提升了CPU的性能,由此提升了终端设备的运行效率。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应理解,本申请实施例可以应用于各种需要渲染的场景中,具体的,终端设备上安装有多种交互式应用,例如游戏类交互式应用、即时通讯类交互式应用、交通导航类交互式应用或其他类型的交互式应用等等,前述多种类型的交互式应用的展示界面上会展示多种静态对象和/或动态对象,进一步的,前述多种类型的交互式应用的展示界面可以为2维(dimensional,D)形式的,也可以为3维形式的。在终端设备对交互式应用的展示界面进行展示之前,需要对界面上的静态对象和/或动态对象进行渲染,但由于目前采用的渲染方式,需要的渲染次数过多,在低配置的终端设备上运行效率较低。
为了便于理解,本申请提出了一种场景渲染的方法,该方法应用于图1所示的场景渲染系统,请参阅图1,图1为本申请实施例中终端设备的一个结构示意图,如图所示,终端设备上部署有与第一交互式应用对应的第一客户端100和与第二交互式应用对应的第二客户端200,其中,第一交互式应用为存在渲染需求的交互式应用,第二交互式应用为具有渲染功能的交互式应用。第一客户端100和第二客户端200均可以表现为网页客户端,也可以表现为应用程序类客户端;服务器为用户动态信息展示系统的后台服务器,可以是一台服务器或多台服务器组成的服务器集群或云计算中心等,具体此处均不限定。应当理解,本申请实施例中仅以第一交互式应用为游戏类交互式应用,且第一交互式应用的展示界面为2D形式的为例进行说明,当第一交互式应用为其他类型的交互式应用或者,当第一交互式应用为3D形式时,可以结合本申请实施例中的描述做类推适用,此处不再对其他场景一一进行描述。
具体的,终端设备上的第一客户端100获取目标场景所对应的场景渲染指令,目标场景包括多个对象,当调用场景渲染指令对所述目标场景进行渲染时,获取目标场景对应的纹理数据,进而获取目标场景所对应的第一索引数据,其中,第一索引数据用于指示在所述纹理数组中贴图与对象之间的对应关系,并通过终端设备上的第一客户端200对目标场景中的对象进行渲染,其中,对象与贴图具有对应关系。由于前述纹理数组中包括至少七个图集,而不仅限于CubeMap的六个图集,因此提升了终端设备的运行效率。
更具体的,请参阅图2,图2为本申请实施例中场景渲染系统的一个架构示意图,第一客户端100和第二客户端200均部署于终端设备上,均可以表现为网页客户端,也可以表现为应用程序类客户端。其中,终端设备包含但不仅限于平板电脑、笔记本电脑、掌上电脑、手机、语音交互设备及个人电脑(personal computer,PC),此处不做限定。其中,语音交互设备包含但不仅限于智能音响以及智能家电。服务器为第一交互式应用(也即存在渲染需求的交互式应用)的后台服务器,或者为第二交互式应用(也即具有渲染功能的交互式应用)的后台服务器,后台服务器可以是一台服务器或多台服务器组成的服务器集群或云计算中心等,具体此处均不限定。
终端设备和服务器之间可以通过无线网络连接。其中,上述的无线网络使用标准通信技术和/或协议。无线网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(WideArea Network,WAN)、移动、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,可以使用定制或专用数据通信技术取代或者补充上述数据通信技术。
虽然图1中示出了一个第一客户端和一个第二客户端,但应当理解,一个第二客户端可以用于对一个或至少两个第一客户端执行渲染操作,具体第一客户端和第二客户端的数量也应当结合实际产品情况确定,本申请实施例中也不做限定。此外,虽然图1中仅示出了五个终端设备和一个服务器,但应当理解,图1中的示例仅用于理解本方案,具体终端设备和服务器的数量均应当结合实际情况灵活确定。本申请实施例中,仅以提供的场景渲染的方法应用于通讯类型的客户端上为例,进行说明。
结合上述介绍,下面将对本申请中场景渲染的方法进行介绍,请参阅图3,本申请实施例中场景渲染的方法一个实施例包括:
101、终端设备获取目标场景所对应的场景渲染指令,其中,目标场景包括多个对象。
本实施例中,终端设备中的第一客户端可以获取一个或至少两个目标场景所对应的场景渲染指令,其中,目标场景中包括多个对象,对象指的是目标场景中的组成元素,作为示例,例如在枪战类交互式应用中,存在主展示界面、背包展示界面、游戏进行中的展示界面、游戏结束时的展示界面等等,其中主展示界面中可以呈现用户的全身形象,背包展示界面中可以呈现衣服、鞋子、福袋等组成元素,游戏进行中的展示界面中可以呈现枪、房子、摩托车等组成元素,游戏结束时的展示界面可以呈现排名、得分等组成元素,所述主展示界面、背包展示界面、游戏进行中的展示界面或游戏结束时的展示界面等等都属于第一客户端找那个的目标场景,所述全身形象、衣服、鞋子、福袋或枪等组成元素就视为目标场景中的对象,应当理解,此处举例仅为方便理解本方案,不用于限定本方案。
具体的,在一种场景下,可以在进入第一客户端之前获取到场景渲染指令,更具体的,当终端设备中的第一客户端接收到用户输入的第一交互式应用的开启指令时,需要向用户展示第一客户端的主展示界面,则可以获取到对主展示界面(也即目标场景的一种示例)对应的场景渲染指令,当然,当终端设备中的第一客户端接收到用户输入的第一交互式应用的开启指令时,也可以获取到第一客户端的所有目标场景对应的场景渲染指令;在另一种场景下,也可以在运行第一客户端的过程中获取到场景渲染指令,例如当终端设备中的第一客户端接收到用户输入的针对新目标场景的打开指令时,可以获取到与新目标场景对应的场景渲染指令,作为示例,例如在仙侠类游戏中,可以存在不同的风景区,当用户通过地图从一个风景区切换到另一个风景区时,终端设备中的第一客户端可以获取到新风景区(也即目标场景的一种示例)的场景渲染指令;在另一种场景下,还可以在关闭第一客户端时获取到场景渲染指令,例如在关闭第一客户端之前进行第一客户端的更新操作,则可以获取到第一客户端中多个目标场景对应的场景渲染指令等等,具体此处不对所有场景进行穷举。
102、当调用场景渲染指令对目标场景进行渲染时,终端设备获取目标场景所对应的纹理数组,其中,纹理数组至少包括七个图集,每个图集包括多个贴图。
本实施例中,终端设备在通过步骤101获取到场景渲染指令之后,可以调用场景渲染指令对至少一个目标场景进行渲染,由于至少一个目标场景对应与至少一个纹理数组,而终端设备的第二客户端在一次渲染操作中只能针对一个纹理数组,则终端设备中的第二客户端需要需要获取至少一个纹理数组中的某一个纹理数组,以执行一次渲染操作。
其中,在终端设备中的第二客户端在执行一次渲染操作中获取到的一个纹理数组中至少包括七个图集,每个图集中包括多个贴图。进一步的,纹理数组(TextureArray)指的是一种纹理对象,以数组的形式包含多个图集,纹理数组中的各个图集之间的大小和格式均相同,每个纹理数组都有其对应的纹理数组标识(Identity,ID),用于唯一标识一个纹理数组,也即终端设备的第二客户端可以通过纹理数组标识来确定目标纹理数组。数组中包括的图集个数可以通过设置项预先设置的,作为示例,例如图集的个数可以为7个、8个、9个或其他数值等,只要图集的数量为至少七个就可以,具体图集数量的取值,此处不做限定。每个图集中包括多个贴图,每个图集中包括的贴图的数量是随机的,不是预先设置的,可以预先设置的是每个图集的大小或者说是分辨率,作为示例,例如每个图集预先设置的分辨率可以为1024*1024,2048*2048、4096*4096或其他大小的分辨率等等,具体此处不做限定。从而一个图集中包括的单个贴图越小,一个图集中包括的贴图的数量越多,一个图集中包括的单个贴图越大,一个图集中包括的贴图的数量越少;更进一步的,每个图集中包括的贴图可以为静态图像,也可以为动图图像。
为进一步理解本方案,请参阅图4,图4为本申请实施例中场景渲染的方法中获取纹理数组的一个界面示意图,图4包括(a)、(b)和(c)三个子示意图。请先参阅图4的(a)子示意图,图4的(a)子示意图示出的为未使用本申请实施例提供的场景渲染的方法时获取渲染对象的方式,在图4的(a)子示意图中,获取渲染对象的方式是直接获取与目标场景中的对象对应的贴图;接着参阅图4的(b)子示意图和(c)子示意图,本申请实施例中获取渲染对象的方式是获取纹理数组,图4中以一个纹理数组中包括七个图集为例,每个图集中又包括多个对象,也即本申请实施例中一次渲染操作中是对七个图集中的多个贴图进行渲染,大大减少了Drawcall次数,应当理解,图4中的举例仅为方便理解本方案,不用于限定本方案。
103、终端设备获取目标场景所对应的第一索引数据,其中,第一索引数据用于指示在纹理数组中贴图与对象之间的对应关系。
本实施例中,由于每个纹理数组中包括至少七个图集,每个图集中又包括多个贴图,而由于终端设备中的第二客户端在执行渲染操作时,是对目标场景中的对象进行渲染,所以终端设备的第二客户端在获取到与至少一个目标场景对应的至少一个纹理数组之后,终端设备的第二客户端需要获取与至少一个目标场景所对应的至少一个第一索引数据,具体的,在终端设备中的第二客户端执行一次渲染操作时,可以为获取与至少一个目标场景对应的至少一个纹理数组中某一个纹理数组对应的一个第一索引数据。
其中,第一索引数据也可以视为贴图的定位数据,在代码中的名称可以为SliceIndex,第一索引数据用于指示在纹理数组中贴图与目标场景中的对象之间的对应关系,第一索引数据还用于指示纹理数组中每个贴图的存储位置,进一步的,前述存储位置指的可以为逻辑存储位置,作为示例,例如某个纹理数组中包括8个图集,目标贴图位于8个图集中的第7个图集中,则目标贴图的索引数据可以为7;每个贴图的存储位置指的还可以为物理存储位置等,具体此处不做限定。更进一步的,由于终端设备的第二客户端可以获知目标场景中的对象与纹理数组之间的对应关系,则终端设备的第二客户端可以根据目标场景中的对象与纹理数组之间的对应关系以及第一索引数据,确定目标场景中的对象与纹理数组中的贴图之间的对应关系。
贴图指的是与对应的至少一个图像,当对象为静态对象时,静态对象指的是目标场景中不会动的对象,贴图和对象为一对一的关系;当对象为动图对象时,动图对象指的是目标场景中具有动画效果的对象,贴图和对象是多对一的关系,多个贴图用于展示对象的动态过程。作为示例,例如对象为一个静止的桌子(也即静态对象),则贴图就是静止的桌子的图像;再例如对象为一个上下蹦跳的兔子(也即动态对象),则贴图可以分别包括处于最高状态、中间状态以及最低状态的兔子的三个图像,应当理解,此处举例仅为方便理解本方案,不用于限定本方案。进一步的,目标场景中的静态对象可以为通过Unity中自带的图片精灵渲染器(Sprite Renderer)组件制作的静态对象;目标场景中的动态对象可以为通过脊柱(Spine)制作的带2D骨骼动画的对象,其中,Spine是一款针对游戏的2D骨骼动画编辑工具,当然,目标场景中的静态对象和动态对象还可以为通过其他类型的动画编辑工具制作而成的图像,此处举例仅为方便理解本方案。
104、终端设备根据纹理数组以及第一索引数据,对目标场景中的对象进行渲染,其中,对象与贴图具有对应关系。
本实施例中,终端设备中的第二客户端可以根据纹理数组确定对哪个目标场景中的哪些对象进行渲染,以及根据第一索引数据获取到纹理数组中包括的贴图,也即与目标场景中的对象对应的贴图,从而完成了待渲染数据的准备操作,进而可以对目标场景中的对象进行一次渲染操作,也即需要对与目标场景中的对象对应的纹理数组中的贴图进行采样。应当理解,当一个目标场景中的对象对应有至少两个不同的材质时,需要执行至少两次渲染操作才能实现对一个目标场景的渲染。其中,终端设备中的第二客户端执行一次渲染(Drawcall)操作指的是中央处理器(central processing unit,CPU)调用如图形应用程序编程接口(application programming interface,API)接口,向图形处理器(graphicsprocessing unit,GPU)提交渲染指令,以利用GPU执行渲染操作的一次调用过程,GPU在执行渲染时会采样到纹理数组;具体的,执行渲染操作的过程可以包括为所述一个纹理数组选定统一的材质,并利用找色器(shader)为所述一个纹理数组进行统一找色。进一步的,图形API接口可以具体表现为DrawPrimitive、DrawIndexedPrimitive或其他类型的图像API接口等等。
本申请实施例中,提供了一种场景渲染的方法,获取目标场景所对应的场景渲染指令,当调用场景渲染指令对目标场景进行渲染时,获取目标场景所对应的纹理数组,其中,目标场景包括多个对象,纹理数组至少包括七个图集,每个图集包括多个贴图,对象与贴图具有对应关系;获取目标场景所对应的第一索引数据,其中,第一索引数据用于指示在纹理数组中贴图与对象之间的对应关系;根据纹理数组以及第一索引数据,对目标场景中的对象进行渲染。通过上述方式,采用纹理数组可以对至少七个图集进行组合,而不仅限于CubeMap的六个图集,因此,一次Drawcall中可对该纹理数组内的所有贴图进行绘制,从而减少了Drawcall次数,进而提升了CPU的性能,由此提升了终端设备的运行效率。
可选地,在上述图3对应的实施例的基础上,本申请实施例提供的场景渲染的方法一个可选实施例中,终端设备获取目标场景所对应的场景渲染指令之前,方法还包括:
终端设备获取目标场景所对应的多个对象,其中,多个对象包括静态对象以及动态对象中的至少一种;
终端设备根据多个对象生成纹理数组,其中,纹理数组与材质具有对应关系;
终端设备根据纹理数组生成第一索引数据;
终端设备将多个对象所对应的第二索引数据替换为第一索引数据,其中,第二索引数据用于指示在对象与贴图之间原始的对应关系。
本实施例中,终端设备的第二客户端在获取目标场景所对应的场景渲染指令之前,可以获取至少一个目标场景中每个目标场景所对应的多个对象,其中,多个对象中包括静态对象以及动态对象中的至少一种,进一步的,静态对象指的是目标场景中的静态组成元素,动态对象指的是目标场景中的动态组成元素。
进而终端设备的第二客户端可以根据多个对象生成至少一个纹理数组,具体的,根据多个静态对象生成至少一个纹理数组,或者,根据多个动态对象生成至少一个纹理数组,,或者,根据多个静态对象和多个动态对象生成至少一个纹理数组,也即一个纹理数组中既可能只包括静态对象或动态对象,也可能同时包括静态对象和动态对象。其中,纹理数组与材质具有对应关系,纹理数组与材质之间的对应关系指的可以是目标场景中的对象与材质之间具有对应关系,材质与纹理数组之间具有对应关系,则可以通过材质获取到对应的纹理数组。其中,由于每个对象需要指定一个材质来描述该对象表面的色彩、纹理、光滑度、透明度等属性,也即每个对象的属性不是绝对属性,而是相对属性,对应的,纹理数组中的每个贴图的属性也是相对属性;作为示例,例如材质可以为金属、玻璃或其他类型的材质等等。进一步的,终端设备的第二客户端需要生成与对象对应的贴图,而在不同的平台上会采用不同的贴图压缩格式,进而针对不同的平台需要制定不同的材质。例如在安卓平台和ios(操作系统)上会使用不同的贴图压缩格式,安卓上使用的贴图压缩格式是ETC2,ios上使用的贴图压缩格式是pvrtc和astc,其中,ETC2、pvrtc和astc分别为三种不同的贴图压缩格式。
在终端设备的第二客户端生成纹理数组之后,需要根据纹理数组生成第一索引数据,在第一索引数据为纹理数组中贴图的逻辑存储位置的情况下,终端设备的第二客户端需要生成每个贴图的索引数据,并将整个纹理数组对应的索引数据确定为第一索引数据;在第一索引数据为纹理数组中贴图的物理存储位置的情况下,终端设备的第二客户端需要获取每个贴图的物理存储位置(也即索引数据),并将整个纹理数组对应的索引数据确定为第一索引数据。
终端设备的第二客户端在生成第一索引数据后,可以将多个对象所对应的第二索引数据替换为第一索引数据,其中,第二索引数据用于指示在对象与贴图之间原始的对应关系,第二索引数据所指示的贴图数量少于第一索引数据所指示的贴图数量。具体的,在终端设备的第一客户端通过第二客户端执行渲染操作之前,可以更改终端设备的第二客户端获取目标场景中的对象时的访问的贴图存储位置,也即将原始的第二索引数据对应的贴图存储位置修改为第一索引数据对应的贴图存储位置。作为示例,例如第二索引数据指示的可以为通过CubeMap进行图集合并时合并的贴图的存储位置,第一索引数据指示的是包括至少七个图集的纹理数组中贴图的存储位置。
本申请实施例中,在执行渲染操作之前,可以获取目标场景所对应的多个对象,根据多个对象生成纹理数组,根据纹理数组生成第一索引数据,之后将多个对象所对应的第二索引数据替换为第一索引数据,其中,第二索引数据用于指示在对象与贴图之间原始的对应关系,通过上述方式,通过修改索引数据的方式将原有的纹理对象替换为本申请中的纹理数组,也即通过修改索引数据的形式实现了将原有固定数量的图集替换为本申请中的至少七个图集,提高了本方案的可执行性;且操作简单,避免了其他程序的过多改动,也即避免了复杂度的提升;此外,替换索引数据的形式并不会需要第二客户端的服务器侧作相应改动,从而保证了避免了给第二客户端的服务器侧增加额外工作量,进一步避免了本方案复杂度的提升。
可选地,在上述图3对应的实施例的基础上,本申请实施例提供的场景渲染的方法一个可选实施例中,终端设备根据多个对象生成纹理数组,包括:
终端设备获取多个对象中的静态对象集合,其中,静态对象集合包括至少一个静态对象;
终端设备根据静态对象集合获取第一贴图集合,其中,第一贴图集合包括至少一个第一贴图,第一贴图与静态对象具有对应关系;
终端设备通过第一纹理打包器对第一贴图集合进行处理,得到至少一个第一图集;
终端设备获取多个对象中的动态对象集合,其中,动态对象集合包括至少一个动态对象;
终端设备根据动态对象集合获取第二贴图集合,其中,第二贴图集合包括至少一个第二贴图,第二贴图与动态对象具有对应关系,第二贴图包括多个子贴图;
终端设备通过第二纹理打包器对第二贴图集合进行合成处理,得到至少一个第二图集;
终端设备根据至少一个第一图集以及至少一个第二图集,生成纹理数组。
本实施例中,终端设备的第二客户端可以分别获取多个对象中的静态对象集合和动态对象集合,具体的,终端设备的第二客户端可以对目标场景进行分离,从而获取到多个独立的静态对象以及多个独立的静态对象,其中,静态对象集合包括至少一个静态对象,动态对象集合包括至少一个动态对象,由于上述实施例中已对静态对象和动态对象进行举例,此处不再赘述。
终端设备的第二客户端可以获取与静态对象集合中多个静态对象一一对应的多个第一贴图(也即第一贴图集合),其中,第一贴图集合包括至少一个第一贴图,第一贴图与静态对象具有一一的对应关系;终端设备的第二客户端可以预先设置有第一图集的分辨率大小或第一图集所占内存的大小,进而通过第一纹理打包器根据第一图集的预设大小对第一贴图集合进行打包处理,得到至少一个第一图集,得到的每个第一图集的大小都不超过第一图集的预设分辨率大小或第一图集所占内存的预设大小。
终端设备的第二客户端可以获取与动态对象集合中多个动态对象一一对应的多个第二贴图(也即第二贴图集合),其中,第二贴图集合包括至少一个第二贴图,第二贴图与动态对象具有一对一的对应关系,第二贴图中包括多个子贴图,用于展示动态对象的动态过程;终端设备的第二客户端可以预先设置有第二图集的分辨率大小或第二图集所占内存的大小,进而通过第二纹理打包器对第二贴图集合进行打包处理,得到至少一个第二图集,得到的每个第二图集的大小都不超过第二图集的预设分辨率大小或第二图集所占内存的预设大小。其中,第二纹理打包器与第一纹理打包器可以为不同的纹理打包器。需要说明的是,上述实施例中对于图集的分辨率的描述,以及图集与贴图之间的关系的描述均适用于第一图集和第二图集;此外,本申请实施例不限定本实施例中打包静态对象和打包动态对象之间的执行顺序,可以先执行对静态对象的打包操作,也可以先执行对动态对象的打包操作,还可以交叉执行对静态对象和动态对象的打包操作等。
终端设备的第二客户端在获取到至少一个第一图集以及至少一个第二图集之后,可以生成纹理数组,其中,同一个纹理数组中可以只包括第一图集或者只包括第二图集,也可以同时包括第一图集和第二图集。具体的,终端设备上可以预先设置一个纹理数组中包括的至少七个图集中的图集数量,例如预先设置的图集数量为N个,N为大于等于7的正整数,则一种实现方式中,终端设备的第二客户端可以在至少一个第一图集中选取N个第一图集生成一个纹理数组,以及从至少一个第二图集中选取N个第二图集生成一个纹理数组;另一种实现方式中,终端设备的第二客户端可以在至少一个第一图集和至少一个第二图集选取N个图集,以生成一个纹理数组。
本申请实施例中,分别获取多个对象中的静态对象集合以及动态对象集合,根据静态对象集合获取第一贴图集合,并通过第一纹理打包器对第一贴图集合进行处理,得到至少一个第一图集,根据动态对象集合获取第二贴图集合,并通过第二纹理打包器对第二贴图集合进行合成处理,得到至少一个第二图集,进而根据至少一个第一图集以及至少一个第二图集,生成纹理数组。通过上述方式,提供了根据目标场景中的静态对象和动态对象生成纹理数据的具体实现方案,从而提高了本方案的可实现性;此外,对静态对象采用第一纹理打包器,对动态对象使用第二纹理打包器,不同类型的对象采用不同类型的纹理打包器,有利于提高打包过程的精准化。
可选地,在上述图3对应的实施例的基础上,本申请实施例提供的场景渲染的方法一个可选实施例中,终端设备根据多个对象生成纹理数组,包括:
终端设备获取多个对象中的静态对象集合,其中,静态对象集合包括多个静态对象;
终端设备根据静态对象集合获取第一贴图集合,其中,第一贴图集合包括多个第一贴图,第一贴图与静态对象具有对应关系;
终端设备通过第一纹理打包器对第一贴图集合进行合成处理,得到多个第一图集;
终端设备根据多个第一图集生成纹理数组。
本实施例中,若目标场景中只存在静态对象,终端设备的第二客户端在获取到静态对象集合之后,可以获取与多个静态对象对应的第一贴图集合,并通过第一纹理打包器对第一贴图集合进行合成处理,进而根据多个第一图集生成纹理数组,具体的,终端设备的第二客户端可以在至少一个第一图集中选取N个第一图集生成一个纹理数组,更具体的,终端设备的第二客户端选取N个第一图集的方式可以为完全随机的;也可以为按照生成第一图集在时间上的先后顺序对多个第一图集进行排序,进而按照先生成先获取的原则,顺序获取N个第一图集;还可以为根据多个第一图集中不同第一图集之间的相似度对多个第一图集进行分类,从而每次获取相似度较高的N个第一图集等。其中,第一纹理打包器可以具体可以选用Texture Packer;进一步的,Texture Packer是一个通用工具,能够把第一贴图集合中多个分散的第一贴图打包成一个完整的第一图集,也即将多个小的第一贴图存储为一个大的第一图集;当然,第一纹理打包器也可以选用其他静态贴图打包器,此处不做穷举。为进一步理解本方案,请参阅图5,图5为本申请实施例中场景渲染的方法中第一图集的一个界面示意图,图5中展示了一个第一图集中包括的多个第一贴图,分别对应目标场景中的多个静态对象,应当理解,图5中的示例仅为方便理解本方案,不用于限定本方案。
本申请实施例中,通过上述方式,提供了根据目标场景中的静态对象生成纹理数据的具体实现方案,从而提高了本方案的可实现性,也扩展了本方案的应用场景。
可选地,在上述图3对应的实施例的基础上,本申请实施例提供的场景渲染的方法一个可选实施例中,终端设备根据多个对象生成纹理数组,包括:
终端设备获取多个对象中的动态对象集合,其中,动态对象集合包括多个动态对象;
终端设备根据动态对象集合获取第二贴图集合,其中,第二贴图集合包括多个第二贴图,第二贴图与动态对象具有对应关系,第二贴图包括多个子贴图;
终端设备通过第二纹理打包器对第二贴图集合进行合成处理,得到多个第二图集;
终端设备根据多个第二图集生成纹理数组。
本实施例中,若目标场景中只存在动态对象,终端设备的第二客户端在获取到动态对象集合之后,可以获取与多个动态对象对应的第二贴图集合,并通过第二纹理打包器对第二贴图集合进行合成处理,进而根据多个第二图集生成纹理数组,终端设备的第二客户端从多个第二图集中选取N个第二图集以组成纹理数组的方式与终端设备的第一客户端从多个第一图集中选取N个第一图集以组成纹理数组的方式类似,此处不再赘述。其中,第二纹理打包器具体可以选用Sprite UV2,当目标场景中的动态对象的贴图是用通过Spine制作的情况下,终端设备的第二客户端在对目标场景进行分离,导出的动态对象本身就已经是包括了多个子贴图的第二贴图,而SpriteUV2支持直接对包括多个子贴图的第二贴图进行二次打包,无需将一个动态对象拆分为多个静态贴图之后,再在静态贴图的基础上进行打包操作,所以,采用SpriteUV2可以优化第二图集的空间利用率;当然,第二纹理打包器也可以选用其他动态贴图打包器,此处不做穷举。为进一步理解本方案,请参阅图6,图6为本申请实施例中场景渲染的方法中第二图集的一个界面示意图,图6中展示了一个第二图集中包括的多个第二贴图,分别对应目标场景中的多个动态对象,一个第二贴图中又可以包括多个子贴图,例如A1代表一个第二贴图,A1中包括三个子贴图,应当理解,图6中的示例仅为方便理解本方案,不用于限定本方案。
本申请实施例中,通过上述方式,提供了根据目标场景中的动态对象生成纹理数据的具体实现方案,从而提高了本方案的可实现性,也扩展了本方案的应用场景。
可选地,在上述图3对应的实施例的基础上,本申请实施例提供的场景渲染的方法一个可选实施例中,终端设备根据多个对象生成纹理数组之后,方法还包括:
终端设备将纹理数组中每个图集对应的二进制数据记录至第一资源文件;
终端设备获取目标场景所对应的纹理数组,包括:
终端设备通过第一资源文件获取目标场景所对应的纹理数组;
终端设备将多个对象所对应的第二索引数据替换为第一索引数据之后,方法还包括:
终端设备将第一索引数据记录至第二资源文件;
终端设备获取目标场景所对应的第一索引数据,包括:
终端设备通过第二资源文件获取目标场景所对应的第一索引数据。
本实施例中,终端设备的第二客户端在根据多个对象生成纹理数组之后,由于一个纹理数组中至少包括七个图集,终端设备的第二客户端可以通过二进制数据的方式记录每个图集,并将纹理数组中每个图集对应的二进制数据记录至第一资源文件中,进而当终端设备的第一客户端需要获取目标场景所对应的纹理数组时,是从第一资源文件中获取目标场景所对应的纹理数组;由于终端设备的第二客户端在根据多个对象生成纹理数组之后,还会根据纹理数组生成第一索引数据,则终端设备的第二客户端在生成第一索引数据之后,可以将第一索引数据记录至第二资源文件,从而终端设备的第一客户端在获取目标场景所对应的第一索引数据时,是从第二资源文件中获取目标场景所对应的第一索引数据。其中,第一资源文件和第二资源文件可以为同一个资源文件,也可以为不同的资源文件。
为进一步理解本方案,此处以终端设备的第二客户端选用Unity来实现,且每个纹理数组中包括有8个图集为例进行举例说明,其中Unity是一款协助软件开发的应用程序,可以用于对目标场景的渲染。Unity可以在生成一个纹理数组后,将纹理数组中的8个图集对应的二进制数据依次写入自定义(asset)文件中,并用ScriptableObject中的SpriteRepackData类把多个贴图在纹理数组中的第一索引数据(SliceIndex)进行序列化,并写入asset文件。其中,asset是Unity中的一种资源文件;ScriptableObject是Unity中用于生成asset的一种结构,可以用来处理序列化,把数据存成资源文件的结构;SpriteRepackData类是继承自ScriptableObject类的一种数据类,用于将索引数据序列化,并存成资源文件,应当理解,此处举例仅为证明本方案的可实现性,终端设备的第二客户端也可以选用其他具有渲染功能的应用程序,一个纹理数组中包括的图集数量也可以为其他数值,此处举例不用于限定本方案。
本申请实施例中,在生成纹理数组之后,可以将纹理数组中每个图集对应的二进制数据记录至第一资源文件,从而通过第一资源文件获取目标场景所对应的纹理数组;并将第一索引数据记录至第二资源文件,从而通过第二资源文件获取目标场景所对应的第一索引数据。通过上述方式,提供了获取纹理数组以及第一索引数据的具体实现形式,提高了本方案的可实现性。
可选地,在上述图3对应的实施例的基础上,本申请实施例提供的场景渲染的方法一个可选实施例中,在根据纹理数组生成所述第一索引数据之后,方法还包括:
终端设备获取多个对象中的静态对象以及静态对象所对应的网格mesh数据,其中,mesh数据来源于第一渲染器组件;
终端设备将第一渲染器组件替换为第二渲染器组件,其中,第二渲染器组件用于指定纹理数组与材质之间的对应关系;
终端设备将静态对象所对应的mesh数据以及第一索引数据记录至第三资源文件;
终端设备根据纹理数组以及第一索引数据,对目标场景中的对象进行渲染,包括:
终端设备通过第三资源文件获取第一索引数据对应的静态对象的mesh数据;
终端设备采用静态对象的mesh数据以及纹理数组,对目标场景中的静态对象进行渲染,其中,静态对象的材质是通过第二渲染器组件指定的。
本实施例中,终端设备的第二客户端在根据纹理数组生成所述第一索引数据之后,还可以获取多个对象中的静态对象以及静态对象所对应的网格mesh数据,其中,终端设备的第二客户端获取的mesh数据来源于第一渲染器组件;静态对象的mesh数据包括静态对象的顶点数据、UV数据、颜色数据或其他属性数据等,是不会随着渲染组件的改变而改变的静态对象的固有属性信息,进一步的,顶点数据中可以包括渲染对象的顶点位置、顶点颜色、纹理坐标、法线等数据,UV数据指的是静态对象的顶点在图集中的坐标等。
终端设备的第二客户端将第一渲染组件替换为第二渲染组件,其中,第一渲染组件与第二渲染器组件为不同的渲染器组件,第二渲染器组件可以用于指定纹理数组与材质之间的对应关系,也即通过第二渲染器组件可以实现对纹理数组所对应的数组的选择作为示例,例如第一渲染器组件具体可以表现为精灵渲染器(Sprite Renderer),第二渲染组件可以具体表现为网格渲染器(Mesh Renderer),此次不用于限定第一渲染器组件和第二渲染器组建的具体表现形式,只要是第一渲染器组件为不支持自行指定静态对象的材质的渲染器组件,第二渲染器组件是支持自行指定静态对象的材质的渲染器组件即可。进而终端设备的第二客户端可以将静态对象对应的mesh数据以及所述静态对象对应的第一索引数据,也即静态对象对应的纹理数组中贴图的第一索引数据以及mesh数据记录至第三资源文件。进一步的,第一索引数据可以记录在顶点色数据中,具体记录在顶点色的不透明度(alpha)通道里;而终端设备的第二客户端可以通过(重新包装网格)repackmesh类来保存所述mesh数据和第一索引数据,也即第三资源文件是与repackmesh类对应的资源文件,其中,不透明度(alpha)通道指的是RGBA四通道中的A,RGBA四通道中每个通道都由8位二进制数表达,RGBA四通道中分别包括红色(Red,R)通道、绿色(Green,G)通道、蓝色(Blue,B)通道和不透明度(Alpha,通道)。
终端设备的第一客户端通过第二客户端对目标场景中的对象进行渲染时,终端设备的第一客户端可以获取到静态对象对应的纹理数组和第一索引数据后,从第三资源文件中获取与第一索引数据对应的静态对象的mesh数据,进而将静态对象对应的纹理数组、第一索引数据以及mesh数据传送给终端设备的第二客户端,由终端设备的第二客户端根据静态对象对应的纹理数组、第一索引数据以及mesh数据对目标场景中的静态对象进行渲染。具体的,由于终端设备的第二客户端中的渲染器组件已经替换成了第二渲染器组件,则终端设备的第二客户端可以通过第二渲染器组件指定采用哪种材质对目标场景中的静态对象进行渲染,在指定好材质之后,可以利用找色器对与静态对象对应的纹理数组进行统一找色。
为了进一步理解本方案,请参阅图7,图7为本申请实施例中场景渲染的方法中材质指定场景的一个界面示意图,图7中展示的是将第一渲染器组件替换为第二渲染器组件之后,用于接收新材质选择指令的一个界面,B1代表接收材质选择指令的按钮,当用户点击B1时,可以示出图7左侧的示图,图7左侧示意图的B2中示出了多种材质,从而用户可以基于B2接收用户输入的材质选择指令,例如对B2中示出的多种材质进行点击操作来输入材质选择指令,应当理解,图7中的举例仅为方便理解本方案,不用于限定本方案。
本申请实施例中,获取多个对象中的静态对象以及静态对象所对应的网格mesh数据,将第一渲染器组件替换为第二渲染器组件,将静态对象所对应的mesh数据以及第一索引数据记录至第三资源文件,从而可以通过第三资源文件获取第一索引数据对应的静态对象的mesh数据,进而采用静态对象的mesh数据以及纹理数组,对目标场景中的静态对象进行渲染,其中,静态对象的材质是通过第二渲染器组件指定的。通过上述方式,提供了静态对象对应的网格数据的具体获取方式,提高了本方案的完整性;且将第一渲染器组件替换为第二渲染器组件,可以实现用户对材质的自定义,从而提高了本方案的灵活性。
可选地,在上述图3对应的实施例的基础上,本申请实施例提供的场景渲染的方法一个可选实施例中,在终端设备根据纹理数组生成所述第一索引数据之后,方法还包括:
终端设备获取多个对象中的动态对象以及动态对象所对应的mesh数据;
终端设备将动态对象所对应的mesh数据以及第一索引数据记录至第四资源文件;
终端设备根据纹理数组以及第一索引数据,对目标场景中的对象进行渲染,包括:
终端设备通过第四资源文件获取第一索引数据对应的动态对象的mesh数据;
终端设备采用动态对象的mesh数据以及纹理数组,对目标场景中的动态对象进行渲染。
本实施例中,终端设备的第二客户端获取多个对象中的动态对象以及动态对象所对应的mesh数据,进而获取动态对象所对应的第一索引数据,其中,动态对象所对应的mesh数据可以来源于第二渲染器组件,动态对象所对应的mesh数据中包括的数据类型与静态对象所对应的mesh数据中包括的数据类型类似,此处不再赘述;动态对象所对应的第一索引数据指的是动态对象所对应的纹理数组中贴图所对应的第一索引数据。之后,终端设备的第二客户端可以将动态对象所对应的mesh数据以及第一索引数据记录至第四资源文件。更具体的,在动态对象是通过脊柱(Spine)生成的动态对象的情况下,由于Spine中的对象本身就用的MeshRender(也即第二渲染组件的一种示例),终端设备的第二客户端在运行时加载动态对象时,从数据类SpriteRepackData中查找SliceIndex(也即与动态对象对应的第一索引数据),并保存到AtlasAsset中,其中,AtlasAsset指的是代码,可以为每个贴图对应的索引数据均存储在一个采样文件中,则AtlasAsset中可以应用用于存储动态对象对应的第一索引数据的文件名称,然后在动态对象对应的动画更新后在生成顶点数据时把获取到的SliceIndex写入顶点色的alpha通道中。
终端设备的第二客户端在根据纹理数组以及第一索引数据,对目标场景中的对象进行渲染时,可以为从第四资源文件中获取第一索引数据对应的动态对象的mesh数据,对目标场景中的动态对象进行渲染,终端设备的第二客户端执行渲染操作的具体步骤可参阅上述实施例中的描述。更具体的,终端设备的第二客户端指定材质的过程可以为,终端设备的第二客户端在运行过程中删除所述静态对象对应的纹理数组的原始材质引用,并重新选择新的材质,在材质选择使用脊柱(Spine)中的材质的情况下,只有在终端设备的第二客户端处于运行状态的时候才能执行材质,采用上述方案,可以保证在这种特殊场景下的可实现性。
为了进一步理解本方案,请参阅图8,图8为本申请实施例中场景渲染的方法一个实施例示意图,图8中示出的为在终端设备的第一客户端对目标场景中的对象进行渲染之前,终端设备的第二客户端执行的步骤,具体包括:C1、终端设备的第二客户端获取与目标场景中的对象对应的所有贴图,其中,所述对象包括动态对象和静态对象;C2、终端设备的第二客户端利用第一打包纹理器对第一贴图集合进行合成处理,得到多个第一图集,以及利用第二打包纹理器对第二贴图集合进行合成处理,得到多个第二图集,其中,第一贴图集合包括与静态对象对应的多个第一贴图,第二贴图集合包括与动态对象对应的多个第二贴图;C3、终端设备的第二客户端根据多个第一图集和多个第二图集生成纹理数据,以及,为每个纹理数组指定材质;C4、终端设备的第二客户端将纹理数组记录至第一资源文件,以及,将第一索引数据记录至第二资源文件,其中,第一索引数据用于指示在所述纹理数组中贴图与对象之间的对应关系;C5、终端设备的第二客户端获取多个对象中的静态对象以及静态对象所对应的网格mesh数据,其中,mesh数据来源于第一渲染器组件;C6、终端设备的第二客户端将针对静态对象的第一渲染器组件替换为第二渲染器组件,其中,第二渲染器组件用于指定纹理数组与材质之间的对应关系;C7、终端设备的第二客户端将静态对象所对应的mesh数据以及第一索引数据记录至第三资源文件;C8、终端设备的第二客户端获取多个对象中的动态对象以及动态对象所对应的mesh数据;C9、终端设备的第二客户端将动态对象所对应的mesh数据以及第一索引数据记录至第四资源文件。应当理解,本申请实施例中不限定步骤C5至C7与步骤C8至C9之间的执行顺序,可以先执行步骤C5至C7,再执行步骤C8至C9;也可以先执行步骤C8至C9,再执行步骤C5至C7。图8中的示例仅为方便理解本方案,不用于限定本方案。
此外,请参阅图9,图9为本申请实施例中场景渲染的方法中第二客户端的一个菜单界面示意图,图9中以终端设备的第二客户端选用Unity,并对目标场景中的静态对象进行渲染为例。图9的菜单界面示意图中示出了5个菜单项,分别为执行渲染操作的几个步骤,步骤0:将目标场景和目标场景中的多个静态对象加载进Unity;步骤1:由于原始对应关系中是静态对象对贴图进行引用,将其替换成静态对应对纹理数组的应用;步骤2:将静态对象引用的贴图置为空,其中,步骤2为可选步骤;步骤3:在Unity中重建材质,具体可以为通过第二渲染组件重新为静态对象指定材质;步骤4:在Unity中重建静态对象的网格mesh数据,应当理解,图9中的示例仅为方便理解本方案,不用于限定本方案。
本申请实施例中,获取多个对象中的动态对象以及动态对象所对应的网格mesh数据,将动态对象所对应的mesh数据以及第一索引数据记录至第四资源文件,从而可以通过第四资源文件获取动态对象的mesh数据,进而采用动态对象的mesh数据以及纹理数组,对目标场景中的动态对象进行渲染。通过上述方式,提供了动态对象对应的网格数据的具体获取方式,提高了本方案的完整性。
可选地,在上述图3对应的实施例的基础上,本申请实施例提供的场景渲染的方法一个可选实施例中,终端设备获取目标场景所对应的纹理数组以及索引数据之前,方法还包括:
终端设备通过应用程序编程接口API检测终端设备是否支持纹理数组;
若终端设备支持纹理数组,则终端设备执行获取目标场景所对应的纹理数组以及索引数据的步骤;
若终端设备不支持纹理数组,则终端设备将终端设备所对应的设备信息添加至黑名单,其中,黑名单包括至少一个不支持纹理数组的设备信息。
本实施例中,终端设备的第一客户端在获取目标场景所对应的纹理数组以及索引数据之前,还可以通过程序编程接口API检测终端设备是否支持纹理数组,若终端设备支持纹理数组,则终端设备执行获取目标场景所对应的纹理数组以及索引数据的步骤;若终端设备不支持纹理数组,则终端设备将终端设备所对应的设备信息添加至黑名单,可选的,终端设备的第一客户端还可以反馈至终端设备的第一客户端的服务器侧,以使服务器对黑名单进行更新。其中,黑名单包括至少一个不支持纹理数组的设备信息,其中,终端设备的设备信息中可以包括终端设备的设备品牌、设备型号或者终端设备上安装的操作系统的操作系统类型、操作系统版本等等;白名单上的至少一个支持纹理数组的设备信息可以为本领域技术人员预先测试好存储在终端设备的第一客户端中的。具体的,可以为终端设备的第一客户端通过API访问纹理数组类型的数据,若访问成功,则视为当前终端设备支持纹理数组;若访问失败,则视为当前终端设备不支持纹理数组。
本申请实施例中,在获取目标场景对应的纹理数组以及索引数据之前,可以先通过API接口检测终端设备是否支持纹理数据,如果支持的话,则继续执行获取目标场景对应的纹理数组以及索引数据步骤,如果不支持的话,则将终端设备所对应的设备信息添加至黑名单中。通过上述方式,在对目标场景进行渲染之前,会通过API接口检测是否支持纹理数组,只有在支持的情况下才会进一步执行对目标场景的渲染操作,从而避免在对目标场景进行渲染的过程中出现卡顿等故障;此外,在不支持的情况下,会将终端设备的设备信息加入到黑名单中,从而在下一次执行渲染操作时,不需要再执行检测操作,提高了终端设备执行渲染操作的效率。
可选地,在上述图3对应的实施例的基础上,本申请实施例提供的场景渲染的方法一个可选实施例中,终端设备获取目标场景所对应的纹理数组以及索引数据之前,方法还包括:
终端设备检测白名单中是否存在终端设备所对应的设备信息,其中,白名单包括至少一个支持纹理数组的设备信息;
若白名单中存在终端设备所对应的设备信息,则终端设备执行获取目标场景所对应的纹理数组以及索引数据的步骤;
若白名单中不存在终端设备所对应的设备信息,则终端设备通过API检测终端设备是否支持纹理数组;
若终端设备支持纹理数组,则终端设备将终端设备所对应的设备信息添加至白名单。
本实施例中,终端设备上可以存储有当前终端设备所对应的设备信息,终端设备的第一客户端在获取目标场景所对应的纹理数组以及索引数据之前,还会预先获取白名单中包括的至少一个支持纹理数组的设备信息,并检测白名单中是否存在当前终端设备所对应的设备信息,若白名单中存在当前终端设备所对应的设备信息,则证明当前终端设备支持纹理数组,从而开始执行获取目标场景所对应的纹理数组以及索引数据的步骤,如果白名单中不存在终端设备所对应的设备信息,则终端设备可以进一步的通过API检测当前终端设备是否支持纹理数组,由于通过API检测当前终端设备是否支持纹理数组的具体实现方式已经在上述实施例中进行了详细描述,此处不再赘述。如果通过API检测终端设备支持纹理数组,则将当前终端设备的设备信息添加到白名单中。
本申请实施例中,当白名单中不存在当前终端设备的设备信息时,可以进一步通过API检测当前终端设备是否支持纹理数组,并在通过API确定当前终端设备支持纹理数组的情况下,将当前终端设备的设备信息加入白名单中,也即通过白名单和API相结合的方式,从而保证了支持纹理数组的终端设备都可以使用到本申请实施例提供的场景渲染方法,保证了本方案的全面性。
下面对本申请中的场景渲染装置进行详细描述,请参阅图10,图10为本申请实施例中场景渲染装置一个实施例示意图,场景渲染装置20包括:
获取单元201,用于获取目标场景所对应的场景渲染指令,其中,目标场景包括多个对象;
获取单元201,还用于当调用获取单元201获取的场景渲染指令对目标场景进行渲染时,获取目标场景所对应的纹理数组,其中,纹理数组至少包括七个图集,每个图集包括多个贴图;
获取单元201,还用于获取目标场景所对应的第一索引数据,其中,第一索引数据用于指示在获取单元201获取的纹理数组中贴图与对象之间的对应关系;
渲染单元202,用于根据获取单元201获取的纹理数组以及第一索引数据,对目标场景中的对象进行渲染,其中,对象与贴图具有对应关系。
本实施例中,获取单元201获取目标场景所对应的场景渲染指令,其中,目标场景包括多个对象,当调用获取单元201获取的场景渲染指令对目标场景进行渲染时,获取目标场景所对应的纹理数组,其中,纹理数组至少包括七个图集,每个图集包括多个贴图,还获取目标场景所对应的第一索引数据,其中,第一索引数据用于指示在获取单元201获取的纹理数组中贴图与对象之间的对应关系;渲染单元202根据获取单元201获取的纹理数组以及第一索引数据,对目标场景中的对象进行渲染,其中,对象与贴图具有对应关系。
本申请实施例中,获取单元201获取目标场景所对应的场景渲染指令,当调用场景渲染指令对目标场景进行渲染时,获取目标场景所对应的纹理数组,其中,目标场景包括多个对象,纹理数组至少包括七个图集,每个图集包括多个贴图,对象与贴图具有对应关系;获取目标场景所对应的第一索引数据,其中,第一索引数据用于指示在纹理数组中贴图与对象之间的对应关系;渲染单元202根据纹理数组以及第一索引数据,对目标场景中的对象进行渲染。通过上述方式,采用纹理数组可以对至少七个图集进行组合,而不仅限于CubeMap的六个图集,因此,一次Drawcall中可对该纹理数组内的所有贴图进行绘制,从而减少了Drawcall次数,进而提升了CPU的性能,由此提升了终端设备的运行效率。
可选地,在上述图10所对应的实施例的基础上,请参阅图11,图11为本申请实施例中场景渲染装置的一个实施例示意图,本申请实施例提供的场景渲染装置20的另一实施例中,
获取单元201,还用于获取目标场景所对应的多个对象,其中,多个对象包括静态对象以及动态对象中的至少一种;
场景渲染装置还包括:生成单元203,用于根据获取单元201获取的多个对象生成纹理数组,其中,纹理数组与材质具有对应关系;
生成单元203,还用于根据生成单元203生成的纹理数组生成第一索引数据;
场景渲染装置还包括:替换单元204,用于将多个对象所对应的第二索引数据替换为生成单元203生成的第一索引数据,其中,第二索引数据用于指示在对象与贴图之间原始的对应关系。
本申请实施例中,在执行渲染操作之前,获取单元201可以获取目标场景所对应的多个对象,生成单元203根据多个对象生成纹理数组,根据纹理数组生成第一索引数据,之后替换单元204将多个对象所对应的第二索引数据替换为第一索引数据,其中,第二索引数据用于指示在对象与贴图之间原始的对应关系,通过上述方式,通过修改索引数据的方式将原有的纹理对象替换为本申请中的纹理数组,也即通过修改索引数据的形式实现了将原有固定数量的图集替换为本申请中的至少七个图集,提高了本方案的可执行性;且操作简单,避免了其他程序的过多改动,也即避免了复杂度的提升;此外,替换索引数据的形式并不会需要第二客户端的服务器侧作相应改动,从而保证了避免了给第二客户端的服务器侧增加额外工作量,进一步避免了本方案复杂度的提升。
可选地,在上述图10以及图11所对应的实施例的基础上,本申请实施例提供的场景渲染装置20的另一实施例中,生成单元203,具体用于:
获取多个对象中的静态对象集合,其中,静态对象集合包括至少一个静态对象;
根据静态对象集合获取第一贴图集合,其中,第一贴图集合包括至少一个第一贴图,第一贴图与静态对象具有对应关系;
通过第一纹理打包器对第一贴图集合进行处理,得到至少一个第一图集;
获取多个对象中的动态对象集合,其中,动态对象集合包括至少一个动态对象;
根据动态对象集合获取第二贴图集合,其中,第二贴图集合包括至少一个第二贴图,第二贴图与动态对象具有对应关系,第二贴图包括多个子贴图;
通过第二纹理打包器对第二贴图集合进行合成处理,得到至少一个第二图集;
根据至少一个第一图集以及至少一个第二图集,生成纹理数组。
本申请实施例中,生成单元203分别获取多个对象中的静态对象集合以及动态对象集合,根据静态对象集合获取第一贴图集合,并通过第一纹理打包器对第一贴图集合进行处理,得到至少一个第一图集,根据动态对象集合获取第二贴图集合,并通过第二纹理打包器对第二贴图集合进行合成处理,得到至少一个第二图集,进而根据至少一个第一图集以及至少一个第二图集,生成纹理数组。通过上述方式,提供了根据目标场景中的静态对象和动态对象生成纹理数据的具体实现方案,从而提高了本方案的可实现性;此外,对静态对象采用第一纹理打包器,对动态对象使用第二纹理打包器,不同类型的对象采用不同类型的纹理打包器,有利于提高打包过程的精准化。
可选地,在上述图10以及图11所对应的实施例的基础上,本申请实施例提供的场景渲染装置20的另一实施例中,生成单元203,具体用于:
获取多个对象中的静态对象集合,其中,静态对象集合包括多个静态对象;
根据静态对象集合获取第一贴图集合,其中,第一贴图集合包括多个第一贴图,第一贴图与静态对象具有对应关系;
通过第一纹理打包器对第一贴图集合进行合成处理,得到多个第一图集;
根据多个第一图集生成纹理数组。
本申请实施例中,通过上述方式,提供了根据目标场景中的静态对象生成纹理数据的具体实现方案,从而提高了本方案的可实现性,也扩展了本方案的应用场景。
可选地,在上述图10以及图11所对应的实施例的基础上,本申请实施例提供的场景渲染装置20的另一实施例中,生成单元203,具体用于:
获取多个对象中的动态对象集合,其中,动态对象集合包括多个动态对象;
根据动态对象集合获取第二贴图集合,其中,第二贴图集合包括多个第二贴图,第二贴图与动态对象具有对应关系,第二贴图包括多个子贴图;
通过第二纹理打包器对第二贴图集合进行合成处理,得到多个第二图集;
根据多个第二图集生成纹理数组。
本申请实施例中,通过上述方式,提供了根据目标场景中的动态对象生成纹理数据的具体实现方案,从而提高了本方案的可实现性,也扩展了本方案的应用场景。
可选地,在上述图10以及图11所对应的实施例的基础上,本申请实施例提供的场景渲染装置20的另一实施例中,场景渲染装置还包括:记录单元205,用于将纹理数组中每个图集对应的二进制数据记录至第一资源文件;
获取单元201,具体用于通过记录单元205记录的第一资源文件获取目标场景所对应的纹理数组;
记录单元205,还用于将第一索引数据记录至第二资源文件;
获取单元201,具体用于通过第二资源文件获取目标场景所对应的第一索引数据。
本申请实施例中,在生成纹理数组之后,记录单元205可以将纹理数组中每个图集对应的二进制数据记录至第一资源文件,从而获取单元201通过第一资源文件获取目标场景所对应的纹理数组;记录单元205将第一索引数据记录至第二资源文件,从而获取单元201通过第二资源文件获取目标场景所对应的第一索引数据。通过上述方式,提供了获取纹理数组以及第一索引数据的具体实现形式,提高了本方案的可实现性。
可选地,在上述图10以及图11所对应的实施例的基础上,本申请实施例提供的场景渲染装置20的另一实施例中,获取单元201,还用于获取多个对象中的静态对象以及静态对象所对应的网格mesh数据,其中,mesh数据来源于第一渲染器组件;
场景渲染装置还包括:替换单元204,用于将第一渲染器组件替换为第二渲染器组件,其中,第二渲染器组件用于指定纹理数组与材质之间的对应关系;
场景渲染装置还包括:记录单元205,用于将获取单元201获取的静态对象所对应的mesh数据以及第一索引数据记录至第三资源文件;
渲染单元202,具体用于:
通过第三资源文件获取第一索引数据对应的静态对象的mesh数据;
采用静态对象的mesh数据以及纹理数组,对目标场景中的静态对象进行渲染,其中,静态对象的材质是通过第二渲染器组件指定的。
本申请实施例中,获取单元201获取多个对象中的静态对象以及静态对象所对应的网格mesh数据,替换单元204将第一渲染器组件替换为第二渲染器组件,记录单元205将静态对象所对应的mesh数据以及第一索引数据记录至第三资源文件,从而渲染单元202可以通过第三资源文件获取第一索引数据对应的静态对象的mesh数据,进而采用静态对象的mesh数据以及纹理数组,对目标场景中的静态对象进行渲染,其中,静态对象的材质是通过第二渲染器组件指定的。通过上述方式,提供了静态对象对应的网格数据的具体获取方式,提高了本方案的完整性;且将第一渲染器组件替换为第二渲染器组件,可以实现用户对材质的自定义,从而提高了本方案的灵活性。
可选地,在上述图10以及图11所对应的实施例的基础上,本申请实施例提供的场景渲染装置20的另一实施例中,获取单元201,还用于获取多个对象中的动态对象以及动态对象所对应的mesh数据;
场景渲染装置还包括:记录单元205,用于将获取单元201获取的动态对象所对应的mesh数据以及第一索引数据记录至第四资源文件;
渲染单元202,具体用于:
通过第四资源文件获取第一索引数据对应的动态对象的mesh数据;
采用动态对象的mesh数据以及纹理数组,对目标场景中的静态对象进行渲染。
本申请实施例中,获取单元201获取多个对象中的动态对象以及动态对象所对应的网格mesh数据,记录单元205将动态对象所对应的mesh数据以及第一索引数据记录至第四资源文件,从而渲染单元202可以通过第四资源文件获取动态对象的mesh数据,进而采用动态对象的mesh数据以及纹理数组,对目标场景中的动态对象进行渲染。通过上述方式,提供了动态对象对应的网格数据的具体获取方式,提高了本方案的完整性。
可选地,在上述图10以及图11所对应的实施例的基础上,本申请实施例提供的场景渲染装置20的另一实施例中,场景渲染装置还包括:检测单元206,用于通过应用程序编程接口API检测终端设备是否支持纹理数组;
执行单元207,用于在终端设备支持纹理数组的情况下,执行获取目标场景所对应的纹理数组以及索引数据的步骤;
添加单元208,用于在终端设备不支持纹理数组的情况下,将终端设备所对应的设备信息添加至黑名单,其中,黑名单包括至少一个不支持纹理数组的设备信息。
本申请实施例中,在获取目标场景对应的纹理数组以及索引数据之前,检测单元206先通过API接口检测终端设备是否支持纹理数据,如果支持的话,则继续执行获取目标场景对应的纹理数组以及索引数据步骤,如果不支持的话,则将终端设备所对应的设备信息添加至黑名单中。通过上述方式,在对目标场景进行渲染之前,会通过API接口检测是否支持纹理数组,只有在支持的情况下才会进一步执行对目标场景的渲染操作,从而避免在对目标场景进行渲染的过程中出现卡顿等故障;此外,在不支持的情况下,会将终端设备的设备信息加入到黑名单中,从而在下一次执行渲染操作时,不需要再执行检测操作,提高了终端设备执行渲染操作的效率。
可选地,在上述图10以及图11所对应的实施例的基础上,本申请实施例提供的场景渲染装置20的另一实施例中,场景渲染装置还包括:检测单元206,用于检测白名单中是否存在终端设备所对应的设备信息,其中,白名单包括至少一个支持纹理数组的设备信息;
执行单元207,用于在白名单中存在终端设备所对应的设备信息的情况下,执行获取目标场景所对应的纹理数组以及索引数据的步骤;
检测单元206,用于在白名单中不存在终端设备所对应的设备信息的情况下,通过API检测终端设备是否支持纹理数组;
添加单元208,用于在终端设备支持纹理数组的情况下,将终端设备所对应的设备信息添加至白名单。
本申请实施例中,当白名单中不存在当前终端设备的设备信息时,检测单元206可以进一步通过API检测当前终端设备是否支持纹理数组,并在通过API确定当前终端设备支持纹理数组的情况下,添加单元208将当前终端设备的设备信息加入白名单中,也即通过白名单和API相结合的方式,从而保证了支持纹理数组的终端设备都可以使用到本申请实施例提供的场景渲染方法,保证了本方案的全面性。
接下来,本申请实施例还提供了一种终端设备,所述终端设备上可以部署有上述图10或图11对应的实施例中提供的场景渲染装置,用于执行图3至图8对应的实施例中终端设备执行的步骤。如图12所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端设备可以为包括手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、销售终端(Point of Sales,POS)、车载电脑等任意终端设备,以属性信息展示装置为手机为例:
图12示出的是与本申请实施例提供的属性信息展示装置相关的手机的部分结构的框图。参考图12,手机包括:射频(Radio Frequency,RF)电路310、存储器320、输入单元330、显示单元340、传感器330、音频电路360、无线保真(wireless fidelity,WiFi)模块370、处理器380、以及电源390等部件。本领域技术人员可以理解,图12中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图12对手机的各个构成部件进行具体的介绍:
RF电路310可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器380处理;另外,将设计上行的数据发送给基站。通常,RF电路310包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路310还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器320可用于存储软件程序以及模块,处理器380通过运行存储在存储器320的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元330可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元330可包括触控面板331以及其他输入设备332。触控面板331,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板331上或在触控面板331附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板331可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器380,并能接收处理器380发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板331。除了触控面板331,输入单元330还可以包括其他输入设备332。具体地,其他输入设备332可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元340可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元340可包括显示面板341,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板341。进一步的,触控面板331可覆盖显示面板341,当触控面板331检测到在其上或附近的触摸操作后,传送给处理器380以确定触摸事件的类型,随后处理器380根据触摸事件的类型在显示面板341上提供相应的视觉输出。虽然在图12中,触控面板331与显示面板341是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板331与显示面板341集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器330,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板341的亮度,接近传感器可在手机移动到耳边时,关闭显示面板341和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路360、扬声器361,传声器362可提供用户与手机之间的音频接口。音频电路360可将接收到的音频数据转换后的电信号,传输到扬声器361,由扬声器361转换为声音信号输出;另一方面,传声器362将收集的声音信号转换为电信号,由音频电路360接收后转换为音频数据,再将音频数据输出处理器380处理后,经RF电路310以发送给比如另一手机,或者将音频数据输出至存储器320以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块370可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图12示出了WiFi模块370,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器380是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器320内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器380可包括一个或多个处理单元;可选的,处理器380可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器380中。
手机还包括给各个部件供电的电源390(比如电池),可选的,电源可以通过电源管理系统与处理器380逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像模块、蓝牙模块等,在此不再赘述。
在本申请实施例中,该终端设备所包括的处理器380还用于执行如下步骤:
获取目标场景所对应的场景渲染指令,其中,所述目标场景包括多个对象;
当调用所述场景渲染指令对所述目标场景进行渲染时,获取所述目标场景所对应的纹理数组,其中,所述纹理数组至少包括七个图集,每个图集包括多个贴图;
获取所述目标场景所对应的第一索引数据,其中,所述第一索引数据用于指示在所述纹理数组中贴图与对象之间的对应关系;
根据所述纹理数组以及所述第一索引数据,对所述目标场景中的对象进行渲染,其中,所述对象与所述贴图具有对应关系。
可选地,处理器380还用于:
获取所述目标场景所对应的所述多个对象,其中,所述多个对象包括静态对象以及动态对象中的至少一种;
根据所述多个对象生成所述纹理数组,其中,所述纹理数组与材质具有对应关系;
根据所述纹理数组生成所述第一索引数据;
将所述多个对象所对应的第二索引数据替换为所述第一索引数据,其中,所述第二索引数据用于指示在对象与贴图之间原始的对应关系。
可选地,处理器380具体用于:
获取所述多个对象中的静态对象集合,其中,所述静态对象集合包括至少一个静态对象;
根据所述静态对象集合获取第一贴图集合,其中,所述第一贴图集合包括至少一个第一贴图,所述第一贴图与所述静态对象具有对应关系;
通过第一纹理打包器对所述第一贴图集合进行处理,得到至少一个第一图集;
获取所述多个对象中的动态对象集合,其中,所述动态对象集合包括至少一个动态对象;
根据所述动态对象集合获取第二贴图集合,其中,所述第二贴图集合包括至少一个第二贴图,所述第二贴图与所述动态对象具有对应关系,所述第二贴图包括多个子贴图;
通过第二纹理打包器对所述第二贴图集合进行合成处理,得到至少一个第二图集;
根据所述至少一个第一图集以及所述至少一个第二图集,生成所述纹理数组。
可选地,处理器380具体用于:
获取所述多个对象中的静态对象集合,其中,所述静态对象集合包括多个静态对象;
根据所述静态对象集合获取第一贴图集合,其中,所述第一贴图集合包括多个第一贴图,所述第一贴图与所述静态对象具有对应关系;
通过第一纹理打包器对所述第一贴图集合进行合成处理,得到多个第一图集;
根据所述多个第一图集生成所述纹理数组。
可选地,处理器380具体用于:
获取所述多个对象中的动态对象集合,其中,所述动态对象集合包括多个动态对象;
根据所述动态对象集合获取第二贴图集合,其中,所述第二贴图集合包括多个第二贴图,所述第二贴图与所述动态对象具有对应关系,所述第二贴图包括多个子贴图;
通过第二纹理打包器对所述第二贴图集合进行合成处理,得到多个第二图集;
根据所述多个第二图集生成所述纹理数组。
可选地,处理器380还用于:
将所述纹理数组中每个图集对应的二进制数据记录至第一资源文件;
所述获取所述目标场景所对应的纹理数组,包括:
通过所述第一资源文件获取所述目标场景所对应的所述纹理数组;
将所述第一索引数据记录至第二资源文件;
所述获取所述目标场景所对应的第一索引数据,包括:
通过所述第二资源文件获取所述目标场景所对应的所述第一索引数据。
可选地,处理器380还用于:
获取所述多个对象中的静态对象以及所述静态对象所对应的网格mesh数据,其中,所述mesh数据来源于第一渲染器组件;
将所述第一渲染器组件替换为第二渲染器组件,其中,所述第二渲染器组件用于指定所述纹理数组与材质之间的对应关系;
将所述静态对象所对应的mesh数据以及所述第一索引数据记录至第三资源文件;
可选地,处理器380具体用于:
通过所述第三资源文件获取所述第一索引数据对应的所述静态对象的mesh数据;
采用所述静态对象的mesh数据以及所述纹理数组,对所述目标场景中的静态对象进行渲染,其中,所述静态对象的材质是通过所述第二渲染器组件指定的。
可选地,处理器380还用于:
获取所述多个对象中的动态对象以及所述动态对象所对应的mesh数据;
将所述动态对象所对应的mesh数据以及所述第一索引数据记录至第四资源文件;
可选地,处理器380具体用于:
通过所述第四资源文件获取所述第一索引数据对应的所述动态对象的mesh数据;
采用所述动态对象的mesh数据以及所述纹理数组,对所述目标场景中的静态对象进行渲染。
可选地,处理器380还用于:
通过应用程序编程接口API检测终端设备是否支持所述纹理数组;
若所述终端设备支持所述纹理数组,则执行所述获取所述目标场景所对应的纹理数组以及索引数据的步骤;
若所述终端设备不支持所述纹理数组,则将所述终端设备所对应的设备信息添加至黑名单,其中,所述黑名单包括至少一个不支持所述纹理数组的设备信息。
可选地,处理器380还用于:
检测白名单中是否存在终端设备所对应的设备信息,其中,所述白名单包括至少一个支持所述纹理数组的设备信息;
若所述白名单中存在所述终端设备所对应的设备信息,则执行所述获取所述目标场景所对应的纹理数组以及索引数据的步骤;
若所述白名单中不存在所述终端设备所对应的设备信息,则通过API检测所述终端设备是否支持所述纹理数组;
若所述终端设备支持所述纹理数组,则将所述终端设备所对应的设备信息添加至所述白名单。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如前述图3至图8所示实施例描述的方法中终端设备所执行的步骤。
本申请实施例中还提供一种包括程序的计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图3至图8所示实施例描述的方法中终端设备所执行的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (12)
1.一种场景渲染的方法,其特征在于,包括:
获取目标场景所对应的场景渲染指令,其中,所述目标场景包括多个对象;
当调用所述场景渲染指令对所述目标场景进行渲染时,获取所述目标场景所对应的纹理数组,其中,所述纹理数组至少包括七个图集,每个图集包括多个贴图;
获取所述目标场景所对应的第一索引数据,其中,所述第一索引数据用于指示在所述纹理数组中贴图与对象之间的对应关系;
根据所述纹理数组以及所述第一索引数据,对所述目标场景中的对象进行渲染,其中,所述对象与所述贴图具有对应关系;
所述获取目标场景所对应的场景渲染指令之前,所述方法还包括:
获取所述目标场景所对应的所述多个对象,其中,所述多个对象包括静态对象以及动态对象中的至少一种;
根据所述多个对象生成所述纹理数组,其中,所述纹理数组与材质具有对应关系;
根据所述纹理数组生成所述第一索引数据;
将所述多个对象所对应的第二索引数据替换为所述第一索引数据,其中,所述第二索引数据用于指示在对象与贴图之间原始的对应关系;
所述将所述多个对象所对应的第二索引数据替换为所述第一索引数据,包括:
将所述多个对象所对应的第二索引数据对应的贴图存储位置修改为所述第一索引数据对应的贴图存储位置。
2.根据权利要求1所述的方法,其特征在于,所述根据所述多个对象生成所述纹理数组,包括:
获取所述多个对象中的静态对象集合,其中,所述静态对象集合包括至少一个静态对象;
根据所述静态对象集合获取第一贴图集合,其中,所述第一贴图集合包括至少一个第一贴图,所述第一贴图与所述静态对象具有对应关系;
通过第一纹理打包器对所述第一贴图集合进行处理,得到至少一个第一图集;
获取所述多个对象中的动态对象集合,其中,所述动态对象集合包括至少一个动态对象;
根据所述动态对象集合获取第二贴图集合,其中,所述第二贴图集合包括至少一个第二贴图,所述第二贴图与所述动态对象具有对应关系,所述第二贴图包括多个子贴图;
通过第二纹理打包器对所述第二贴图集合进行合成处理,得到至少一个第二图集;
根据所述至少一个第一图集以及所述至少一个第二图集,生成所述纹理数组。
3.根据权利要求1所述的方法,其特征在于,所述根据所述多个对象生成所述纹理数组,包括:
获取所述多个对象中的静态对象集合,其中,所述静态对象集合包括多个静态对象;
根据所述静态对象集合获取第一贴图集合,其中,所述第一贴图集合包括多个第一贴图,所述第一贴图与所述静态对象具有对应关系;
通过第一纹理打包器对所述第一贴图集合进行合成处理,得到多个第一图集;
根据所述多个第一图集生成所述纹理数组。
4.根据权利要求1所述的方法,其特征在于,所述根据所述多个对象生成所述纹理数组,包括:
获取所述多个对象中的动态对象集合,其中,所述动态对象集合包括多个动态对象;
根据所述动态对象集合获取第二贴图集合,其中,所述第二贴图集合包括多个第二贴图,所述第二贴图与所述动态对象具有对应关系,所述第二贴图包括多个子贴图;
通过第二纹理打包器对所述第二贴图集合进行合成处理,得到多个第二图集;
根据所述多个第二图集生成所述纹理数组。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述根据所述多个对象生成所述纹理数组之后,所述方法还包括:
将所述纹理数组中每个图集对应的二进制数据记录至第一资源文件;
所述获取所述目标场景所对应的纹理数组,包括:
通过所述第一资源文件获取所述目标场景所对应的所述纹理数组;
所述将所述多个对象所对应的第二索引数据替换为所述第一索引数据之后,所述方法还包括:
将所述第一索引数据记录至第二资源文件;
所述获取所述目标场景所对应的第一索引数据,包括:
通过所述第二资源文件获取所述目标场景所对应的所述第一索引数据。
6.根据权利要求1所述的方法,其特征在于,在根据所述纹理数组生成所述第一索引数据之后,所述方法还包括:
获取所述多个对象中的静态对象以及所述静态对象所对应的网格mesh数据,其中,所述mesh数据来源于第一渲染器组件;
将所述第一渲染器组件替换为第二渲染器组件,其中,所述第二渲染器组件用于指定所述纹理数组与材质之间的对应关系;
将所述静态对象所对应的mesh数据以及所述第一索引数据记录至第三资源文件;
所述根据所述纹理数组以及所述第一索引数据,对所述目标场景中的对象进行渲染,包括:
通过所述第三资源文件获取所述第一索引数据对应的所述静态对象的mesh数据;
采用所述静态对象的mesh数据以及所述纹理数组,对所述目标场景中的静态对象进行渲染,其中,所述静态对象的材质是通过所述第二渲染器组件指定的。
7.根据权利要求1所述的方法,其特征在于,在根据所述纹理数组生成所述第一索引数据之后,所述方法还包括:
获取所述多个对象中的动态对象以及所述动态对象所对应的mesh数据;
将所述动态对象所对应的mesh数据以及所述第一索引数据记录至第四资源文件;
所述根据所述纹理数组以及所述第一索引数据,对所述目标场景中的对象进行渲染,包括:
通过所述第四资源文件获取所述第一索引数据对应的所述动态对象的mesh数据;
采用所述动态对象的mesh数据以及所述纹理数组,对所述目标场景中的动态对象进行渲染。
8.根据权利要求1所述的方法,其特征在于,所述获取所述目标场景所对应的纹理数组以及索引数据之前,所述方法还包括:
通过应用程序编程接口API检测终端设备是否支持所述纹理数组;
若所述终端设备支持所述纹理数组,则执行所述获取所述目标场景所对应的纹理数组以及索引数据的步骤;
若所述终端设备不支持所述纹理数组,则将所述终端设备所对应的设备信息添加至黑名单,其中,所述黑名单包括至少一个不支持所述纹理数组的设备信息。
9.根据权利要求1所述的方法,其特征在于,所述获取所述目标场景所对应的纹理数组以及索引数据之前,所述方法还包括:
检测白名单中是否存在终端设备所对应的设备信息,其中,所述白名单包括至少一个支持所述纹理数组的设备信息;
若所述白名单中存在所述终端设备所对应的设备信息,则执行所述获取所述目标场景所对应的纹理数组以及索引数据的步骤;
若所述白名单中不存在所述终端设备所对应的设备信息,则通过API检测所述终端设备是否支持所述纹理数组;
若所述终端设备支持所述纹理数组,则将所述终端设备所对应的设备信息添加至所述白名单。
10.一种场景渲染装置,其特征在于,包括:
获取单元,用于获取目标场景所对应的场景渲染指令,其中,所述目标场景包括多个对象;
所述获取单元,还用于当调用所述获取单元获取的场景渲染指令对所述目标场景进行渲染时,获取所述目标场景所对应的纹理数组,其中,所述纹理数组至少包括七个图集,每个图集包括多个贴图;
所述获取单元,还用于获取所述目标场景所对应的第一索引数据,其中,所述第一索引数据用于指示在所述获取单元获取的纹理数组中贴图与对象之间的对应关系;
渲染单元,用于根据所述获取单元获取的所述纹理数组以及所述第一索引数据,对所述目标场景中的对象进行渲染,其中,所述对象与所述贴图具有对应关系;
所述获取单元,还用于所述获取目标场景所对应的场景渲染指令之前,获取所述目标场景所对应的所述多个对象,其中,所述多个对象包括静态对象以及动态对象中的至少一种;
生成单元,用于根据所述多个对象生成所述纹理数组,其中,所述纹理数组与材质具有对应关系;
所述生成单元,还用于根据所述纹理数组生成所述第一索引数据;
替换单元,用于将所述多个对象所对应的第二索引数据替换为所述第一索引数据,其中,所述第二索引数据用于指示在对象与贴图之间原始的对应关系;
所述替换单元,具体用于将所述多个对象所对应的第二索引数据对应的贴图存储位置修改为所述第一索引数据对应的贴图存储位置。
11.一种终端设备,其特征在于,包括:存储器、收发器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,包括如下步骤:
获取目标场景所对应的场景渲染指令,其中,所述目标场景包括多个对象;
当调用所述场景渲染指令对所述目标场景进行渲染时,获取所述目标场景所对应的纹理数组,其中,所述纹理数组至少包括七个图集,每个图集包括多个贴图;
获取所述目标场景所对应的第一索引数据,其中,所述第一索引数据用于指示在所述纹理数组中贴图与对象之间的对应关系;
根据所述纹理数组以及所述第一索引数据,对所述目标场景中的对象进行渲染,其中,所述对象与所述贴图具有对应关系;
所述获取目标场景所对应的场景渲染指令之前,获取所述目标场景所对应的所述多个对象,其中,所述多个对象包括静态对象以及动态对象中的至少一种;
根据所述多个对象生成所述纹理数组,其中,所述纹理数组与材质具有对应关系;
根据所述纹理数组生成所述第一索引数据;
将所述多个对象所对应的第二索引数据替换为所述第一索引数据,其中,所述第二索引数据用于指示在对象与贴图之间原始的对应关系;
所述将所述多个对象所对应的第二索引数据替换为所述第一索引数据,包括:
将所述多个对象所对应的第二索引数据对应的贴图存储位置修改为所述第一索引数据对应的贴图存储位置;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
12.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910818351.6A CN110533755B (zh) | 2019-08-30 | 2019-08-30 | 一种场景渲染的方法以及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910818351.6A CN110533755B (zh) | 2019-08-30 | 2019-08-30 | 一种场景渲染的方法以及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110533755A CN110533755A (zh) | 2019-12-03 |
CN110533755B true CN110533755B (zh) | 2021-04-06 |
Family
ID=68666021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910818351.6A Active CN110533755B (zh) | 2019-08-30 | 2019-08-30 | 一种场景渲染的方法以及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110533755B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990104B (zh) * | 2019-12-06 | 2023-04-11 | 珠海金山数字网络科技有限公司 | 一种基于Unity3D的纹理渲染方法及装置 |
CN111026493B (zh) * | 2019-12-10 | 2022-04-29 | 网易(杭州)网络有限公司 | 界面渲染的处理方法和装置 |
CN111145329B (zh) * | 2019-12-25 | 2024-03-22 | 北京像素软件科技股份有限公司 | 模型渲染方法、系统及电子装置 |
CN111228801A (zh) * | 2020-01-07 | 2020-06-05 | 网易(杭州)网络有限公司 | 游戏场景的渲染方法和装置、存储介质、处理器 |
CN111240674B (zh) * | 2020-01-09 | 2023-03-28 | 上海米哈游天命科技有限公司 | 一种参数修改方法、装置、终端及存储介质 |
CN112419430B (zh) * | 2020-05-28 | 2022-10-28 | 上海哔哩哔哩科技有限公司 | 动画播放方法、装置及计算机设备 |
CN112767419B (zh) * | 2021-01-29 | 2024-01-30 | 福建天晴在线互动科技有限公司 | 一种图集九宫格切割的方法及系统 |
CN113947657B (zh) * | 2021-10-18 | 2024-07-23 | 网易(杭州)网络有限公司 | 目标模型的渲染方法、装置、设备及存储介质 |
CN113961343B (zh) * | 2021-10-22 | 2024-10-15 | 上海幻电信息科技有限公司 | 图集生成方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106951067A (zh) * | 2017-02-13 | 2017-07-14 | 歌尔科技有限公司 | 一种虚拟现实场景的生成方法及设备 |
CN106952329A (zh) * | 2017-02-21 | 2017-07-14 | 长沙趣动文化科技有限公司 | 基于Unity3D与NGUI的粒子特效编辑方法及系统 |
CN108604384A (zh) * | 2016-01-29 | 2018-09-28 | 奇跃公司 | 基于正交投影的三维网格纹理图集打包 |
CN109656440A (zh) * | 2018-12-20 | 2019-04-19 | 连尚(新昌)网络科技有限公司 | 应用程序图标显示方法、设备及介质 |
CN109712219A (zh) * | 2018-12-28 | 2019-05-03 | 北京金山安全软件有限公司 | Unity中粒子特效批量渲染方法、装置、电子设备及存储介质 |
CN109725956A (zh) * | 2017-10-26 | 2019-05-07 | 腾讯科技(深圳)有限公司 | 一种场景渲染的方法以及相关装置 |
US10332297B1 (en) * | 2015-09-04 | 2019-06-25 | Vishal Vadodaria | Electronic note graphical user interface having interactive intelligent agent and specific note processing features |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100388318C (zh) * | 2005-11-28 | 2008-05-14 | 北京航空航天大学 | 一种基于状态集的Shader三维图形绘制系统和绘制方法 |
CN109448094B (zh) * | 2018-09-21 | 2022-07-15 | 苏州蜗牛数字科技股份有限公司 | 一种纹理图集调度方法 |
-
2019
- 2019-08-30 CN CN201910818351.6A patent/CN110533755B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10332297B1 (en) * | 2015-09-04 | 2019-06-25 | Vishal Vadodaria | Electronic note graphical user interface having interactive intelligent agent and specific note processing features |
CN108604384A (zh) * | 2016-01-29 | 2018-09-28 | 奇跃公司 | 基于正交投影的三维网格纹理图集打包 |
CN106951067A (zh) * | 2017-02-13 | 2017-07-14 | 歌尔科技有限公司 | 一种虚拟现实场景的生成方法及设备 |
CN106952329A (zh) * | 2017-02-21 | 2017-07-14 | 长沙趣动文化科技有限公司 | 基于Unity3D与NGUI的粒子特效编辑方法及系统 |
CN109725956A (zh) * | 2017-10-26 | 2019-05-07 | 腾讯科技(深圳)有限公司 | 一种场景渲染的方法以及相关装置 |
CN109656440A (zh) * | 2018-12-20 | 2019-04-19 | 连尚(新昌)网络科技有限公司 | 应用程序图标显示方法、设备及介质 |
CN109712219A (zh) * | 2018-12-28 | 2019-05-03 | 北京金山安全软件有限公司 | Unity中粒子特效批量渲染方法、装置、电子设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
Design and Implementation of 3D Virtual Campus Online Interaction Based on Untiy3D;Wang Li;《IEEE》;20190606;2066-2070 * |
农田喷灌车虚拟现实设计;李思莹;《中国优秀硕士学位论文全文数据库农业科技辑(月刊)》;20150815(第8期);第2.3、5.2节 * |
海上钻井平台可视化的设计与实现;李晶瑜;《中国优秀硕士学位论文全文数据库工程科技Ⅰ辑(月刊)》;20170215(第02期);B019-489 * |
Also Published As
Publication number | Publication date |
---|---|
CN110533755A (zh) | 2019-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110533755B (zh) | 一种场景渲染的方法以及相关装置 | |
CN109819179B (zh) | 一种视频剪辑方法和装置 | |
CN106504185B (zh) | 一种渲染优化方法和装置 | |
CN110582018B (zh) | 一种视频文件处理的方法、相关装置及设备 | |
CN106547599B (zh) | 一种资源动态加载的方法及终端 | |
US20200134898A1 (en) | 3d avatar rendering | |
TWI732240B (zh) | 視頻檔案的生成方法、裝置及儲存媒體 | |
CN111338646B (zh) | 一种微服务架构的管理方法以及相关装置 | |
CN111420399B (zh) | 一种虚拟人物的换装方法、装置、终端及存储介质 | |
CN111282268B (zh) | 一种虚拟环境中的剧情展示方法、装置、终端及存储介质 | |
CN112037311A (zh) | 一种动画生成的方法、动画播放的方法以及相关装置 | |
CN112070906A (zh) | 一种增强现实系统及增强现实数据的生成方法、装置 | |
CN110662090B (zh) | 一种视频处理方法和系统 | |
CN107180445B (zh) | 一种动画模型的表情控制方法和装置 | |
US20220327758A1 (en) | Image rendering method in panoramic application and terminal device | |
CN112070907A (zh) | 一种增强现实系统及增强现实数据的生成方法、装置 | |
CN112118397B (zh) | 一种视频合成的方法、相关装置、设备以及存储介质 | |
WO2022089512A1 (zh) | 一种控制负载的方法、装置及设备 | |
CN111210496B (zh) | 一种图片解码方法、装置以及设备 | |
CN112069079B (zh) | 一种性能测试的方法、相关装置及存储介质 | |
CN113012267B (zh) | 一种特效动画的测试方法和相关装置 | |
CN116704107B (zh) | 一种图像渲染方法和相关装置 | |
CN113132772B (zh) | 一种互动媒体的生成方法和装置 | |
CN112925638B (zh) | 资源加载方法、装置、设备及计算机可读存储介质 | |
CN104866287B (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 |