一种虚拟对象的动态渲染方法、系统、装置及存储介质与流程

    专利查询2022-07-06  246



    1.本技术涉及数据处理领域,尤其涉及一种虚拟对象的动态渲染方法、系统、装置及计算机存储介质。


    背景技术:

    2.随着计算机技术的不断发展,三维的虚拟世界越来越收到用户欢迎,虚拟世界是一种计算机仿真的三维虚拟世界,目前,虚拟世界已经成为信息技术领域的热点之一,现有的虚拟世界中,终端对虚拟世界中的对象进行渲染时,一般遵循从远到近的规律。
    3.现有技术提供的方案中,在虚拟世界中制作动画电影时,需要在虚拟世界中配置虚拟摄像机,终端在对虚拟世界中的虚拟对象进行渲染时,根据该虚拟对象距离摄像机的距离来确定渲染的优先级,距离摄像机越远的虚拟对象渲染会优先进行渲染,然而,当对虚拟对象的位置进行调整的过程中,由于虚拟对象保留了原来的距离关系,会导致渲染错乱的情况发生,例如:有透明的a对象和b对象,a对象比b对象距离摄像机更远,在正常情况下,透过b对象可以看到a对象,而当对a对象调整至b对象前方时,a对象依然会先进行渲染,造成无法透过a对象看到b对象。这种方法会影响用户使用虚拟世界的体验。


    技术实现要素:

    4.为了解决上述技术问题,本技术提供了一种虚拟对象的动态渲染方法、系统、装置及计算机存储介质,用于避免渲染过程中渲染顺序错乱。
    5.本技术第一方面提供了一种虚拟对象的动态渲染方法,所述方法应用于三维虚拟世界中,所述三维虚拟世界配置有虚拟摄像机,所述三维虚拟世界中包含有第一虚拟对象以及第二虚拟对象,所述方法包括:
    6.获取用户的移动操作指令,并根据所述移动操作指令移动所述第一虚拟对象或所述第二虚拟对象;
    7.在移动过程中判断在所述三维虚拟世界中当前所述第一虚拟对象到所述虚拟摄像机的第一距离是否小于所述第二虚拟对象到所述虚拟摄像机的第二距离;
    8.若是,则先渲染所述第二虚拟对象然后渲染所述第一虚拟对象。
    9.可选的,在所述先渲染所述第一虚拟对象然后渲染所述第二虚拟对象之前,所述方法还包括:
    10.修改第一距离参数,所述第一距离参数为在所述三维虚拟世界中,所述第一虚拟对象在被移动前与所述虚拟摄像机的距离参数;
    11.和/或
    12.修改第二距离参数,所述第二距离参数为在所述三维虚拟世界中,所述第二虚拟对象在被移动前与所述虚拟摄像机的距离参数。
    13.可选的,所述修改第一距离参数包括:
    14.获取用户输入的第三距离参数,所述第三距离参数小于所述第二距离参数;
    15.将所述第一距离参数修改为所述第三距离参数;
    16.所述修改第二距离参数包括:
    17.获取用户输入的第四距离参数,所述第四距离参数大于所述第一距离参数;
    18.将所述第二距离参数修改为所述第四距离参数。
    19.可选的,所述修改第一距离参数包括:
    20.将所述第一距离参数同步为在所述三维虚拟世界中当前所述第一虚拟对象与所述虚拟摄像机的第一距离。
    21.所述修改所述第二距离参数包括:
    22.将所述第一距离参数同步为在所述三维虚拟世界中当前所述第一虚拟对象与所述虚拟摄像机的第二距离。
    23.可选的,所述三维虚拟世界中配置有虚拟三维坐标系,所述方法包括:所述判断在所述三维虚拟世界中当前所述第一虚拟对象到所述虚拟摄像机的第一距离是否小于所述第二虚拟对象到所述虚拟摄像机的第二距离包括:
    24.分别确定在所述三维虚拟世界中当前所述第一虚拟对象的第一坐标值,所述第二虚拟对象的第二坐标值,所述虚拟摄像机的第三坐标值;
    25.根据所述第一坐标值、所述第二坐标值以及所述第三坐标值判断所述第一虚拟对象到所述虚拟摄像机的第一距离是否小于所述第二虚拟对象到所述虚拟摄像机的第二距离。
    26.可选的,所述第一虚拟对象和所述第二虚拟对象在所述三维虚拟世界中均为半透明对象。
    27.可选的,所述渲染所述第一虚拟对象包括:
    28.将所述第一虚拟对象的透明度调整至预设值。
    29.本技术第二方面提供了一种虚拟对象的动态渲染系统,所述系统包括:
    30.获取单元,用于获取用户的移动操作指令,并根据所述移动操作指令移动所述第一虚拟对象或所述第二虚拟对象;
    31.判断单元,用于在移动过程中判断在所述三维虚拟世界中当前所述第一虚拟对象到所述虚拟摄像机的第一距离是否小于所述第二虚拟对象到所述虚拟摄像机的第二距离;
    32.渲染单元,用于当所述判断单元确定所述第一距离小于所述第二距离时,先渲染所述第一虚拟对象然后渲染所述第二虚拟对象。
    33.本技术第三方面提供了一种虚拟对象的动态渲染装置,所述装置包括:
    34.处理器、存储器、输入输出单元以及总线;
    35.所述处理器与所述存储器、所述输入输出单元以及所述总线相连;
    36.所述存储器保存有程序,所述处理器调用所述程序以执行第一方面以及第一方面中任一项可选的所述方法。
    37.本技术第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质上保存有程序,所述程序在计算机上执行时执行第一方面以及第一方面中任一项可选的所述方法。
    38.从以上技术方案可以看出,本技术具有以下优点:
    39.本技术提供的虚拟对象的动态渲染方法中,用户在对虚拟对象进行移动的过程
    中,终端会判断第一虚拟对象到虚拟摄像机的距离是否小于第二虚拟对象到虚拟摄像机的距离,当小于时,即当第一虚拟对象被移动至比第二虚拟对象距离虚拟摄像机更近时,终端先对第二虚拟对象进行渲染,进而再对第一虚拟对象进行渲染,因此减少了因为虚拟对象在移动的过程中因为保留了原来的位置关系而导致渲染错乱的情况发生。
    附图说明
    40.为了更清楚地说明本技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
    41.图1为本技术中虚拟对象的动态渲染方法的一个实施例流程示意图;
    42.图2为本技术中虚拟对象的动态渲染方法的另一个实施例流程示意图;
    43.图3为本技术中虚拟对象的动态渲染系统的一个实施例结构示意图;
    44.图4为本技术中虚拟对象的动态渲染装置的一个实施例结构示意图。
    具体实施方式
    45.现有技术提供的方案中,在虚拟世界中制作动画电影时,需要在虚拟世界中配置虚拟摄像机,终端在对虚拟世界中的虚拟对象进行渲染时,根据该虚拟对象距离摄像机的距离来确定渲染的优先级,距离摄像机越远的虚拟对象渲染会优先进行渲染,然而,当对虚拟对象的位置进行调整的过程中,由于虚拟对象保留了原来的距离关系,会导致渲染错乱的情况发生,例如:有透明的a对象和b对象,a对象比b对象距离摄像机更远,在正常情况下,透过b对象可以看到a对象,而当对a对象调整至b对象前方时,a对象依然会先进行渲染,造成无法透过a对象看到b对象。这种方法会影响用户使用虚拟世界的体验。
    46.基于此,本技术提供了一种虚拟对象的动态渲染方法,用于提高用户使用虚拟世界的体验。
    47.需要说明的是,本技术提供的虚拟对象的动态渲染方法,可以应用于终端也可以应用于系统,还可以应用于服务器上,例如终端可以是智能手机或电脑、平板电脑、智能电视、智能手表、便携计算机终端也可以是台式计算机等固定终端。为方便阐述,本技术中以终端为执行主体进行举例说明。
    48.请参阅图1,图1为本技术提供的虚拟对象的动态渲染方法一个实施例流程示意图,该虚拟对象的动态渲染方法包括:
    49.101、获取用户的移动操作指令,并根据移动操作指令移动第一虚拟对象或第二虚拟对象;
    50.本技术提供的虚拟对象的动态渲染方法应用于三维虚拟世界中,该三维虚拟世界中包含有第一虚拟对象、第二虚拟对象以及虚拟摄像机,用户可以通过虚拟摄像机来在三维虚拟世界中制作动画电影,在制作动画电影的过程中,需要对虚拟对象进行动态的编辑,例如对虚拟对象进行移动,进而终端对虚拟对象进行渲染,终端对虚拟对象的渲染遵循到摄像机距离的原则,即离虚拟摄像机越远则越优先渲染,而在移动虚拟对象的过程中,虚拟对象之间的位置会发生改变,而不同的渲染顺序会影响虚拟对象的显示效果,尤其是当虚拟对象为半透明对象时,会渲染顺序尤其重要。
    51.本实施例提供的方法中,用户可以通过移动操作指令来对第一虚拟对象或者第二虚拟对象进行移动,即用户移动其中一个虚拟对象,在被移动前,第一虚拟对象到虚拟摄像机的距离可以比第二虚拟对象到摄像机的距离大,也可以比第二虚拟对象到摄像机的距离小,本实施例对此不作限定。
    52.102、在移动过程中判断在三维虚拟世界中当前第一虚拟对象到虚拟摄像机的第一距离是否小于第二虚拟对象到虚拟摄像机的第二距离;若是,则执行步骤103;,若否则执行步骤104。
    53.在虚拟对象被移动的过程中,例如在第一虚拟对象被移动的过程中,第一虚拟对象与第二虚拟对象之间的位置会发生改变,终端判断在当前状态下第一虚拟对象到虚拟摄像机的第一距离是否小于第二虚拟对象到虚拟摄像机的第二距离;即判断第一虚拟对象是否比第二虚拟对象更靠近虚拟摄像机;本实施例中所提及或讨论的第一距离以及第二距离,是指在当前状态下,在三维虚拟世界中虚拟对象与虚拟摄像机之间的动态距离,而非在被移动前该虚拟对象所被放置的位置与虚拟摄像机之间的距离参数。
    54.如果确定第一距离小于第二距离,则说明第一虚拟对象更加靠近摄像机,终端根据此时虚拟对象之间的距离关系,先对第二虚拟对象进行渲染。
    55.具体的,在另一种可能的实现方式中,三维虚拟世界中可以配置有三维坐标系,终端判断第一距离是否小于第二距离具体可以是,终端分别确定在三维虚拟世界中当前第一虚拟对象的第一坐标值,第二虚拟对象的第二坐标值,虚拟摄像机的第三坐标值;根据第一坐标值、第二坐标值以及第三坐标值判断第一虚拟对象到虚拟摄像机的第一距离是否小于第二虚拟对象到虚拟摄像机的第二距离。具体的可以是根据任意两个坐标值来计算虚拟对象和虚拟摄像机之间的距离,进而判断距离的大小。
    56.103、先渲染第二虚拟对象然后渲染第一虚拟对象;
    57.终端确定第一距离小于第二距离之后,即可确定对第一虚拟对象以及第二对象的渲染顺序,先对第二虚拟对象进行渲染,进而再对第一虚拟对象进行渲染。当第一虚拟对象或者第二虚拟对象为半透明对象时,在渲染时还可以将虚拟对象的透明度调整至预设值;本实施中所提及或讨论的半透明对象指在三维虚拟世界中,具有一定透明度的虚拟对象,对于用户来说,透过该半透明对象可以看得到背后的其它虚拟对象。
    58.104、结束流程。
    59.终端确定第一距离不小于第二距离之后,结束流程。
    60.下面将以举例的形式对本实施例中提供的虚拟对象的动态渲染方法进行进一步说明;
    61.在三维虚拟世界中,有半透明的a对象、半透明的b对象以及虚拟摄像机,a对象比b对象距离摄像机更远,在三维虚拟世界中,在a对象距离虚拟摄像机的距离为3米,b对象距离虚拟摄像机的距离为2米,终端先对a对象进行渲染再对b对象进行渲染,用户透过b对象可以看得到a对象,用户对a对象进行移动,终端在a对象被移动的过程中,会判断a对象和b对象中的哪一个更靠近虚拟摄像机,进而确定渲染顺序,例如当将a对象移动至b对象前方时,即距离虚拟摄像机更近时,终端确定a对象此时比b对象更靠近虚拟摄像机,因此终端先渲染b对象再渲染a对象,此时用户透过a对象就可以看得到b对象。
    62.本技术提供的虚拟对象的动态渲染方法中,用户在对虚拟对象进行移动的过程
    中,终端会判断第一虚拟对象到虚拟摄像机的距离是否小于第二虚拟对象到虚拟摄像机的距离,当小于时,即当第一虚拟对象被移动至比第二虚拟对象距离虚拟摄像机更近时,终端先对第二虚拟对象进行渲染,进而再对第一虚拟对象进行渲染,因此减少了因为虚拟对象在移动的过程中因为保留了原来的位置关系而导致渲染错乱的情况发生。
    63.在实际应用中,虚拟对象在被移动前,会被配置有距离参数,即距离虚拟摄像机的距离的参数,当用户对虚拟对象进行移动时,终端可以对该参数进行修改,以保持与当前该虚拟对象距离虚拟摄像机的距离一致。下面将结合附图对该方法进行详细阐述。
    64.请参阅图2,图2为本技术中提供的虚拟对象的动态渲染方法的一个实施例流程示意图;
    65.201、获取用户的移动操作指令,并根据移动操作指令移动第一虚拟对象或第二虚拟对象;
    66.202、在移动过程中判断在三维虚拟世界中当前第一虚拟对象到虚拟摄像机的第一距离是否小于第二虚拟对象到虚拟摄像机的第二距离;若是则执行步骤203;若否则执行步骤205;
    67.本实施例中步骤201至步骤202与前述实施例中步骤101至步骤102类似,此处不再赘述。
    68.203、修改第一距离参数,第一距离参数为在三维虚拟世界中,第一虚拟对象在被移动前与虚拟摄像机的距离参数;
    69.和/或
    70.修改第二距离参数,第二距离参数为在三维虚拟世界中,第二虚拟对象在被移动前与虚拟摄像机的距离参数
    71.本实施例中,第一虚拟对象以及第二虚拟对象在三维虚拟世界中配置有距离参数,本实施中所提及或讨论的距离参数是指在三维虚拟世界中所记录的距离参数,而非在移动过程中该虚拟对象的实时距离;
    72.终端可以对第一距离参数和/或第二距离参数进行修改,当用户对第一虚拟对象进行移动时,终端修改的是第一虚拟对象的第一距离参数,当用户对第二虚拟对象进行移动时,终端修改的是第二虚拟对象的第二距离参数;使得距离参数与虚拟对象当前与虚拟摄像机的实时距离保持匹配;进而终端依据修改后的距离参数来确定虚拟对象的渲染顺序。
    73.具体的,终端修改距离参数可以有两种方式;
    74.1、根据用户输入的参数进行修改;
    75.在一种可能的实现方式中,用户在对虚拟对象进行移动的过程中,可以自行对虚拟对象的距离参数进行修改,具体的可以是,终端获取用户输入的第三距离参数,第三距离参数小于第二距离参数;将第一距离参数修改为第三距离参数;修改第二距离参数包括:获取用户输入的第四距离参数,第四距离参数大于第一距离参数;将第二距离参数修改为第四距离参数。例如,在移动前,第一虚拟对象比第二虚拟对象距离虚拟摄像机更远,当用户对将第一虚拟对象移动至比第二虚拟对象更靠近虚拟摄像机时,用户可以将第一虚拟对象的第一距离参数修改为第三距离参数,使得第一虚拟对象在三维虚拟世界中的距离参数比第二虚拟对象的距离参数小,终端将会先对第二虚拟对象进行渲染。或者,当用户将第二虚
    拟对象移动至第一虚拟对象后方时,用户可以强制性将第二虚拟对象的第二距离参数修改为第四距离参数,使得第二虚拟对象在三维虚拟世界中的距离参数比第一虚拟对象的第一距离参数大,终端先对第二虚拟对象进行渲染,当第一虚拟对象为半透明对象时,用户可以透过第一虚拟对象看到第二虚拟对象,减少了渲染错误的情况发生。
    76.2、根据当前虚拟对象距离虚拟摄像机的距离进行修改;
    77.在另一种可能的实现方式中,终端可以确定虚拟对象当前在三维虚拟世界中与虚拟摄像机的距离,并将距离参数同步为与该距离一致,具体的可以是,将第一距离参数同步为在三维虚拟世界中当前第一虚拟对象与虚拟摄像机的第一距离。或者将第一距离参数同步为在三维虚拟世界中当前第一虚拟对象与虚拟摄像机的第二距离。
    78.例如,当用户对第一虚拟对象进行移动时,终端确定当前第一虚拟对象与虚拟摄像机之间的第一距离,并将第一虚拟对象的第一距离参数同步为与第一距离一致。本实施例提供的方法中,终端可以实时对第一虚拟对象的距离进行同步,进而可以确定渲染次序,极大程度减少了渲染出错的情况发生。
    79.204、先渲染第二虚拟对象然后渲染第一虚拟对象;
    80.终端确定第一距离小于第二距离之后,即可确定对第一虚拟对象以及第二对象的渲染顺序,先对第二虚拟对象进行渲染,进而再对第一虚拟对象进行渲染。当第一虚拟对象或者第二虚拟对象为半透明对象时,在渲染时还可以将虚拟对象的透明度调整至预设值;本实施中所提及或讨论的半透明对象指在三维虚拟世界中,具有一定透明度的虚拟对象,对于用户来说,透过该半透明对象可以看得到背后的其它虚拟对象。
    81.205、结束流程。
    82.终端确定第一距离不小于第二距离之后,结束流程。
    83.上述实施例对本技术中提供的虚拟对象的动态渲染方法进行了阐述,下面将结合附图对本技术中提供的虚拟对象的动态渲染系统、装置及计算机存储介质进行阐述。
    84.请参阅图3,图3为本技术中提供的虚拟对象的动态渲染系统的一个实施例结构示意图,该虚拟对象的动态渲染系统包括:
    85.获取单元301,用于获取用户的移动操作指令,并根据移动操作指令移动第一虚拟对象或第二虚拟对象;
    86.判断单元302,用于在移动过程中判断在三维虚拟世界中当前第一虚拟对象到虚拟摄像机的第一距离是否小于第二虚拟对象到虚拟摄像机的第二距离;
    87.渲染单元303,用于当判断单元确定第一距离小于第二距离时,先渲染第二虚拟对象然后渲染第一虚拟对象。
    88.可选的,该系统还包括修改单元304;该修改单元304具体用于:
    89.修改第一距离参数,第一距离参数为在三维虚拟世界中,第一虚拟对象在被移动前与虚拟摄像机的距离参数;
    90.和/或
    91.修改第二距离参数,第二距离参数为在三维虚拟世界中,第二虚拟对象在被移动前与虚拟摄像机的距离参数。
    92.可选的,该修改单元304具体用于:
    93.获取用户输入的第三距离参数,第三距离参数小于第二距离参数;
    94.将第一距离参数修改为第三距离参数;
    95.修改第二距离参数包括:
    96.获取用户输入的第四距离参数,第四距离参数大于第一距离参数;
    97.将第二距离参数修改为第四距离参数。
    98.可选的,该修改单元304具体用于:
    99.将第一距离参数同步为在三维虚拟世界中当前第一虚拟对象与虚拟摄像机的第一距离。
    100.修改第二距离参数包括:
    101.将第一距离参数同步为在三维虚拟世界中当前第一虚拟对象与虚拟摄像机的第二距离。
    102.可选的,该判断单元303具体用于:
    103.分别确定在三维虚拟世界中当前第一虚拟对象的第一坐标值,第二虚拟对象的第二坐标值,虚拟摄像机的第三坐标值;
    104.根据第一坐标值、第二坐标值以及第三坐标值判断第一虚拟对象到虚拟摄像机的第一距离是否小于第二虚拟对象到虚拟摄像机的第二距离。
    105.可选的,第一虚拟对象和第二虚拟对象在三维虚拟世界中均为半透明对象。
    106.可选的,该渲染单元303具体用于:
    107.将第一虚拟对象的透明度调整至预设值。
    108.本技术还提供了一种虚拟对象的动态渲染方法装置,包括:
    109.处理器401、存储器402、输入输出单元403、总线404;
    110.处理器401与存储器402、输入输出单元403以及总线404相连;
    111.存储器402保存有程序,处理器401调用程序以执行如上任一虚拟对象的动态渲染方法。
    112.本技术还涉及一种计算机可读存储介质,计算机可读存储介质上保存有程序,其特征在于,当程序在计算机上运行时,使得计算机执行如上任一虚拟对象的动态渲染方法。
    113.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
    114.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
    115.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
    116.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单
    元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
    117.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
    转载请注明原文地址:https://tc.8miu.com/read-486.html

    最新回复(0)