一种模型对象构建的方法、服务器及系统与流程

文档序号:11217382阅读:404来源:国知局
一种模型对象构建的方法、服务器及系统与流程

本发明涉及3d应用技术领域,具体涉及一种模型对象构建的方法、服务器及系统。



背景技术:

随着交互式应用的快速发展,交互式应用的种类越来越多,其中,建筑建造类的交互式应用也备受用户青睐,而且建筑建造类的应用场景被广泛引入到多人在线交互式应用中。

现有技术中用户设备端对显示精度有较高的要求,所以用户设备端通常采用显示精度较高的模型处理算法,服务器端为了与用户设备端保持一致,就需要采用与用户设备端相同的模型构建处理算法,这样就导致服务器的计算量非常大,会降低模型对象构建效率。



技术实现要素:

本发明实施例提供一种模型对象构建的方法,服务器和用户设备的模型构建算法,逻辑和表现分离,这样服务器即可以做到数据行为上与用户设备一致,又可以以体素的形式进行模型对象存储,从而减少了计算量,提高了模型对象构建的效率。本发明实施例还提供了相应的服务器和系统。

本发明第一方面提供一种模型对象构建的方法,所述方法应用于3d应用系统,所述3d应用系统包括服务器和用户设备,所述用户设备基于多边形网格的形式进行模型对象展示,所述服务器基于体素的形式进行模型对象存储,所述方法包括:

所述服务器接收所述用户设备发送的目标模型对象的构建指令;

所述服务器根据所述构建指令,确定所述目标模型对象的体素建模数据;

所述服务器根据所述体素建模数据,构建体素形式的所述目标模型对象。

本发明第二方面提供一种服务器,所述服务器应用于3d应用系统,所述3d应用系统还包括用户设备,所述用户设备基于多边形网格的形式进行模型 对象展示,所述服务器基于体素的形式进行模型对象存储,所述服务器包括:

接收单元,用于接收所述用户设备发送的目标模型对象的构建指令;

确定单元,用于根据所述接收单元接收的所述构建指令,确定所述目标模型对象的体素建模数据;

发送单元,用于根据所述确定单元确定的所述体素建模数据,构建体素形式的所述目标模型对象。

本发明第三方面提供一种3d应用系统,包括服务器和用户设备,所述用户设备基于多边形网格的形式进行模型对象展示,所述服务器基于体素的形式进行模型对象存储;

所述服务器为上述第二方面所述的服务器。

与现有技术中服务器使用与用户设备相同的模型处理算法进行模型构建,导致服务器的计算量大,模型构建效率低相比,本发明实施例中,服务器和用户设备的模型构建算法,逻辑和表现分离,用户设备以多边形网络的形式展示模型对象,保证了显示精度,服务器模型构建的逻辑与用户设备一致,只是建模数据用体素形式表示,虽然表示形式不同,但服务器可以做到数据行为上与用户设备一致,从而可以有效验证怪兽和人物等的模拟对象在游戏场景设置的合理的范围内移动,不会出现穿墙等不合理的行为,同时以体素的形式构建模型,服务器可以减少了计算量,提高了模型对象构建的效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是基于多边形网格的模型对象的一示意图;

图2是基于体素的模型对象的一示意图;

图3是本发明实施例中3d应用系统的一实施例示意图;

图4是本发明实施例中模型对象构建的方法的一实施例示意图;

图5是本发明实施例中模型对象分层的一场景示意图;

图6是本发明实施例中模型对象分区替换的一场景示意图;

图7是本发明实施例中服务器的一实施例示意图;

图8是本发明实施例中服务器的另一实施例示意图;

图9是本发明实施例中服务器的另一实施例示意图;

图10是本发明实施例中服务器的另一实施例示意图。

具体实施方式

本发明实施例提供一种模型对象构建的方法,服务器可以以体素算法进行模型对象构建,从而减少了计算量,提高了模型对象构建的效率。本发明实施例还提供了相应的服务器和系统。以下分别进行详细说明。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例所描述的模型对象构建的方法,多应用于建筑建造类游戏中,或者包含建筑建造类的大型多人在线角色扮演游戏(massivelymultiplayeronlineroleplayinggame,mmorpg)中,在mmorpg中,玩家通常需要构建防御工事等建筑模型对象,以便于开展游戏中的攻防。本发明实施例中重点介绍模型对象的构建。

本发明实施例中,考虑到用户设备侧的显示精度,所以用户设备基于多边形网格算法进行模型对象展示,服务器端不需要过多的考虑模型精度,但对计算速度要求很高,所以服务器基于体素算法进行模型对象存储,模型对象的构建可以分为逻辑和表现两个部分,用户设备和服务器中模型对象的构建逻辑是相同的,只是建模数据的表现不同,用户设备侧的建模数据是多边形网格建模数据,所以最终建好的模型对象以多边形网格的形式展示,服务器侧的建模数据是体素建模数据,所以最终建好的模型的形式是体素的形式,用户设备以多边形网格的形式展示模型对象,服务器中以体素的形式存储模型对象,这样,既能保证用户设备侧的显示精度,又能降低服务器侧的计算量,最重要的是保证了用户设备和服务器两端模型对象构建高度和位置的一致,虽然服务器侧的 模型对象的显示精度不好,但不影响对怪兽和人物等的模拟对象在建筑模型对象中运动合理性的判断。因此在后续怪兽和人物等的模拟对象在建筑模型对象中运动时,服务器可以根据服务器侧存储的建筑模型来保证怪兽和人物等的模拟对象在游戏场景设置的合理的范围内移动,不会出现穿墙等不合理的行为。

服务器侧存储建筑模型对象的目的就是要验证后续怪兽和人物等的模拟对象在建筑模型对象中的移动是否合理,若合理,则服务器会指示用户设备侧表现出模拟对象的正常移动,若不合理,则服务器不允许用户设备侧的模拟对象做不合理的移动。

用户设备侧和服务器侧模型对象的构建过程基本是一致的,只是建模数据的表现不同,用户设备侧的建模数据是多边形网格建模数据,所以最终建好的模型对象以多边形网格的形式展示,服务器侧的建模数据是体素建模数据,所以最终建好的模型的形式是体素的形式,在后期的表现阶段用户设备侧按照多边形网格polygonmesh的形式展示,服务器侧按照体素voxel的形式存储。

多边形网格可以是基于传统3d引擎的polygonmesh。传统的polygonmesh解决方案如图1所示,通过将模型对象分解成无数的小多边形,来对模型对象进行建模描述。polygonmesh的优势在于多边形的分解可以非常灵活,对于模型细节的描绘可以非常精确,是传统客户端3d引擎的一致选择。

体素voxel,顾名思义是体积的像素。用来在三维空间中表示一个显示基本点的单位。类似于二维平面下的pixel(像素)。如图2所示,模型对象的体素表现形式。从图2和图1的对比中可以看出,体素的显示精度不如多边形网格的显示精度高。voxel方案的优势在于可以做到服务器和用户设备一致,且数据量和计算量都比较小,适合在服务器端使用做大规模运算。

图3为本发明实施例中3d应用系统。如图3所示,3d应用系统包括服务器和用户设备,该服务器可以是游戏服务器,用户设备可以有多个,不限于图3中所示的三个,玩家在用户设备上构建建筑模型时,用户设备会根据玩家的指令,确定玩家所指定的目标模型对象的多边形网格建模数据,然后,用户设备根据所述多边形网格建模数据,构建多边形网格形式的目标模型对象,用户设备以多边形网格的形式展示该目标模型对象。服务器接收用户设备发送的目标 模型对象的构建指令,也会根据所述构建指令,确定所述目标模型对象的体素建模数据;根据所述体素建模数据,构建体素形式的目标模型对象,然后,服务器会存储该体素形式的目标模型对象。图4为本发明实施例中模型对象构建的方法的一实施例示意图。

如图4所示,本发明实施例中模型对象构建的方法的一实施例包括:

101、服务器接收用户设备发送的目标模型对象的构建指令。

目标模型对象可以是建筑模型对象的一个组成部分,例如:一个房顶或者一堵墙。

102、服务器根据所述构建指令,确定所述目标模型对象的体素建模数据。

103、服务器根据所述体素建模数据,构建体素形式的所述目标模型对象。

所述目标模型对象在所述用户设备中以所述多边形网格的形式展示,所述目标模型对象在所述服务器中以所述体素的形式存储。

与现有技术中服务器使用与用户设备相同的模型处理算法进行模型构建,导致服务器的计算量大,模型构建效率低相比,本发明实施例中,服务器和用户设备的模型构建算法,逻辑和表现分离,用户设备以多边形网络的形式展示模型对象,保证了显示精度,服务器模型构建的逻辑与用户设备一致,只是建模数据用体素形式表示,虽然表示形式不同,但服务器可以做到数据行为上与用户设备一致,从而可以有效验证怪兽和人物等的模拟对象在游戏场景设置的合理的范围内移动,不会出现穿墙等不合理的行为,同时以体素的形式构建模型,服务器可以减少了计算量,提高了模型对象构建的效率。

考虑到模型对象都是立体的,所以为了提高计算效率,可以为目标模型对象分层,这样所述服务器根据所述构建指令,确定所述目标模型对象的体素建模数据,可以包括:

所述服务器确定所述目标模型对象中每个体素所属的层;

所述服务器确定每层体素的体素建模数据,并根据所述每层体素的体素建模数据,确定所述目标模型对象的体素建模数据。

目标模型对象的分层(layer)可以参阅图5进行理解。如图5所示,可以将目标模型对象从下至上划分为几个层layer,如图5所示的layer0、layer1和layer2, 当然不限于图5所示的几个分层,layer可以根据需求划分。因服务器端是基于体素的,所以目标模型对象的体素可以是分布于各个layer的,体素在各个layer上可以以坐标的形式进行定位,如以(x,y,layer)三元组对voxel位置进行定位,以(x,y,z,layer)四元组描述移动对象在空间的位置,layer=0的voxel为地表层,voxel记录上沿(upward)高度,layer>0的voxel为建筑层,voxel记录上(upward)下(downward)沿高度。

以坐标的形式定位体素后,所述服务器确定每层体素的体素建模数据,可以包括:

所述服务器确定所述每层体素中各个体素的坐标;

所述服务器根据所述各个体素的坐标,确定所述每层体素的体素建模数据。

根据体素的坐标,确定体素的体素建模数据,可以确定出体素在地图上的位置和空间上的位置。从而会确定出目标模型对象的体素建模数据,从而确定出目标模型在游戏场景中的地理位置和空间位置。

可选地,在以上任一实现方案的基础上,本发明实施例提供的模型对象构建的方法还包括:

所述服务器确定所述目标模型对象在建筑模型对象中所对应的目标区块,所述建筑模型对象包括多个区块;

所述服务器根据所述构建指令,确定所述目标模型对象的体素建模数据之后,所述方法还包括:

所述服务器用所述目标模型对象替换所述目标区块所对应的原始模型对象。

本发明实施例中,如图6所示,建筑模型对象可以包括多个区块,若玩家只是想修改当前的建筑模型对象,要用一个新的模型对象去替换建筑模型对象中的一个部分,则可以构建该新的模型对象,该新的模型对象在本发明实施例中为目标模型对象,所以服务器在确定目标模型对象所对应的区块后,可以用目标模型对象替换所述目标区块所对应的原始模型对象,从而得到更新的建筑模型对象。

可选地,本发明实施例提供的模型对象构建的方法还包括:所述服务器确定所述目标模型对象在建筑模型对象中所对应的目标区块,所述建筑模型对象包括多个区块;

所述服务器根据所述构建指令,确定所述目标模型对象的体素建模数据之后,所述方法还包括:

所述服务器用所述目标模型对象填充所述目标区块所对应的空间。

本发明实施例中,若目标区块是空白的,没有原始模型对象,则可以直接用目标模型对象去填充该目标区块所对应的空间。

动态建筑建造过程中,其实只是改变了整个地图场景中的一小部分数据,通过引入区块切割(sector)的概念,使得系统可以支持建造建筑时,只改变一部分3d场景数据的效果。更新方案可以是:

以固定边长(n)为单位的正方形,将整个地图分解为多个地图区块(mapsector),建筑(buiding)数据,也按照同样的格式进行描述。

每个地图区块(mapsector)为n*n的正方形在xy垂直区域上的投影,当有建筑需要建造时,生成一个新的建筑区块(sectorbuilding),通过融合建筑数据以及地图数据,形成新的地形,使用buidingsector替换掉目标区块原有位置的mapsector,若原有位置没有mapsector,则直接将buidingsector填充在目标区块的位置。

其中,所述服务器确定所述目标模型对象在建筑模型对象中所对应的目标区块,可以包括:

所述服务器确定所述目标模型对象的坐标;

所述服务器根据所述目标模型对象的坐标确定所述目标模型对象在建筑模型对象中所对应的目标区块。

本发明实施例中,可以根据目标模型对象在地图中的坐标确定该目标模型对象在建筑模型对象中所对应的目标区块。

参阅图7,本发明实施例提供的服务器20,应用于3d应用系统,所述3d应用系统还包括用户设备,所述用户设备基于多边形网格的形式进行模型对象展示,所述服务器基于体素的形式进行模型对象存储,所述服务器20的一实施例 包括:

接收单元201,用于接收所述用户设备发送的目标模型对象的构建指令;

确定单元202,用于根据所述接收单元201接收的所述构建指令,确定所述目标模型对象的体素建模数据;

构建单元203,用于根据所述确定单元202确定的所述体素建模数据,构建体素形式的所述目标模型对象。

本发明实施例提供的服务器,接收单元201接收所述用户设备发送的目标模型对象的构建指令;确定单元202根据所述接收单元201接收的所述构建指令,确定所述目标模型对象的体素建模数据;发送单元203根据所述确定单元202确定的所述体素建模数据,构建体素形式的所述目标模型对象。与现有技术中服务器使用与用户设备相同的模型处理算法进行模型构建,导致服务器的计算量大,模型构建效率低相比,本发明实施例中,服务器和用户设备的模型构建算法,逻辑和表现分离,用户设备以多边形网络的形式展示模型对象,保证了显示精度,服务器模型构建的逻辑与用户设备一致,只是建模数据用体素形式表示,虽然表示形式不同,但服务器可以做到数据行为上与用户设备一致,从而可以有效验证怪兽和人物等的模拟对象在游戏场景设置的合理的范围内移动,不会出现穿墙等不合理的行为,同时以体素的形式构建模型,服务器可以减少了计算量,提高了模型对象构建的效率。

可选地,所述确定单元202用于:

确定所述目标模型对象中每个体素所属的层;

确定每层体素的体素建模数据,并根据所述每层体素的体素建模数据,确定所述目标模型对象的体素建模数据。

可选地,所述确定单元202用于:

确定所述每层体素中各个体素的坐标;

根据所述各个体素的坐标,确定所述每层体素的体素建模数据。

可选地,参阅图8,本发明实施例提供的服务器的另一实施例还包括替换单元204,

所述确定单元202,还用于确定所述目标模型对象在建筑模型对象中所对 应的目标区块,所述建筑模型对象包括多个区块;

所述替换单元204,用于用所述目标模型对象的体素建模数据替换所述确定单元202确定的所述目标区块所对应的原始体素建模数据。

可选地,参阅图9,本发明实施例提供的服务器的另一实施例还包括填充单元205,

所述确定单元202,还用于确定所述目标模型对象在建筑模型对象中所对应的目标区块,所述建筑模型对象包括多个区块;

所述填充单元205,用于用所述目标模型对象的体素建模数据填充所述确定单元202确定的所述目标区块所对应的数据存储空间。

可选地,在上述图8对应的实施例的基础上,

所述确定单元202用于:

确定所述目标模型对象的坐标;

根据所述目标模型对象的坐标确定所述目标模型对象在建筑模型对象中所对应的目标区块。

图10是本发明实施例提供的服务器20的结构示意图。所述服务器应用于3d应用系统,所述3d应用系统还包括用户设备,所述用户设备基于多边形网格的形式进行模型对象展示,所述服务器基于体素的形式进行模型对象存储,所述服务器20包括处理器210、存储器250和收发器230,存储器250可以包括只读存储器和随机存取存储器,并向处理器210提供操作指令和数据。存储器250的一部分还可以包括非易失性随机存取存储器(nvram)。

在一些实施方式中,存储器250存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:

在本发明实施例中,通过调用存储器250存储的操作指令(该操作指令可存储在操作系统中),

所述收发器230用于接收所述用户设备发送的目标模型对象的构建指令;

所述处理器210用于根据所述构建指令,确定所述目标模型对象的体素建模数据,根据所述体素建模数据,构建体素形式的所述目标模型对象。

与现有技术中服务器使用与用户设备相同的模型处理算法进行模型构建,导致服务器的计算量大,模型构建效率低相比,本发明实施例中,服务器和用户设备的模型构建算法,逻辑和表现分离,用户设备以多边形网络的形式展示模型对象,保证了显示精度,服务器模型构建的逻辑与用户设备一致,只是建模数据用体素形式表示,虽然表示形式不同,但服务器可以做到数据行为上与用户设备一致,从而可以有效验证怪兽和人物等的模拟对象在游戏场景设置的合理的范围内移动,不会出现穿墙等不合理的行为,同时以体素的形式构建模型,服务器可以减少了计算量,提高了模型对象构建的效率。

处理器210控制服务器20的操作,处理器210还可以称为cpu(centralprocessingunit,中央处理单元)。存储器250可以包括只读存储器和随机存取存储器,并向处理器210提供指令和数据。存储器250的一部分还可以包括非易失性随机存取存储器(nvram)。具体的应用中服务器20的各个组件通过总线系统220耦合在一起,其中总线系统220除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统220。

上述本发明实施例揭示的方法可以应用于处理器210中,或者由处理器210实现。处理器210可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器210中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器210可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器250,处理器210读取存储器250中的信息,结合其硬件完成上述方法的步骤。

可选地,所述处理器210用于确定所述目标模型对象中每个体素所属的层;确定每层体素的体素建模数据,并根据所述每层体素的体素建模数据,确定所述目标模型对象的体素建模数据。

可选地,所述处理器210用于确定所述每层体素中各个体素的坐标;根据所述各个体素的坐标,确定所述每层体素的体素建模数据。

可选地,所述处理器210还用于确定所述目标模型对象在建筑模型对象中所对应的目标区块,所述建筑模型对象包括多个区块;用所述目标模型对象替换所述目标区块所对应的原始模型对象。

可选地,所述处理器210还用于确定所述目标模型对象在建筑模型对象中所对应的目标区块,所述建筑模型对象包括多个区块;用所述目标模型对象填充所述目标区块所对应的空间。

可选地,所述处理器210用于确定所述目标模型对象的坐标,根据所述目标模型对象的坐标确定所述目标模型对象在建筑模型对象中所对应的目标区块。

以上的服务器20可以参阅图1至图6部分的相关描述进行理解,本处不做过多赘述。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:rom、ram、磁盘或光盘等。

以上对本发明实施例所提供的模型对象构建的方法、服务器以及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1