CN109523621B - 对象的加载方法和装置、存储介质、电子装置 - Google Patents

对象的加载方法和装置、存储介质、电子装置 Download PDF

Info

Publication number
CN109523621B
CN109523621B CN201811361060.0A CN201811361060A CN109523621B CN 109523621 B CN109523621 B CN 109523621B CN 201811361060 A CN201811361060 A CN 201811361060A CN 109523621 B CN109523621 B CN 109523621B
Authority
CN
China
Prior art keywords
subspace
target
type
visual
virtual scene
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
Application number
CN201811361060.0A
Other languages
English (en)
Other versions
CN109523621A (zh
Inventor
魏知晓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201811361060.0A priority Critical patent/CN109523621B/zh
Publication of CN109523621A publication Critical patent/CN109523621A/zh
Priority to JP2020562114A priority patent/JP7125512B2/ja
Priority to EP19884357.5A priority patent/EP3882865A4/en
Priority to PCT/CN2019/115611 priority patent/WO2020098531A1/zh
Priority to US17/078,053 priority patent/US11270497B2/en
Application granted granted Critical
Publication of CN109523621B publication Critical patent/CN109523621B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明公开了一种对象的加载方法和装置、存储介质、电子装置。其中,该方法包括:确定目标应用提供的虚拟场景中位于图像采集设备的采集范围内的可视空间,图像采集设备为当前位于虚拟场景中的第一位置的采集设备;基于第一位置确定可视空间内位于多种类型中目标类型所指示的可视距离阈值内的目标子空间,多种类型中的每种类型用于指示虚拟场景的子空间内对象的一个可视距离阈值;获取目标子空间中可视距离不大于目标类型所指示的可视距离阈值的对象为待渲染对象;在安装有目标应用的用户终端的存储资源中加载待渲染对象,用户终端用于渲染出虚拟场景的图像。本发明解决了相关技术中渲染虚拟场景中的对象所占用的硬件资源较多的技术问题。

Description

对象的加载方法和装置、存储介质、电子装置
技术领域
本发明涉及互联网领域,具体而言,涉及一种对象的加载方法和装置、存储介质、电子装置。
背景技术
3D是英文“3Dimensions”的简称,中文是指三维立体的,3D就是空间的概念,由X、Y、Z三个轴组成的空间,是相对于只有长和宽的平面(2D)而言。
3D虚拟场景的搭建是3D的重要应用之一,例如,在大型游戏中,往往配以大场景,场景内诸如人、动物、房屋、树木、石头等单位数目众多,游戏过程中,游戏画面每更新一帧,就要对场景内的对象进行一次逐一处理,包括渲染和动画等,该渲染处理过程是一项复杂的任务,越大型的游戏,处理给处理器等硬件资源带来的负担越重。且随着网络游戏的发展,游戏种类越来越多,复杂度也随之提升,虚拟场景中对象数量不断攀升,如何降低处理的能耗以及对处理器等硬件资源的压力成为函待解决的问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种对象的加载方法和装置、存储介质、电子装置,以至少解决相关技术中渲染虚拟场景中的对象所占用的硬件资源较多的技术问题。
根据本发明实施例的一个方面,提供了一种对象的加载方法,包括:确定目标应用提供的虚拟场景中位于图像采集设备的采集范围内的可视空间,其中,图像采集设备为当前位于虚拟场景中的第一位置的采集设备;基于第一位置确定可视空间内位于多种类型中目标类型所指示的可视距离阈值内的目标子空间,其中,多种类型中的每种类型用于指示虚拟场景的子空间内对象的一个可视距离阈值;获取目标子空间中可视距离不大于目标类型所指示的可视距离阈值的对象为待渲染对象;在安装有目标应用的用户终端的存储资源中加载待渲染对象,其中,用户终端用于渲染出虚拟场景的图像。
根据本发明实施例的另一方面,还提供了一种对象的加载装置,包括:第一确定单元,用于确定目标应用提供的虚拟场景中位于图像采集设备的采集范围内的可视空间,其中,图像采集设备为当前位于虚拟场景中的第一位置的采集设备;第二确定单元,用于基于第一位置确定可视空间内位于多种类型中目标类型所指示的可视距离阈值内的目标子空间,其中,多种类型中的每种类型用于指示虚拟场景的子空间内对象的一个可视距离阈值;获取单元,用于获取目标子空间中可视距离不大于目标类型所指示的可视距离阈值的对象为待渲染对象;加载单元,用于在安装有目标应用的用户终端的存储资源中加载待渲染对象,其中,用户终端用于渲染出虚拟场景的图像。
根据本发明实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。
根据本发明实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。
在本发明实施例中,确定目标应用提供的虚拟场景中位于图像采集设备的采集范围内的可视空间,获取目标子空间中可视距离不大于目标类型所指示的可视距离阈值的对象为待渲染对象;在安装有目标应用的用户终端的存储资源中加载待渲染对象,对于位于不同位置的可视空间,仅仅加载对于用户而言实际可见的对象,可以解决相关技术中渲染虚拟场景中的对象所占用的硬件资源较多的技术问题,可以显著降低对内存的资源占用,还能够降低对CPU和GPU硬件资源的消耗。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的对象的加载方法的硬件环境的示意图;
图2是根据本发明实施例的一种可选的对象的加载方法的流程图;
图3是根据本发明实施例的一种可选的场景中网格区块的示意图;
图4是根据本发明实施例的一种可选的场景中网格区块的示意图;
图5是根据本发明实施例的一种可选的场景中网格区块的示意图;
图6是根据本发明实施例的一种可选的场景中网格区块的示意图;
图7是根据本发明实施例的一种可选的场景中坐标系的示意图;
图8是根据本发明实施例的一种可选的场景的预处理的流程图;
图9是根据本发明实施例的一种可选的场景中包围盒的示意图;
图10是根据本发明实施例的一种可选的场景中网格的示意图;
图11是根据本发明实施例的一种可选的场景的示意图;
图12是根据本发明实施例的一种可选的场景的示意图;
图13是根据本发明实施例的一种可选的场景的示意图;
图14是根据本发明实施例的一种可选的场景的对象加载的流程图;
图15是根据本发明实施例的一种可选的对象的加载装置的示意图;以及
图16是根据本发明实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请主要用于解决大型3D场景在性能有限的设备上的动态加载和连续展现的问题,例如在计算机游戏中为用户展现虚拟的超大型3D世界,通常一个3D场景里有大量点、面、图片数据,而大型3D场景模拟至少几平方公里以上的虚拟世界,更是无法全部载入到性能有限的设备上被处理。
为了克服上述问题,根据本发明实施例的一方面,提供了一种对象的加载方法的方法实施例,利用本申请的技术方案,处理过程中在可视范围内的场景内容会被加载到,且保证了最小化性能开销,不应该被看见的场景内容被卸载出内存等硬件资源,场景内容的连贯出现,即不出现因可视物件闪现引起的视觉卡顿。
可选地,在本实施例中,上述对象的加载方法可以应用于如图1所示的由服务器101和/或用户终端103所构成的硬件环境中。如图1所示,服务器101通过网络与用户终端103进行连接,可用于为用户终端或用户终端上安装的客户端提供服务(如游戏服务、应用服务等),可在服务器上或独立于服务器设置数据库105,用于为服务器101提供数据存储和数据读取服务,上述网络包括但不限于:广域网、城域网或局域网,用户终端103并不限定于PC、手机、平板电脑等。
本发明实施例的对象的加载方法可以由用户终端103来执行,用户终端103执行本发明实施例的对象的加载方法也可以是由安装在其上的客户端来执行。本申请的应用场景可以在各种计算机设备(包括但不限于PC电脑、移动手机、平板电脑、嵌入式设备、服务器、游戏主机等设备)中使用目标应用这一软件渲染出的3D大场景(如大型3D游戏、3D动画、VR展示中的场景渲染),此处的渲染可以理解为计算机处理数字化的美术内容并将其绘制在显示设备上的过程。本申请的技术方案适用的场景包括但不局限于如下场景:
1)在采用增强现实AR、虚拟现实VR等的社交应用中,在用户登陆后,若在其视野范围内出现大量对象(如场景中的山水、建筑,其它用户,用户宠物等对象等),对大量对象进行图像渲染需要长时间的占用大量性能资源(包括对象信息在内存中的加载、央处理器CPU和图像处理器GPU的渲染等操作),此时则可以采用本申请的技术方案来对大量对象进行筛选,筛选出对于当前用户而言可见的对象,并加载和渲染这些可见的对象,从而达到降低图像渲染占用的硬件资源(如CPU、内存、GPU)的目的。
2)在游戏应用中,当玩家处于游戏的过程中,可能在其可视范围内突然出现大量其它玩家角色、非玩家控制NPC角色、山水建筑等对象,受限于终端的性能资源,此时终端的性能资源会大量地被渲染操作所占用,从而造成终端的可用性能资源大量下降,在用户侧的感观为终端卡顿、响应缓慢、掉帧等,此时则可以采用本申请的技术方案,对大量对象进行筛选,筛选出对于当前用户而言可见的对象,并加载和渲染这些可见的对象,从而达到降低图像渲染占用的硬件资源的目的。
3)在军事战争类、医学等仿真应用中,以军事战争仿真应用为例,当可视范围内存在大量军事人员、军事设备、军事场景等对象时,终端可对大量对象进行筛选,筛选出对于当前用户而言可见的对象,并加载和渲染这些可见的对象,从而降低了图像渲染所占用的硬件资源。
上述实施例的场景通常有这样的特性,需要渲染大规模的3D场景(通常超过几平方公里),场景包含的物件对象众多(数量通常在几万以上),细节复杂,甚至有些产品中需要模拟真实的看上去无边际的超大世界,事实上设备的内存和处理器性能有限,尤其是在移动设备上内存和处理器性能更加有限,无法将整个场景全部载入并处理,需要动态的载入可视的场景区域和卸载不可视的场景区域,来达到渲染目的。本申请的方案正是在此类产品中解决动态加卸载场景区域的问题,并能够使用一种优化的方案保证动态加卸载的过程中,尽量最小化的内存占用,并能够平滑的展现新进入视野的物体。
图2是根据本发明实施例的一种可选的对象的加载方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤S202,用户终端确定目标应用提供的虚拟场景中位于图像采集设备的采集范围内的可视空间,图像采集设备为当前位于虚拟场景中的第一位置的采集设备。
上述的目标应用可为采用AR、VR的社交应用、游戏应用、军事战争类、医学类仿真应用等应用;该目标应用安装在用户终端上后可形成客户端,虚拟场景可以为社交场景、游戏场景、仿真场景等,这些场景可以通过用户终端上的客户端呈现。
上述的图像采集设备可为虚拟的图像采集设备,用于模拟第一人称视角、第三人称视角(视角也可称为视场角,是用来量化当前观察场景的位置的用户这一观察者的视野的角度)等进行图像采集,相当于图像采集设备的可视范围即用户的可视范围,该图像采集设备具体可以为在渲染引擎中调用的功能组件,如游戏引擎Unity中的相机Camera。
上述虚拟场景为3D场景,即依靠计算机设备(如前述服务器或者用户终端)模拟计算并绘制到显示设备上的虚拟场景内容,可以按照某个间隔单位(如间隔1米、10米等)将虚拟场景划分为若干个子空间(或称为网格),上述的可视空间即为位于图像采集设备的采集范围内的子空间的集合(可以包括至少一个子空间),例如,给定图像采集设备可采集距离,即可按确定距离在该可采集距离内的子空间为可视空间。
步骤S204,用户终端基于第一位置确定可视空间内位于多种类型中目标类型所指示的可视距离阈值内的目标子空间,多种类型中的每种类型用于指示虚拟场景的子空间内对象的一个可视距离阈值。
步骤S206,用户终端获取目标子空间中可视距离不大于目标类型所指示的可视距离阈值的对象为待渲染对象。
可选地,对于虚拟场景中的对象(如场景对象山水建筑、其他用户、宠物等),有一定的可视距离(即能够看见该对象的最远距离),换言之,超过了该可视距离,那么就对于用户不可见,上述的多种类型中的每种类型对应于一个可视距离阈值,即将虚拟场景的子空间按照可视距离进行分类,对于相同类型的子空间,可以采用相同的方式过滤掉可视距离大于对应的可视距离阈值的对象,而获取其中可视距离小于等于可视距离阈值的对象,即目标子空间内的对象,也即仅仅获取对于用户而言实际可见的对象。
步骤S208,在安装有目标应用的用户终端的存储资源中加载待渲染对象,用户终端用于渲染出虚拟场景的图像,此处的渲染是指计算机设备处理数字化的美术内容并将其绘制在显示设备上的过程。
相较于相关技术中,加载整个场景中的对象,或者加载用户的可视范围内的所有对象,本申请的技术方案是仅仅加载对于用户而言可见的对象,可以显著降低对内存的需求(即加载对象所需的内存会更小),与此同时,CPU和GPU所处理的对象也更少,还能够降低对CPU和GPU硬件资源的消耗。
上述实施例以本申请实施例的对象的加载方法由用户终端103来执行为例进行说明,本申请实施例的对象的加载方法也可以由服务器101来执行,该实施例与前述实施例的区别在于执行主体由用户终端替换为了服务器,本申请实施例的对象的加载方法还可以是由服务器101和终端103共同执行。
通过上述步骤,确定目标应用提供的虚拟场景中位于图像采集设备的采集范围内的可视空间,基于第一位置确定可视空间内位于多种类型中目标类型所指示的可视距离阈值内的目标子空间,获取目标子空间中可视距离不大于目标类型所指示的可视距离阈值的对象为待渲染对象;在安装有目标应用的用户终端的存储资源中加载待渲染对象,由于所加载的是对用户而言实际可见的对象,可以解决相关技术中渲染虚拟场景中的对象所占用的硬件资源较多的技术问题,可以显著降低对内存的资源占用,还能够降低对CPU和GPU硬件资源的消耗。
本申请通过自动化地把大型3D场景(即前述虚拟场景)处理成一种多级(每一级可以认为是一种类型,多级即前述的多种类型)的细节网格结构,该网格的特点是每一层次的网格密度和大小不一,物件根据其可视距离情况被放置在合适的一级,加载中在每一个细节层对观察位置周围网格确定可视性后动态地加载卸载网格中的物件。下面结合图2所示的步骤,以将本申请的技术方案应用于游戏场景为例详述本申请的技术方案:
在步骤S202提供的技术方案中,在用户进入游戏应用后,用户终端确定目标应用提供的虚拟场景中位于图像采集设备的采集范围内的(或称待呈现给用户的)可视空间,该图像采集设备为当前位于虚拟场景中的第一位置用于模拟用户视野的采集设备。
为了在整个虚拟场景中分离出位于用户的可视范围内的可视空间,本申请的技术方案可对场景物件的可视情况预先进行量化并组织在一种空间数据结构中,该结构保证了越细节的场景物体被加载的范围越小,大场景中同时被加载卸载处理的空间区域始终在一定数量下,大部分物件都不会被纳入到可视化判断和加载处理,在保证可视范围内的物体一定被准确加载的同时,尽可能地最小化载入到设备的资源。下面结合步骤1-步骤2进行详述:
步骤1,在确定目标应用提供的虚拟场景中位于图像采集设备的采集范围内的可视空间之前,确定多种类型中的每种类型所对应的网格密度,换言之,就是多种类型中的每种类型用于表示一个网格密度(即一种虚拟场景的空间划分粒度),那么有多少种网格密度,那么就存在多少种类型。
可选地,在确定多种类型中的每种类型所对应的网格密度时,可以通过如下所示的步骤11-步骤12实现:
步骤11,获取虚拟场景中所有对象的可视距离中的最大可视距离和最小可视距离。
在获取虚拟场景中所有对象的可视距离中的最大可视距离和最小可视距离时,可以按照如下方式获取虚拟场景中每个对象的可视距离:预先确定对象的最小可视屏占比Smin(即预设参数),运算屏占比阈值(或称可视屏占比Smin)与图像采集设备的当前视角的正切值的2倍之间的乘积,记为第二乘积,并计算每个对象在三维坐标系中三个维度上的坐标的最大值(即在X轴、Y轴和Z轴上的坐标的最大值)与预设参数(预设参数可以认为是一个预先设定的为正数的参数,如1.1)之间的乘积,记为第一乘积,然后计算每个对象的第一乘积与第二乘积之间的比值,该比值即每个对象的可视距离;在按照上述方式计算完每个对象的可视距离后,即可从虚拟场景中所有对象的可视距离查找最大可视距离和最小可视距离。
在上述实施例中,在物体的屏占比时,可假设物体最终渲染到屏幕上所占有的区域的长和宽的像素是h和w,设当前整个屏幕的长和宽的像素分别为Sh,Sw,取h/Sh和w/Sw的最小值为物体当前的屏占比,最小可视屏占比即为用户可视化的最小屏占比。
步骤12,按照最大可视距离和最小可视距离确定多种类型中的每种类型所对应的网格密度。
求取所有对象的可视距离中的最大可视距离Dmax和最小可视距离Dmin的目的在于,将最大可视距离和最小可视距离之间的距离进行等分处理,可选地,此处的等分数量可以是预先确定分成m份,即份数的数值m是预先确定好的,第i种(i的取值大于等于1且小于等于m+1)类型对应的可视距离即Dmin+i*(Dmax-Dmin)/m。
可选地,此处的等分数量也可根据最大可视距离Dmax和最小可视距离Dmin确定,例如,在按照最大可视距离和最小可视距离确定多种类型中的每种类型所对应的网格密度时,可对最大可视距离与最小可视距离之间的比值向下取整,得到第一阈值(即等分数量,此处可以用n表示),该第一阈值也可用于表示多种类型的类型数量;然后将(最大可视距离Dmax-最小可视距离Dmin)/最小可视距离Dmin作为目标距离;将多种类型中第i个类型的所对应的网格密度所表示的网格间距设置为目标间距的i倍,i为大于0且小于等于第一阈值的整数。
本申请可采用不同的方式对多层网格进行划分,例如采用多层网格中每一层的加载距离定义为一个Dsequece={Dl,Dl*2,Dl*3,…,Dl*n}序列,当然,也可定义其他类型的距离序列,虽然可能加载卸载效果有差别,应该认为不管多层网格距离间的关系序列是怎样,所有设计成多种层次加载距离网格,且这些距离间存在某种关系或者无关系的方案都同本方案类似。
可选地,可采用其他方式来衡量物件的加载距离,而不一定是D=1.1*max(Bx,By,Bz)/(2*Smin*tan(fov/2)),应该认为所有基于为物件衡量加载距离,然后基于加载距离在多层细节网格上加载的方案都同本方案类似。
步骤2,按照多种类型中每种类型所对应的网格密度为多种类型中每种类型创建配置信息,并将多种类型中每种类型的配置信息保存至配置文件,配置信息中记录有按照相应的网格密度进行划分的子空间内的对象和子空间所在的第二位置。
可选地,在按照前述内容确定每种类型对应的网格密度之后,在按照多种类型中每种类型所对应的网格密度为多种类型中每种类型创建配置信息时,可以通过如下方式实现:
步骤21,确定虚拟场景中按照多种类型中每种类型所对应的网格密度进行划分而得到的子空间(每个网格相当于一个子空间),也即对于每种类型,可以按照该类型所对应的网格密度来对整个虚拟场景进行划分,并对虚拟场景中的网格进行顺序编码(每个格子相当于三维空间中的一个单位);查找虚拟场景中每个子空间内可视距离与每种类型所指示的可视距离阈值匹配的对象,对第i种类型,可以将可视距离在[i*Dmin,(i-1)Dmin)内的对象作为与第i种类型所指示的可视距离阈值匹配的对象,同时可定位好该对象在虚拟场景中所在的网格,并在一条配置信息中保存每个子空间与查找到的对象之间的关联关系,对于多种类型中的每种类型,可以在一条配置信息中保存,每条配置信息中保存有相应网格密度下所有网格的内的对象。
在一个可选的实施例中,若某种类型下,所对应的网格密度下,不存在可视的对象,那么可删除该类型下的配置信息,以节省存储空间。
在步骤S204提供的技术方案中,用户终端基于第一位置确定可视空间内位于多种类型中目标类型所指示的可视距离阈值内的目标子空间,多种类型中的每种类型用于指示虚拟场景的子空间内对象的一个可视距离阈值。
上述的目标类型为多种类型中的任意类型,换言之,对于每种类型,可以存在一个对应的目标子空间,即对第i种类型,可以将与第一位置之间的间距在i*Dmin以内的子空间作为第i种类型对应的目标子空间。
可选地,在基于第一位置确定可视空间内位于多种类型中目标类型所指示的可视距离阈值内的目标子空间时,可以按照如下方式实现:
可选地,可获取可视空间的子空间与第一位置之间的间隔距离;将可视空间内与第一位置之间的间隔距离不大于目标类型所指示的可视距离阈值的子空间作为目标子空间。
在步骤S206提供的技术方案中,用户终端获取目标子空间中可视距离不大于目标类型所指示的可视距离阈值的对象为待渲染对象。
在该实施例中,获取目标子空间中可视距离不大于目标类型所指示的可视距离阈值的对象为待渲染对象可以通过如下方式实现:获取配置文件,配置文件中记录虚拟场景按照以上所述的网格密度进行划分时的子空间(或称网格)内与多种类型中每种类型关联的对象,虚拟场景的子空间内的每个对象被设置为与多种类型中不大于所指示的可视距离阈值的类型关联;获取配置文件中记录的目标子空间内与目标类型关联的对象为待渲染对象。
在根据配置文件中记录的可视空间内与目标类型关联的对象确定待渲染对象时,可以将可视空间内所有与目标类型关联的对象作为待渲染对象。
在步骤S208提供的技术方案中,在安装有目标应用的用户终端的存储资源中加载待渲染对象,用户终端用于渲染出虚拟场景的图像,此处的渲染是指计算机设备处理数字化的美术内容并将其绘制在显示设备上的过程。
可选地,在安装有目标应用的用户终端的存储资源中加载待渲染对象时,在用户终端的存储资源当前保存的对象中包括待渲染对象的情况下,继续在用户终端的存储资源中保存待渲染对象,并删除用户终端的存储资源中除待渲染对象以外的对象,也即本次渲染与前一次渲染存在部分或者全部相同的对象的情况下,仅需要增加前一次没有的待渲染对象并删除前一次需要渲染而本次不需要渲染的对象;在用户终端的存储资源当前保存的对象中不包括待渲染对象的情况下,删除保存在用户终端的存储资源中的对象,并将待渲染对象加载至用户终端的存储资源中,也即本次渲染与前一次渲染全部不相同的情况下,直接删除前一次的所有对象,然后增加本次待渲染对象。
可选地,在安装有目标应用的用户终端的存储资源中加载待渲染对象之后,将目标子空间的网格密度设置为与目标类型对应的网格密度匹配,并在设置网格密度后的目标子空间中渲染出待渲染对象,多种类型中的任一类型用于指示按照与任一类型对应的网格密度来渲染虚拟场景的子空间内可视距离不大于任一类型所指示的可视距离阈值的对象,多种类型中第一类型对应的网格密度大于多种类型中第二类型对应的网格密度,第一类型所指示的可视距离阈值小于第二类型所指示的可视距离阈值。
采用本申请的技术方案:量化场景里所有物件的可视距离并把它们组织到一种多级场景网格的数据结构上,以物件的可视距离为基本单元,程序运行时,对于每个层次的观察位置周围的固定数量网格列为可见性的考察范围,判断物件的可见性并加载,由于细小的物件在尺度更小的场景网格中,因此越细节的物体判断可见性的范围也越小,加载进入的内存的量也越小,从而使得对系统存储、CPU以及GPU的资源占用减小。
作为一种可选的实施例,下面以将本申请的技术方案应用于游戏的虚拟场景为例进一步详述本申请的技术方案。
在相关的进行3D大场景加载的技术方案中,如Unity3D引擎中,把大场景人工地划分成几个分隔开的单独的小场景来制作,简单按照空间位置划分,程序运行中动态地载入卸载这些小场景;UnrealEngine4引擎中,人工地把大场景划分成几个子关卡,每个子关卡可以单独设置加载距离和场景中物件,子关卡之间没有必然的空间关系,程序运行中遍历每个子关卡的加载距离确定其加载卸载。
在上述的相关技术方案中,采取全场景加载的方式,对于超大型场景载入的设备内存占用是瓶颈;在以Unity3D和UnrealEngine4为代表的主流商业游戏引擎中,这些方案虽然能够实现大场景中物件加载的准确性,但是方案难以最小化场景对设备内存的占用,即都会出现过度加载的情况。
申请人认识到,理想的情况下,可以只用加载可视物件,这样既能保证加载的准确性,还能是的对于硬件资源的消耗最低,相关技术中方案都是以空间位置为基本单元进行加载或编辑,而在相同空间区域上也存在不同体积和细节程度的物体,在给定观察距离上,不同体积和细节的物体的可见性也是不同的,把整个相关区域都加载进来会浪费不必要的内存。
若采用人工的对场景进行子场景划分,当场景达到一定规模之后,这种人工划分耗费的时间是不可承受的,并且也很难完全准确地将物件放置在最合适的网格内,本方案以物件的可视距离为依据,用算法自动地对场景做多级网格划分,更科学且节省人力。
本申请技术方案的核心是场景物件的加载距离是和物件的可视距离相关的,不以空间位置为基本单元加载,而是以物件的可视距离为基本单元,首先量化场景里所有物件的可视距离并把它们组织到一种多级场景网格的数据结构上,程序运行时,对于每个层次的观察位置周围的固定数量网格列为可见性的考察范围,判断物件的可见性并加载,由于细小的物件在尺度更小的场景网格中,导致越细节的物体判断可见性的范围也越小,加载进入的内存的量也越小,这也符合越细小的物体可视距离越近的规律。
本方案主要包括两个阶段的实现,第一个阶段是对场景的预处理,第二个阶段是在处理后的场景上进行动态的加载卸载部分场景。
预处理的过程可把场景自动化地处理成本申请所指的多级细节网格结构,将场景处理成这种多级细节网格的方案是本申请的重要组成部分,它有利于场景在动态加载时根据物件的细节程度进行加载,最小化加载时设备占用的资源,场景被预处理的结果是场景中的每一个对象被划分到某个层次L的某个空间区块上,如图3至图6示出了不同层次网格区块内包含的场景物件,从图3至图6示出的网格尺度逐渐变小,可以看到网格尺度越小的网格容纳的场景物件尺寸也越小,场景物件的加载距离也越近,尺度较大的网格层次内包含的都是更粗粒度的场景物件,尺度较小的网格层次内包含的都是更细节的场景物件。
在下面计算步骤的表达中要做如下几个公式定义:
坐标系的定义,本申请的方案所在的坐标系可为3D笛卡尔坐标系,坐标系的三个轴X轴、Y轴以及Z轴,如图7所示。
max(n0,n1,n2,…),表示求这个序列n0,n1,n2等中的最大值。
tan(x),表示求x(单位为弧度)的正切值。
floor(x),表示所有不大于x的整数中最大的那个整数。
ceil(x),表示所有不小于x的整数中最小的那个整数。
abs(x),表示x的绝对值。
场景的预处理阶段的处理流程如流程图8所示,左侧是对场景中的每个物件(或称对象)进行处理,右侧是对场景空间网格进行处理。
详细步骤描述如下:
步骤S801,基于包围盒和最小屏幕显示比例(即最下屏幕占比)计算加载距离。
预处理的输入可以是美术设计人员使用各种场景编辑器编辑好的原始大场景中的场景资源对象,场景资源由很多场景物件组成,一个场景物件是场景中一个相对独立的渲染对象实体(例如石头、树木、建筑等),场景物件通常包含一个它所处于的场景的世界坐标位置P,P可以使用一个三维坐标(Px,Py,Pz)表示,此外每个场景物件还包含一个它的包围盒Bounds(xmin,ymin,zmin,length,height,width),它的最小可视屏占比Smin,通常在渲染中,可认为物体当前的屏占比小于Smin,该物件就不可见(例如离观察位置很远的一个物件,它的屏占比很小)。场景的规模很大,即场景中物件分布的区域很大,可能高于几公里,且场景的物件数量很多,通常高于几万个。如图9是一个典型的输入场景,图9中的立方体表示的是这个建筑的包围盒。
物体的包围盒,即包括一个物体的体积最小的立方体称为它的包围盒。物体的包围盒可以表示成一个6元的数值Bounds(xmin,ymin,zmin,length,height,width),其中xmin,ymin,zmin分分别代表这个包围盒包含区域中在世界坐标轴x、y、z上的最小值,length,height,width分别代表这个包围盒包含区域在世界坐标轴x、y、z三个方向的跨度长度。
步骤S802,生成物件的加载代理对象Proxy。
遍历计算场景的所有物件,对于每个遍历到的物件,计算它的加载距离D。设当前观察位置的视场角为fov(单位为弧度),D的计算方式定义为D=1.1*max(Bx,By,Bz)/(2*Smin*tan(fov/2))。它的含义是当物件与观察位置的距离大于D的时候就可认为该物件不可视了,D的计算和当前的观察位置,物件的最小屏占比相关。
遍历计算场景的所有物件,对于每个遍历到的物件,生成一个加载代理对象Proxy,Proxy可包含如下括号中的几个元素(Path,P,R,S,D,B,id),其中Path是这个物件的资源路径,D是加载距离,P是场景中的位置,R是旋转,S是缩放,B是包围盒,id是这个场景物件的唯一标识。
步骤S803,根据物件加载距离分布计算多层网格中最小和最大的网格大小Gmin,Gmax,并在其间均匀产生一系列网格大小{Gmin,Gmin*2,Gmin*3,…,Gmax}。
统计所有场景物件的加载距离,找出其中最小的加载距离Dmin和最大的加载距离Dmax,根据Dmin和Dmax生成一组序列Dsequece={Dl,Dl*2,Dl*3,…,Dl*n},其中,n=ceil(Dmax/Dmin),D1可以为Dmin,计算整个场景的包围盒大小Bscene,Bscene的大小是能包含场景所有物体的最小的立方体。Bscene的6元数值表示记为(Bscene_x,Bscene_y,Bscene_z,Bscene_length,Bscene_height,Bscene_width)。
步骤S804,对每个层次,按照该层次的网格大小来均匀的划分整个场景空间,生成一系列场景网格。
基于Dsequece生成一组网格层次,对于Dsequece中的每一个元素Di(其中1<=i<=n),代表第i层网格,遍历每一个层此作如下操作:在第l层上,将场景均匀分成如图10的网格结构,它由很多区块组成,其中在x轴方向第i列,z轴方向第k行的区块表示为Block(l,i,k),每个Block至少包含两个元素,它包含的场景物件代理对象id列表,和它的包围盒Bounds(l,i,k),Bounds(l,i,k)的6元数值表示是[(i+0.5)*Dl+Bscene_x,Bscene_y,(k+0.5)*Dl+Bscene_z,Dl,Bscene_height,Dl]。
步骤S805,根据加载距离计算适合容纳它的网格大小G,并把它归属在大小为G的那一层网格中。
遍历场景中的所有代理对象Proxy,首先根据它的加载距离D选择它所在的网格层次L,L是Dsequece中大于或者等于D的所有元素中的最小的那一个。
步骤S806,在大小为G的网格层上,找到所有与其有空间重叠的网格集合S,对集合的每个网格记录下Proxy的Id。
然后再遍历第L层上的所有区块,计算每个区块的包围盒Bounds(l,i,k)和代理对象Proxy的包围盒B的重合度S,两个包围盒的重合度计算是计算他们重叠的空间区域。如果S>0说明这个代理对象相关的场景物件在这个区块Block(l,i,k)的空间内,如果Block(l,i,k)同Proxy的重合度S大于0,则将Proxy的id记录在这个Block(l,i,k)的id列表内。
步骤S807,移除没有容纳任何场景物件的空间网格和层次。
遍历每一个层次网格的每一个空间区块Bounds(l,i,k),找到id列表内容为空的区块,将其删除。遍历每一个层次的网格,对其中空间区块数量为0的层次删除。
步骤S808,将每个层次的网格及其包含的物件的Proxy信息序列化保存到当前场景中。
保存当前剩下的所有空间网格区块Bounds(l,i,k)到场景文件中。
步骤S809,清空当前场景的所有显示物体,保存为新的场景(即处理后的场景)。
保存所有代理对象Proxy信息到场景文件中,清空场景中的所有场景物件,保存成新的场景文件。
本申请的方案在运行时部分是指场景在被预先处理后可以在运行时动态的加载卸载,即根据当前观察者的位置(或摄像机位置)准确找到当前可视的物件进行加载。场景随观察观察位置的加载卸载过程可以参考图11至图13所示,显示了场景的一个固定区域,随着观察位置(摄像机)在场景中的移动,这个场景区域内加载的物件会发生变化,如图11至图13的变化趋势是观察位置越接近这个区域,这个区域的细节程度越丰富,越远离这个区域,这个区域内加载的就越只剩下高大的物体。这符合真实的情况,即远离一个区域,只能看到该区域明显的物体,而细节物体会逐渐消失。同不考虑空间细节层次的场景加载方法相比,本方案可以最大程度节省当前场景中加载的物件的数量。
场景加载阶段的运行时加卸载的流程如流程图14所示,运行时在每一帧都做流程图的处理,每一帧的处理过程又分为两部分,第一部分是在每一个层级的网格上基于视点判断当前可视的场景网格,并将其加入待考察列表;第二部分则是对待考察列表范围内的每个物件根据其加载距离去判定其是否应该被加载。
一种可选的实现步骤如下:
步骤S1401,对于含有多层细节网格结构信息的场景,加载初始化网格信息。
程序启动(或场景初始化)时,加载场景文件,将当期场景的所有空间网格区块Bounds(l,i,k)和场景物件代理对象Proxy保存到内存中。
在程序运行的每一帧(或者定时地)进行如下第3步骤及以下的流程。
首先,对于每一层级L判定网格是否加入待考察列表C。
步骤S1402,计算当前视点所在的当前网格序号id。
步骤S1403,判断当前id与id_old相比,是否相同,若是则执行步骤S1408,否则执行步骤S1404。
步骤S1404,设置id_old=id。
步骤S1405,找到当前网格id附近的9块不为空的网格集合S。
步骤S1406,S与S_old相比,把在S不在S-old中的网格加入待考察网格列表C,把不在S中在S_old中的网格移除C,并卸载其中的物件。
步骤S1407,设置S_old=S。
在上述方案中可获取当前所处观察位置的3D坐标为Location,遍历当前的每一层网格进行如下计算:在第l层网格上,计算Location所处的场景网格坐标P_location,P_location在x轴上的网格序号Li为floor((Location.x-Bscene_x)/Dl),在z轴上的网格序号Lk为floor((Location.z-Bscene_z)/Dl),找到所有满足abs(Li-i)<=1,并且abs(Lk-k)<=1的网格区块Block(l,i,k),将这些Block中的id列表中记录的所有Proxy加入到当前场景的待加载列表LoadList中。
对待考察网格中每个物件的可见性判定。
步骤S1408,计算物件到当前视角的距离的平方D1。
步骤S1409,D1同该物件的加载距离平方D2相比。
步骤S1410,若比较结果为小于等于,如果物件没有加载则加载。
步骤S1411,若比较结果为小于大于,如果物件有加载且再所有包含它的网格中不可见则卸载。
在上述方案,对于当前场景中所有已经加载了的proxy,检查它是否处于LoadList中,如果不处于,则将其卸载或隐藏。遍历当前的LoadList中的每一个场景物件代理对象Proxy,计算该物件距离当前观察位置的距离D,如果D<Proxy.D,则将该物件加载,即读取Proxy的物件资源路径和位置信息,将其加载并显示在该位置上。清空当前的LoadList。
采用本申请的技术方案,至少具备如下技术效果:本方案通过一种动态加载卸载场景区域内容的方案实现了超大型3D场景在性能有限的硬件设备(如移动手机)上的加载和连续展现;本方案同现有业界其他方案相比最大的性能提升在于:通过将场景组织成一种多层细节网格结构,相当于表达了场景中的不同物件的细节程度信息,并且对物件基于可视距离加载,而非现有主流方案那样对场景区域不考虑细节程度统一按照同一个空间距离加载,可以最大程度的减少实际上看不到的细节物体的加载,减少场景加载中产生的内存占用,降低图形渲染的复杂度,在同一个场景观察位置,随着摄像机的远离,高大的建筑仍然保留加载,而更细节的物体会逐渐消失,相关技术方案中不考虑细节层次的分块加载方案难以保证细节的物体先于高大物体消失,通常为了照顾到要远距离观察到高大的建筑物而扩大加载区块的大小,大量增加了看不见的细节物件的加载;本方案的场景细节层次结构的划分和处理完全自动化处理,在实际的项目应用中,场景的艺术设计人员不需要关心考虑场景物件的区块划分或者分块设计,制作流程简单。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
根据本发明实施例的另一个方面,还提供了一种用于实施上述对象的加载方法的对象的加载装置。图15是根据本发明实施例的一种可选的对象的加载装置的示意图,如图15所示,该装置可以包括:第一确定单元1501、第二确定单元1503、获取单元1505以及加载单元1507。
第一确定单元1501,用于确定目标应用提供的虚拟场景中位于图像采集设备的采集范围内的可视空间,其中,图像采集设备为当前位于虚拟场景中的第一位置的采集设备;
第二确定单元1503,用于基于第一位置确定可视空间内位于多种类型中目标类型所指示的可视距离阈值内的目标子空间,其中,多种类型中的每种类型用于指示虚拟场景的子空间内对象的一个可视距离阈值;
获取单元1505,用于获取目标子空间中可视距离不大于目标类型所指示的可视距离阈值的对象为待渲染对象;
加载单元1507,用于在安装有目标应用的用户终端的存储资源中加载待渲染对象,其中,用户终端用于渲染出虚拟场景的图像。
需要说明的是,该实施例中的第一确定单元1501可以用于执行本申请实施例中的步骤S202,该实施例中的第二确定单元1503可以用于执行本申请实施例中的步骤S204,该实施例中的获取单元1505可以用于执行本申请实施例中的步骤S206,该实施例中的加载单元1507可以用于执行本申请实施例中的步骤S208。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
通过上述模块,确定目标应用提供的虚拟场景中位于图像采集设备的采集范围内的可视空间,基于第一位置确定可视空间内位于多种类型中目标类型所指示的可视距离阈值内的目标子空间,获取目标子空间中可视距离不大于目标类型所指示的可视距离阈值的对象为待渲染对象;在安装有目标应用的用户终端的存储资源中加载待渲染对象,由于所加载的是对用户而言实际可见的对象,可以解决相关技术中渲染虚拟场景中的对象所占用的硬件资源较多的技术问题,可以显著降低对内存的资源占用,还能够降低对CPU和GPU硬件资源的消耗。
可选地,第二确定单元包括:第一获取模块,用于获取可视空间的子空间与第一位置之间的间隔距离;查找模块,用于将可视空间内与第一位置之间的间隔距离不大于目标类型所指示的可视距离阈值的子空间作为目标子空间。
可选地,获取单元包括:第二获取模块,用于获取配置文件,其中,配置文件中记录虚拟场景的子空间内与多种类型中每种类型关联的对象,虚拟场景的子空间内的每个对象根据可视距离被设置为与多种类型中的一种类型关联;确定模块,用于获取配置文件中记录的目标子空间内与目标类型关联的对象为待渲染对象。
可选地,加载单元包括:第一加载模块,用于在用户终端的存储资源当前保存的对象中包括待渲染对象的情况下,继续在用户终端的存储资源中保存待渲染对象,并删除用户终端的存储资源中除待渲染对象以外的对象;第二加载模块,用于在用户终端的存储资源当前保存的对象中不包括待渲染对象的情况下,删除保存在用户终端的存储资源中的对象,并将待渲染对象加载至用户终端的存储资源中。
可选地,本申请的装置还可包括,渲染单元,用于在安装有目标应用的用户终端的存储资源中加载待渲染对象之后,将目标子空间的网格密度设置为与目标类型对应的网格密度匹配,并在设置网格密度后的目标子空间中渲染出待渲染对象,其中,多种类型中的任一类型用于指示按照与任一类型对应的网格密度来渲染虚拟场景的子空间内可视距离不大于任一类型所指示的可视距离阈值的对象,多种类型中第一类型对应的网格密度大于多种类型中第二类型对应的网格密度,第一类型所指示的可视距离阈值小于第二类型所指示的可视距离阈值。
可选地,该装置还可包括:第三确定单元,用于在确定目标应用提供的虚拟场景中位于图像采集设备的采集范围内的可视空间之前,确定多种类型中的每种类型所对应的网格密度;创建单元,用于按照多种类型中每种类型所对应的网格密度为多种类型中每种类型创建配置信息,并将多种类型中每种类型的配置信息保存至配置文件,其中,配置信息中记录有按照相应的网格密度进行划分的子空间内的对象和子空间所在的第二位置。
可选地,上述第三确定单元可包括:第三获取模块,用于获取虚拟场景中所有对象的可视距离中的最大可视距离和最小可视距离;密度确定模块,用于按照最大可视距离和最小可视距离确定多种类型中的每种类型所对应的网格密度。
上述的第三获取模块还可用于:获取虚拟场景中每个对象的可视距离,其中,每个对象的可视距离为每个对象的第一乘积与第二乘积之间的比值,第一乘积为每个对象在三维坐标系中三个维度上的坐标的最大值与预设参数之间的乘积,第二乘积为屏占比阈值与图像采集设备的当前视角的正切值的2倍之间的乘积;从虚拟场景中所有对象的可视距离查找最大可视距离和最小可视距离。
上述密度确定模块还可用于:对最大可视距离与最小可视距离之间的比值向下取整,得到第一阈值,其中,第一阈值用于表示多种类型的类型数量;将多种类型中第i个类型的所对应的网格密度所表示的网格间距设置为目标间距的i倍,其中,i为大于0且小于等于第一阈值的整数。
上述创建单元还可用于:确定虚拟场景中按照多种类型中每种类型所对应的网格密度进行划分而得到的子空间;查找虚拟场景中每个子空间内可视距离与每种类型所指示的可视距离阈值匹配的对象,并在一条配置信息中保存每个子空间与查找到的对象之间的关联关系。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本发明实施例的另一个方面,还提供了一种用于实施上述对象的加载方法的服务器或终端。
图16是根据本发明实施例的一种终端的结构框图,如图16所示,该终端可以包括:一个或多个(图16中仅示出一个)处理器1601、存储器1603、以及传输装置1605,如图16所示,该终端还可以包括输入输出设备1607。
其中,存储器1603可用于存储软件程序以及模块,如本发明实施例中的对象的加载方法和装置对应的程序指令/模块,处理器1601通过运行存储在存储器1603内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的对象的加载方法。存储器1603可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1603可进一步包括相对于处理器1601远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置1605用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1605包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1605为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器1603用于存储应用程序。
处理器1601可以通过传输装置1605调用存储器1603存储的应用程序,以执行下述步骤:
确定目标应用提供的虚拟场景中位于图像采集设备的采集范围内的可视空间,其中,图像采集设备为当前位于虚拟场景中的第一位置的采集设备;
基于第一位置确定可视空间内位于多种类型中目标类型所指示的可视距离阈值内的目标子空间,其中,多种类型中的每种类型用于指示虚拟场景的子空间内对象的一个可视距离阈值;
获取目标子空间中可视距离不大于目标类型所指示的可视距离阈值的对象为待渲染对象;
在安装有目标应用的用户终端的存储资源中加载待渲染对象,其中,用户终端用于渲染出虚拟场景的图像。
处理器1601还用于执行下述步骤:
获取可视空间的子空间与第一位置之间的间隔距离;
将可视空间内与第一位置之间的间隔距离不大于目标类型所指示的可视距离阈值的子空间作为目标子空间。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图16所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。图16其并不对上述电子装置的结构造成限定。例如,终端还可包括比图16中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图16所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行对象的加载方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
确定目标应用提供的虚拟场景中位于图像采集设备的采集范围内的可视空间,其中,图像采集设备为当前位于虚拟场景中的第一位置的采集设备;
基于第一位置确定可视空间内位于多种类型中目标类型所指示的可视距离阈值内的目标子空间,其中,多种类型中的每种类型用于指示虚拟场景的子空间内对象的一个可视距离阈值;
获取目标子空间中可视距离不大于目标类型所指示的可视距离阈值的对象为待渲染对象;
在安装有目标应用的用户终端的存储资源中加载待渲染对象,其中,用户终端用于渲染出虚拟场景的图像。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
获取可视空间的子空间与第一位置之间的间隔距离;
将可视空间内与第一位置之间的间隔距离不大于目标类型所指示的可视距离阈值的子空间作为目标子空间。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (14)

1.一种对象的加载方法,其特征在于,包括:
确定目标应用提供的虚拟场景中位于图像采集设备的采集范围内的可视空间,其中,所述图像采集设备为当前位于所述虚拟场景中的第一位置的采集设备;
基于所述第一位置确定所述可视空间内位于多种类型中目标类型所指示的可视距离阈值内的目标子空间,其中,所述多种类型中的每种类型用于指示所述虚拟场景的子空间内对象的一个可视距离阈值;
获取所述目标子空间中可视距离不大于所述目标类型所指示的可视距离阈值的对象为待渲染对象;
在安装有所述目标应用的用户终端的存储资源中加载所述待渲染对象,其中,所述用户终端用于渲染出所述虚拟场景的图像;
将所述目标子空间的网格密度设置为与所述目标类型对应的网格密度匹配,并在设置网格密度后的所述目标子空间中渲染出所述待渲染对象,其中,所述多种类型中的任一类型用于指示按照与所述任一类型对应的网格密度来渲染所述虚拟场景的子空间内可视距离不大于所述任一类型所指示的可视距离阈值的对象,所述多种类型中第一类型对应的网格密度大于所述多种类型中第二类型对应的网格密度,所述第一类型所指示的可视距离阈值小于所述第二类型所指示的可视距离阈值。
2.根据权利要求1所述的方法,其特征在于,基于所述第一位置确定所述可视空间内位于多种类型中目标类型所指示的可视距离阈值内的目标子空间包括:
获取所述可视空间的子空间与所述第一位置之间的间隔距离;
将所述可视空间内与所述第一位置之间的间隔距离不大于所述目标类型所指示的可视距离阈值的子空间作为所述目标子空间。
3.根据权利要求1所述的方法,其特征在于,获取所述目标子空间中可视距离不大于所述目标类型所指示的可视距离阈值的对象为待渲染对象包括:
获取配置文件,其中,所述配置文件中记录所述虚拟场景的子空间内与所述多种类型中每种类型关联的对象,所述虚拟场景的子空间内的每个对象根据可视距离被设置为与所述多种类型中的一种类型关联;
获取所述配置文件中记录的所述目标子空间内与所述目标类型关联的对象为所述待渲染对象。
4.根据权利要求1所述的方法,其特征在于,在安装有所述目标应用的用户终端的存储资源中加载所述待渲染对象包括:
在所述用户终端的存储资源当前保存的对象中包括所述待渲染对象的情况下,继续在所述用户终端的存储资源中保存所述待渲染对象,并删除所述用户终端的存储资源中除所述待渲染对象以外的对象;
在所述用户终端的存储资源当前保存的对象中不包括所述待渲染对象的情况下,删除保存在所述用户终端的存储资源中的对象,并将所述待渲染对象加载至所述用户终端的存储资源中。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,在确定目标应用提供的虚拟场景中位于图像采集设备的采集范围内的可视空间之前,所述方法还包括:
确定所述多种类型中的每种类型所对应的网格密度;
按照所述多种类型中每种类型所对应的网格密度为所述多种类型中每种类型创建配置信息,并将所述多种类型中每种类型的配置信息保存至配置文件,其中,所述配置信息中记录有按照相应的网格密度进行划分的子空间内的对象和子空间所在的第二位置。
6.根据权利要求5所述的方法,其特征在于,确定所述多种类型中的每种类型所对应的网格密度包括:
获取所述虚拟场景中所有对象的可视距离中的最大可视距离和最小可视距离;
按照所述最大可视距离和所述最小可视距离确定所述多种类型中的每种类型所对应的网格密度。
7.根据权利要求6所述的方法,其特征在于,获取所述虚拟场景中所有对象的可视距离中的最大可视距离和最小可视距离包括:
获取所述虚拟场景中每个对象的可视距离,其中,所述每个对象的可视距离为所述每个对象的第一乘积与第二乘积之间的比值,所述第一乘积为所述每个对象在三维坐标系中三个维度上的坐标的最大值与预设参数之间的乘积,所述第二乘积为屏占比阈值与所述图像采集设备的当前视角的正切值的2倍之间的乘积;
从所述虚拟场景中所有对象的可视距离查找所述最大可视距离和所述最小可视距离。
8.根据权利要求6所述的方法,其特征在于,按照所述最大可视距离和所述最小可视距离确定所述多种类型中的每种类型所对应的网格密度包括:
对所述最大可视距离与所述最小可视距离之间的比值向下取整,得到第一阈值,其中,所述第一阈值用于表示所述多种类型的类型数量;
将所述多种类型中第i个类型的所对应的网格密度所表示的网格间距设置为目标间距的i倍,其中,i为大于0且小于等于第一阈值的整数。
9.根据权利要求5所述的方法,其特征在于,按照所述多种类型中每种类型所对应的网格密度为所述多种类型中每种类型创建配置信息包括:
确定所述虚拟场景中按照所述多种类型中每种类型所对应的网格密度进行划分而得到的子空间;
查找所述虚拟场景中每个子空间内可视距离与所述每种类型所指示的可视距离阈值匹配的对象,并在一条配置信息中保存每个子空间与查找到的对象之间的关联关系。
10.一种对象的加载装置,其特征在于,包括:
第一确定单元,用于确定目标应用提供的虚拟场景中位于图像采集设备的采集范围内的可视空间,其中,所述图像采集设备为当前位于所述虚拟场景中的第一位置的采集设备;
第二确定单元,用于基于所述第一位置确定所述可视空间内位于多种类型中目标类型所指示的可视距离阈值内的目标子空间,其中,所述多种类型中的每种类型用于指示所述虚拟场景的子空间内对象的一个可视距离阈值;
获取单元,用于获取所述目标子空间中可视距离不大于所述目标类型所指示的可视距离阈值的对象为待渲染对象;
加载单元,用于在安装有所述目标应用的用户终端的存储资源中加载所述待渲染对象,其中,所述用户终端用于渲染出所述虚拟场景的图像;
渲染单元,用于在安装有目标应用的用户终端的存储资源中加载待渲染对象之后,将目标子空间的网格密度设置为与目标类型对应的网格密度匹配,并在设置网格密度后的目标子空间中渲染出待渲染对象,其中,多种类型中的任一类型用于指示按照与任一类型对应的网格密度来渲染虚拟场景的子空间内可视距离不大于任一类型所指示的可视距离阈值的对象,多种类型中第一类型对应的网格密度大于多种类型中第二类型对应的网格密度,第一类型所指示的可视距离阈值小于第二类型所指示的可视距离阈值。
11.根据权利要求10所述的装置,所述第二确定单元包括:
第一获取模块,用于获取所述可视空间的子空间与所述第一位置之间的间隔距离;
查找模块,用于将所述可视空间内与所述第一位置之间的间隔距离不大于所述目标类型所指示的可视距离阈值的子空间作为所述目标子空间。
12.根据权利要求10所述的装置,其特征在于,所述获取单元包括:
第二获取模块,用于获取配置文件,其中,所述配置文件中记录所述虚拟场景的子空间内与所述多种类型中每种类型关联的对象,所述虚拟场景的子空间内的每个对象根据可视距离被设置为与所述多种类型中的一种类型关联;
确定模块,用于获取所述配置文件中记录的所述目标子空间内与所述目标类型关联的对象为所述待渲染对象。
13.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至9任一项中所述的方法。
14.一种电子装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器通过所述计算机程序执行上述权利要求1至9任一项中所述的方法。
CN201811361060.0A 2018-11-15 2018-11-15 对象的加载方法和装置、存储介质、电子装置 Active CN109523621B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201811361060.0A CN109523621B (zh) 2018-11-15 2018-11-15 对象的加载方法和装置、存储介质、电子装置
JP2020562114A JP7125512B2 (ja) 2018-11-15 2019-11-05 オブジェクトのロード方法及び装置、記憶媒体、電子装置、並びにコンピュータプログラム
EP19884357.5A EP3882865A4 (en) 2018-11-15 2019-11-05 Object loading method, device, storage medium, and electronic device
PCT/CN2019/115611 WO2020098531A1 (zh) 2018-11-15 2019-11-05 对象的加载方法和装置、存储介质、电子装置
US17/078,053 US11270497B2 (en) 2018-11-15 2020-10-22 Object loading method and apparatus, storage medium, and electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811361060.0A CN109523621B (zh) 2018-11-15 2018-11-15 对象的加载方法和装置、存储介质、电子装置

Publications (2)

Publication Number Publication Date
CN109523621A CN109523621A (zh) 2019-03-26
CN109523621B true CN109523621B (zh) 2020-11-10

Family

ID=65778194

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811361060.0A Active CN109523621B (zh) 2018-11-15 2018-11-15 对象的加载方法和装置、存储介质、电子装置

Country Status (5)

Country Link
US (1) US11270497B2 (zh)
EP (1) EP3882865A4 (zh)
JP (1) JP7125512B2 (zh)
CN (1) CN109523621B (zh)
WO (1) WO2020098531A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109523621B (zh) * 2018-11-15 2020-11-10 腾讯科技(深圳)有限公司 对象的加载方法和装置、存储介质、电子装置
CN110264393B (zh) * 2019-05-15 2023-06-23 联想(上海)信息技术有限公司 一种信息处理方法、终端和存储介质
CN110288688B (zh) * 2019-06-20 2023-07-14 网易(杭州)网络有限公司 虚拟植被的渲染方法、装置、存储介质与电子设备
CN110827400B (zh) * 2019-11-12 2023-11-24 网易(杭州)网络有限公司 三维场景中对象的模型生成方法、装置以及终端
US11625848B2 (en) * 2020-01-30 2023-04-11 Unity Technologies Sf Apparatus for multi-angle screen coverage analysis
CN111738299B (zh) * 2020-05-27 2023-10-27 完美世界(北京)软件科技发展有限公司 场景静态物体合并方法、装置、存储介质及计算设备
CN111790151A (zh) * 2020-06-28 2020-10-20 上海米哈游天命科技有限公司 一种场景中物体加载方法、装置、存储介质及电子设备
CN111790152A (zh) * 2020-06-28 2020-10-20 上海米哈游天命科技有限公司 一种场景中物体加载方法、装置、存储介质及电子设备
CN111815598B (zh) * 2020-06-30 2024-04-26 上海联影医疗科技股份有限公司 一种血管参数的计算方法、装置、设备及存储介质
CN112473127A (zh) * 2020-11-24 2021-03-12 杭州电魂网络科技股份有限公司 大规模相同物件渲染的方法、系统、电子装置和存储介质
CN112587921A (zh) * 2020-12-16 2021-04-02 成都完美时空网络技术有限公司 模型处理方法和装置、电子设备和存储介质
CN112717386B (zh) * 2021-01-21 2023-05-12 腾讯科技(深圳)有限公司 关卡画面的显示方法、装置、设备及介质
CN112925638B (zh) * 2021-02-04 2023-10-10 深圳市禅游科技股份有限公司 资源加载方法、装置、设备及计算机可读存储介质
CN113426131B (zh) * 2021-07-02 2023-06-30 腾讯科技(成都)有限公司 虚拟场景的画面生成方法、装置、计算机设备及存储介质
CN113643441A (zh) * 2021-07-06 2021-11-12 北京百度网讯科技有限公司 内容展现方法、装置、设备和存储介质
US11425283B1 (en) * 2021-12-09 2022-08-23 Unity Technologies Sf Blending real and virtual focus in a virtual display environment
CN114299202A (zh) * 2021-12-30 2022-04-08 完美世界(北京)软件科技发展有限公司 虚拟场景制作的处理方法及装置、存储介质、终端
CN114401423B (zh) * 2022-01-13 2023-12-12 上海哔哩哔哩科技有限公司 数据处理方法及装置
CN116863058B (zh) * 2023-09-05 2023-11-14 湖南马栏山视频先进技术研究院有限公司 一种基于gpu的视频数据处理系统
CN117547816A (zh) * 2023-11-21 2024-02-13 北京畅游创想软件技术有限公司 一种游戏场景渲染方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101635138A (zh) * 2009-08-27 2010-01-27 北京水晶石数字科技有限公司 一种场景可视化的方法
CN102663811A (zh) * 2012-03-23 2012-09-12 北京师范大学 一种基于空间认知的大场景城市建筑实时三维可视化的方法
CN104867174A (zh) * 2015-05-08 2015-08-26 腾讯科技(深圳)有限公司 一种三维地图渲染显示方法及系统
CN107291223A (zh) * 2017-06-07 2017-10-24 武汉大学 一种超大数据量虚拟现实空间信息可视化系统及方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1196396A (ja) * 1997-09-19 1999-04-09 Matsushita Electric Ind Co Ltd 仮想物体が配された仮想空間内の光景を示す画像を表示する画像表示装置
JP2001167288A (ja) * 1999-12-08 2001-06-22 Matsushita Electric Ind Co Ltd 3次元地図表示装置
US6996254B2 (en) * 2001-06-18 2006-02-07 Microsoft Corporation Incremental motion estimation through local bundle adjustment
US6952207B1 (en) * 2002-03-11 2005-10-04 Microsoft Corporation Efficient scenery object rendering
WO2007042700A1 (fr) * 2005-10-03 2007-04-19 France Telecom Procede et systeme de calcul de visibilite de scene dans une architecture de navigation client serveur
JP5028790B2 (ja) * 2005-11-08 2012-09-19 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
JP5120926B2 (ja) * 2007-07-27 2013-01-16 有限会社テクノドリーム二十一 画像処理装置、画像処理方法およびプログラム
US20090327965A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Selection of items in a virtualized view
US10585472B2 (en) * 2011-08-12 2020-03-10 Sony Interactive Entertainment Inc. Wireless head mounted display with differential rendering and sound localization
JP6087185B2 (ja) * 2013-03-25 2017-03-01 株式会社ジオ技術研究所 3次元地図表示システム
CN105701851B (zh) * 2014-11-28 2019-02-19 星际空间(天津)科技发展有限公司 一种基于地理信息的三维渲染引擎系统
CN107016924B (zh) * 2016-12-20 2020-04-07 阿里巴巴集团控股有限公司 虚拟地图中的瓦片地图生成方法、更新方法和装置
CN106991713A (zh) * 2017-04-13 2017-07-28 网易(杭州)网络有限公司 更新游戏中的场景的方法和装置、介质、处理器以及终端
CN107346558B (zh) * 2017-07-03 2020-05-19 长春理工大学 利用面光源可见性空间相关加速三维场景直接光照效果绘制的方法
CN109523621B (zh) * 2018-11-15 2020-11-10 腾讯科技(深圳)有限公司 对象的加载方法和装置、存储介质、电子装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101635138A (zh) * 2009-08-27 2010-01-27 北京水晶石数字科技有限公司 一种场景可视化的方法
CN102663811A (zh) * 2012-03-23 2012-09-12 北京师范大学 一种基于空间认知的大场景城市建筑实时三维可视化的方法
CN104867174A (zh) * 2015-05-08 2015-08-26 腾讯科技(深圳)有限公司 一种三维地图渲染显示方法及系统
CN107291223A (zh) * 2017-06-07 2017-10-24 武汉大学 一种超大数据量虚拟现实空间信息可视化系统及方法

Also Published As

Publication number Publication date
JP2021520579A (ja) 2021-08-19
CN109523621A (zh) 2019-03-26
US20210042991A1 (en) 2021-02-11
WO2020098531A1 (zh) 2020-05-22
EP3882865A1 (en) 2021-09-22
US11270497B2 (en) 2022-03-08
JP7125512B2 (ja) 2022-08-24
EP3882865A4 (en) 2021-12-29

Similar Documents

Publication Publication Date Title
CN109523621B (zh) 对象的加载方法和装置、存储介质、电子装置
Richter et al. Out-of-core real-time visualization of massive 3D point clouds
CN112755535B (zh) 光照渲染方法、装置、存储介质及计算机设备
CN110838166B (zh) 特效数据检测方法、装置、设备及存储介质
Shopf et al. March of the Froblins: simulation and rendering massive crowds of intelligent and detailed creatures on GPU
CN112973127A (zh) 一种游戏3d场景编辑方法及装置
CN107392990A (zh) 渲染3d场景的全局照明
CN115330940A (zh) 一种三维重建方法、装置、设备和介质
CN115908715A (zh) 建筑信息模型的加载方法及装置、设备、存储介质
CN114299220A (zh) 光照贴图的数据生成方法、装置、设备、介质及程序产品
CN112587921A (zh) 模型处理方法和装置、电子设备和存储介质
CN117237502A (zh) 一种三维渲染方法、装置、设备及介质
CN112999656B (zh) 一种光照探针的处理方法、装置、电子设备及存储介质
CN115859411A (zh) 一种体渲染碰撞检测方法、装置、设备以及存储介质
CN111340949B (zh) 3d虚拟环境的建模方法、计算机设备及存储介质
CN112337093B (zh) 一种虚拟对象的分簇方法、装置、存储介质和电子装置
JP2015022761A (ja) 映像処理装置及び方法
US20190005736A1 (en) Method and apparatus for calculating a 3d density map associated with a 3d scene
Scholz et al. Level of Detail for Real-Time Volumetric Terrain Rendering.
CN114399421A (zh) 三维模型可见度数据的存储方法、装置、设备及存储介质
CN111538410A (zh) 一种vr场景中确定目标算法的方法及装置、计算设备
CN117115805B (zh) 一种Unreal Engine平台下的任意不规则物体标识方法和标识装置
CN116721187B (zh) 基于场景切割的动画动态加卸载方法、装置、设备及介质
CN115631320B (zh) 预计算单元格显示方法、预计算单元格生成方法及装置
CN112657199B (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