CN114419099A - 捕捉待渲染虚拟对象的运动轨迹的方法 - Google Patents

捕捉待渲染虚拟对象的运动轨迹的方法 Download PDF

Info

Publication number
CN114419099A
CN114419099A CN202210056206.0A CN202210056206A CN114419099A CN 114419099 A CN114419099 A CN 114419099A CN 202210056206 A CN202210056206 A CN 202210056206A CN 114419099 A CN114419099 A CN 114419099A
Authority
CN
China
Prior art keywords
primitive
tracking
rendered
virtual object
virtual
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.)
Granted
Application number
CN202210056206.0A
Other languages
English (en)
Other versions
CN114419099B (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 CN202210056206.0A priority Critical patent/CN114419099B/zh
Publication of CN114419099A publication Critical patent/CN114419099A/zh
Priority to PCT/CN2022/130798 priority patent/WO2023138170A1/zh
Priority to US18/329,897 priority patent/US20230316541A1/en
Application granted granted Critical
Publication of CN114419099B publication Critical patent/CN114419099B/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
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30241Trajectory

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Processing Or Creating Images (AREA)

Abstract

公开了一种捕捉待渲染虚拟对象的运动轨迹的方法、一种渲染虚拟对象的方法、一种绘制追踪图元的方法、一种绘制追踪图元的装置、一种电子设备和一种计算机可读存储介质。其中,所述捕捉待渲染虚拟对象的运动轨迹的方法包括:基于虚拟场景中的待渲染虚拟对象,确定所述待渲染虚拟对象对应的至少一个追踪图元,所述待渲染虚拟对象对应的追踪图元覆盖所述待渲染虚拟对象的可运动部分;在所述虚拟场景中,绘制所述待渲染虚拟对象对应的追踪图元以及基于所绘制的追踪图元对应的运动轨迹,捕捉所述虚拟场景中的待渲染虚拟对象的运动轨迹。本公开的实施例使用追踪图元替代场景中原本的虚拟对象,使得3D渲染程序能够对运动追踪实现更高的可控性和精度控制。

Description

捕捉待渲染虚拟对象的运动轨迹的方法
技术领域
本公开涉及云计算技术领域,更具体地涉及一种捕捉待渲染虚拟对象的运动轨迹的方法、一种渲染虚拟对象的方法、一种捕捉待渲染虚拟对象的运动轨迹的装置、一种渲染虚拟对象的装置、一种电子设备和一种计算机可读存储介质。
背景技术
在电子游戏或虚拟现实等场景下通常需要构建虚拟环境,在虚拟环境中显示3D的虚拟对象。例如,在3D游戏中的人物、场景和基础地形等都是使用三维立体模型实现的,玩家可以旋转视角,从多个角度观察各个虚拟对象,增加了游戏的自由度和趣味性。
3D虚拟角色需要经过渲染才能显示。在现有的3D模型的渲染方案中,往往会对场景中的虚拟对象直接进行补充和绘制。然而,直接对场景中的虚拟对象进行绘制/追踪存在多种问题。例如,直接进行绘制往往造成冗余面数很多,导致运算量过大。同时由于同一场景中的需要绘制的虚拟对象数量很多,如果对场景中的所有虚拟对象均进行绘制/追踪,会导致过多的计算资源的占用。
为此,本公开的各种实施例被提出以解决现有的绘制技术导致的运算量过大和占有计算资源过多的问题。
发明内容
本公开的实施例提供了一种捕捉待渲染虚拟对象的运动轨迹的方法、一种渲染虚拟对象的方法、一种确定追踪图元的方法、一种确定追踪图元的装置、一种电子设备和一种计算机可读存储介质。
本公开的实施例提供了一种捕捉待渲染虚拟对象的运动轨迹的方法,包括:基于虚拟场景中的待渲染虚拟对象,确定所述待渲染虚拟对象对应的至少一个追踪图元,所述待渲染虚拟对象对应的追踪图元覆盖所述待渲染虚拟对象的可运动部分;在所述虚拟场景中,绘制所述待渲染虚拟对象对应的追踪图元;以及基于所绘制的追踪图元对应的运动轨迹,捕捉所述虚拟场景中的待渲染虚拟对象的运动轨迹。
例如,所述待渲染虚拟对象对应的追踪图元跟随所述待渲染虚拟对象对应的网格模型的运动或姿态。
例如,所述绘制所述待渲染虚拟对象对应的追踪图元还包括:将所述追踪图元按照追踪图元的图元类型进行分类,以获得各个图元类型对应的追踪图元集合;针对每个图元类型对应追踪图元集合,提交用于一次性绘制所述追踪图元集合中的所有追踪图元的绘制提交。
例如,所述绘制所述待渲染虚拟对象对应的追踪图元还包括:基于所述虚拟场景中的各个虚拟对象的交互数据以及被控虚拟对象的操作数据,确定所述待渲染虚拟对象对应的追踪图元的属性变化;以及基于所述追踪图元对应的属性变化,绘制所述待渲染虚拟对象对应的追踪图元。
例如,所述基于所绘制的追踪图元对应的运动轨迹,捕捉所述虚拟场景中的待渲染虚拟对象的运动轨迹还包括:基于所绘制的追踪图元,确定所绘制的追踪图元之间的交互数据;基于所绘制的透明的追踪图元之间的交互数据,确定所绘制的追踪图元对应的运动轨迹;以及基于所绘制的追踪图元对应的运动轨迹,捕捉所述虚拟场景中的待渲染虚拟对象的运动轨迹。
例如,所述基于虚拟场景中的待渲染虚拟对象,确定所述待渲染虚拟对象对应的至少一个追踪图元还包括:获取虚拟场景中的待渲染虚拟对象的运动状态;基于所述待渲染虚拟对象的运动状态,确定所述待渲染虚拟对象对应的至少一个图元标记;将所述待渲染虚拟对象对应的至少一个图元标记添加至图元标记列表;以及基于所述图元标记列表,确定所述待渲染虚拟对象对应的至少一个追踪图元。
例如,所述基于所述待渲染虚拟对象对应的至少一个图元标记,确定所述待渲染虚拟对象对应的至少一个追踪图元还包括:基于所述待渲染虚拟对象对应的至少一个图元标记,确定所述待渲染虚拟对象对应的追踪图元是否已被创建;在所述待渲染虚拟对象对应的追踪图元已被创建的情况下,对待绘制图元列表中对应的追踪图元进行更新;在所述待渲染虚拟对象对应的追踪图元未被创建的情况下,创建对应的追踪图元,并将所创建的追踪图元添加至待绘制图元列表。
例如,基于所述虚拟场景中的待渲染虚拟对象的运动轨迹,将所述待渲染虚拟对象显示在显示屏幕。
本公开还提供了一种渲染虚拟对象的方法,包括:在虚拟场景中,绘制所述待渲染虚拟对象对应的追踪图元,所绘制的追踪图元覆盖所述待渲染虚拟对象的可运动部分并且不显示在显示屏幕上;基于所绘制的追踪图元对应的运动轨迹,捕捉所述虚拟场景中的待渲染虚拟对象的运动轨迹;基于所述虚拟场景中的待渲染虚拟对象的运动轨迹,将所述待渲染虚拟对象显示在显示屏幕。
例如,所述待渲染虚拟对象对应的追踪图元跟随所述待渲染虚拟对象对应的网格模型的运动和姿态。
例如,所述绘制所述待渲染虚拟对象对应的追踪图元还包括:将所述追踪图元按照追踪图元的图元类型进行分类,以获得各个图元类型对应的追踪图元集合;针对每个图元类型对应追踪图元集合,提交用于一次性绘制所述追踪图元集合中的所有追踪图元的绘制提交。
本公开还提供了一种绘制追踪图元的方法,所述追踪图元用于辅助虚拟对象的渲染,所述方法包括:获取虚拟场景中的待渲染虚拟对象的运动状态;基于所述待渲染虚拟对象的运动状态,确定所述待渲染虚拟对象对应的至少一个图元标记;基于所述待渲染虚拟对象对应的至少一个图元标记,确定所述待渲染虚拟对象对应的至少一个追踪图元,所述待渲染虚拟对象对应的追踪图元覆盖所述待渲染虚拟对象的可运动部分;以及在所述虚拟场景中,绘制所述待渲染虚拟对象对应的追踪图元,所绘制的追踪图元不显示在显示屏幕上。
本公开还提供了一种捕捉待渲染虚拟对象的运动轨迹的装置,包括:追踪图元确定模块,被配置为基于虚拟场景中的待渲染虚拟对象,确定所述待渲染虚拟对象对应的至少一个追踪图元,所述待渲染虚拟对象对应的追踪图元覆盖所述待渲染虚拟对象的可运动部分;追踪图元绘制模块,被配置为在所述虚拟场景中,绘制所述待渲染虚拟对象对应的追踪图元;以及运动轨迹捕捉模块,被配置为基于所绘制的追踪图元对应的运动轨迹,捕捉所述虚拟场景中的待渲染虚拟对象的运动轨迹。
本公开还提供了一种渲染虚拟对象的装置,包括:追踪图元绘制模块,被配置为在虚拟场景中,绘制所述待渲染虚拟对象对应的追踪图元,所绘制的追踪图元覆盖所述待渲染虚拟对象的可运动部分;运动轨迹捕捉模块,被配置为基于所绘制的追踪图元对应的运动轨迹,捕捉所述虚拟场景中的待渲染虚拟对象的运动轨迹;显示模块,被配置为基于所述虚拟场景中的待渲染虚拟对象的运动轨迹,将所述待渲染虚拟对象显示在显示屏幕上。
本公开还提供了一种绘制追踪图元的装置,所述追踪图元用于辅助虚拟对象的渲染,所述装置包括:场景管理模块,被配置为:获取虚拟场景中的待渲染虚拟对象的运动状态;基于所述待渲染虚拟对象的运动状态,确定所述待渲染虚拟对象对应的至少一个图元标记;图元创建模块,被配置为:基于所述待渲染虚拟对象对应的至少一个图元标记,确定所述待渲染虚拟对象对应的至少一个追踪图元,所述待渲染虚拟对象对应的追踪图元覆盖所述待渲染虚拟对象的可运动部分;以及图元绘制模块,被配置为:在所述虚拟场景中,绘制所述待渲染虚拟对象对应的追踪图元,所绘制的追踪图元不显示在显示屏幕上。
本公开的一些实施例提供了一种电子设备,包括:处理器;存储器,存储器存储有计算机指令,该计算机指令被处理器执行时实现上述的方法。
本公开的一些实施例提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令被处理器执行时实现上述的方法。
本公开的一些实施例提供了一种计算机程序产品,其包括计算机可读指令,所述计算机可读指令在被处理器执行时,使得所述处理器执行上述的方法。
由此,本公开的实施例使用追踪图元替代场景中原本的虚拟对象,使得3D渲染程序能够对运动追踪实现更高的可控性和精度控制。此外,本公开的一些实施例还使用现代多实例绘制技术以大大减少硬件绘制提交量的数量,从而优化了3D渲染的性能,增加了3D渲染的计算效率。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的描述中所需要使用的附图作简单的介绍。下面描述中的附图仅仅是本公开的示例性实施例。
图1是示出根据本公开的一些实施例的应用场景的示意图。
图2是示出根据本公开的一些实施例的待渲染的虚拟对象的示意图。
图3是示出根据本公开的一些实施例的待渲染的虚拟对象的投影面的示意图。
图4是是示出根据本公开的一些实施例的捕捉待渲染虚拟对象的运动轨迹的方法的流程图。
图5A为根据本公开的各个实施例的追踪图元的示例的示意图。
图5B为根据本公开的各个实施例的追踪图元的示例的又一示意图。
图6为根据本公开的各个实施例的捕捉待渲染虚拟对象的运动轨迹的方法的示意图。
图7A为根据本公开的各个实施例的绘制追踪图元的装置的示意图。
图7B为根据本公开的各个实施例的绘制追踪图元的装置的场景管理模块被配置为执行的步骤对应的流程图。
图7C为根据本公开的各个实施例的绘制追踪图元的装置的图元创建模块执行的步骤对应的流程图。
图7D为根据本公开的各个实施例的绘制追踪图元的装置的图元绘制模块执行的步骤对应的流程图。
图8是示出根据本公开的一些实施例的电子设备的示意图。
图9是示出根据本公开的一些实施例的计算机架构的示意图。
图10是示出根据本公开的一些实施例的计算机可读存储介质的示意图。
具体实施方式
为了使得本公开的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
在本说明书和附图中,具有基本上相同或相似步骤和元素用相同或相似的附图标记来表示,且对这些步骤和元素的重复描述将被省略。同时,在本公开的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性或排序。
本公开的实施例提供的方案涉及云计算技术,具体通过如下实施例进行说明。以下,参照图1和图2描述可应用本公开的实施例的场景。图1示出了根据本公开的一些实施例的应用场景100的示意图,其中示意性地示出了服务器110和多个终端120。终端120以及服务器110可以通过有线或无线通信方式进行直接或间接地连接,本公开在此不做限制。
例如,服务器110可以是独立的服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,Content Delivery Network)、等基础云计算服务的云服务器,本公开实施例对此不作具体限制。
例如,多个终端120中的每个终端可以是诸如台式计算机等的固定终端,诸如智能手机、平板电脑、便携式计算机、手持设备、个人数字助理、智能可穿戴设备、车载终端等具有网络功能的移动终端,或者它们的任意组合,本公开实施例对此不作具体限制。
可选地,服务器110与终端120可以通过网络进行连接以实现游戏应用的正常执行。网络可以是基于互联网和/或电信网的物联网(Internet of Things),其可以是有线网也可以是无线网,例如,其可以是局域网(LAN)、城域网(MAN)、广域网(WAN)、蜂窝数据通信网络等能实现信息交换功能的电子网络。联网的游戏应用通常会依靠服务器上的显卡来合成终端将显示的游戏画面(也即渲染游戏画面),这样的游戏应用也称为云游戏。
例如,终端120可以通过控制流将用户操作游戏的数据传输到服务器110,而服务器110则通过数据流(例如,以Steam的方式)将一帧或多帧音频帧和视频帧返回至终端120。此外,终端120还可以对用户操作(也即输入事件)进行编码,并将其通过控制流传输至服务器。而服务器也可以根据接收到的输入事件确定对应的一帧或多帧音频帧和视频帧。
例如,服务器110与终端120二者可以通过实时串流协议(Real Time StreamingProtocol,RTSP)、实时传输协议(Real-time Transport Protocol,RTP)、或实时传输控制协议(Real-time Transport Control Protocol,RTCP)等协议来传输数据流和控制流,但本公开并不以此为限。
例如,如图2所示,其示出了某个云游戏中可能出现的四个场景。在该云游戏中,用户操纵游戏角色来追踪虚拟机械狗。例如,在一些游戏视频帧中,虚拟机械狗可能正在用户操纵的游戏角色上方跑动,而在一些游戏视频帧中,虚拟机械狗可能在用户操纵的游戏角色下方或旁边跑动,或者迎面向用户操纵的游戏角色跑来。本领域技术人员应当理解,图2仅为示例场景,本公开并不限于此。
为了得到图2中所示的各个游戏视频帧中的跑动的虚拟机械狗,服务器110在获取终端120中的用户操作游戏的数据后,对音频帧/视频帧进行编码和渲染,然后通过数据流将编码和渲染后的音频帧/视频帧传送给终端120。此外,在另一些示例中,在服务器110从终端120接收到用户的输入事件(例如,指挥游戏中的某个人物前进、后退、射击、跳跃等的指令)的情况下,服务器110可以通过重现该输入事件来处理云游戏的下一帧音频帧/视频帧或者获取云游戏运行结果(例如,游戏胜利/失败)。在接收到服务器110通过数据流传输的音频帧/视频帧后,终端120可以通过对音频帧/视频帧进行解码,然后播放解码后音频帧/视频帧。
服务器110主要是利用其自身的显卡资源(例如GPU计算资源)对各种虚拟对象进行编码或渲染(render)处理来获得如图2所示的各个场景画面。GPU计算资源主要是指图形处理器(Graphics Processing Unit,缩写:GPU)对应的计算资源。GPU又称显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备上做图像和图形相关运算工作的微处理器。当然,在一些示例中服务器也可以利用其自身的CPU计算资源来进行上述的渲染操作。CPU的中文名称是中央处理器(Central Processing Unit),其主要作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。
例如,渲染处理例如是利用每个云游戏特定的模型来生成音频帧或视频帧。云游戏特定的模型是指用语言或者数据结构进行严格定义的三维物体或虚拟场景的描述,它包括几何、视点、纹理、照明和阴影等信息。例如,在某个云游戏中,当用户操控的某个游戏角色行进到某个地点,触发了某个游戏事件(例如,突然出现某个虚拟机械狗),该游戏的模型就可以描述游戏事件的场景(例如,虚拟机械狗的形象,包括从用户操控的游戏角色的视点看过去的虚拟机械狗的形态、衣服纹理、光照情况、虚拟机械狗的声音、背景音等等)。渲染计算就可以将这些描述转化为音频帧和/或视频帧,形成在游戏客户端处用户即将看到的图像和听到的声音。
作为一个示例,服务器110中的CPU和GPU可以彼此配合以完成一次渲染。可选地,CPU和GPU是并行工作的,它们之间存在一个命令缓冲区。例如,当服务器需要渲染某个游戏视频帧时,CPU将向命令缓冲区里面提交命令(例如,draw call命令),以命令GPU渲染的操作。CPU在提交draw call的时候需要处理大量的数据计算,比如一些数据、状态、命令等等。在服务器的GPU接收到draw call命令后,对应的GPU单元可以依次执行顶点着色(VertexShadering)、形状装配(Shape Assembly)、几何着色(Geometry Shader)、光栅化(Rasterization)、和片段着色器(Fragment Shadder)等操作计算出视频帧中的每个像素的RGB(Red,Green,blue)值,进而获取游戏客户端即将显示的画面。
此外,可以理解的是,进行渲染处理的装置还可以是终端120,也即根据本公开的实施例的方法可以全部或部分地搭载在终端120上以利用终端120的GPU计算资源以及CPU资源对各种虚拟对象或虚拟场景进行渲染处理。此外还可以是由终端和服务器组成的系统来执行上述的渲染处理。本公开对此不进行限制。
然而,在现有的3D模型的渲染方案中,往往对场景中的虚拟对象进行直接绘制来捕捉该虚拟对象的运动轨迹。例如,如图3所示,如果要追踪图2中虚拟机械狗的运动,将需要将虚拟机械狗的运动投射到对应的运动平面上,然后在该平面上追踪和记录图2中的虚拟机械狗的运动。例如,对于从游戏角色上方或下方跑过的虚拟机械狗,可以从仰视视角/俯视角对其在水平面(也即在XY轴构成的平面)上的运动进行追踪和记录。对于从游戏角色旁边跑过的虚拟机械狗和迎面跑来的机械狗,可以从平视角对其在数值面上的运动进行追踪和记录。
上述的每个投影面又称为3D渲染过程中的一个面,而每一个面的处理都需要提交一次绘制,这个过程又叫做绘制提交(draw call)。例如,绘制提交是指CPU调用一次渲染API的绘制接口,比如DirectX的DrawPrimitive/DrawIndexedPrimitive,或者OpenGL的glDrawElement/glDrawArrays。
由于3D场景中,往往需要对虚拟对象进行高精度的绘制,从而,往往造成需要使用不止一个面来绘制一个虚拟对象。并且,由于同一场景中往往存在多个虚拟对象等待渲染和绘制,对于每个虚拟对象都要使用对应的投影平面来追踪和记录虚拟对象的轨迹。因此直接对场景中的每个虚拟对象的所需的面都进行绘制追踪会增大绘制提交(draw call)的数量。即使对虚拟对象进行专门的裁剪,裁剪算法也会占用相当大的计算资源。
因此,采用直接绘制的方案对虚拟对象本身进行绘制/追踪会占用过多的计算资源并造成性能下降。甚至在某些在高性能的3D渲染程序中,这相当于对场景进行一次海量的裁剪和重复绘制操作。
为此,本公开的实施例提供了一种捕捉待渲染虚拟对象的运动轨迹的方法、一种捕捉待渲染虚拟对象的运动轨迹的方法、一种渲染虚拟对象的方法、一种确定追踪图元的方法、一种确定追踪图元的装置、一种捕捉待渲染虚拟对象的运动轨迹的装置、一种渲染虚拟对象的装置、一种电子设备和一种计算机可读存储介质。本公开的实施例使用追踪图元替代场景中原本的虚拟对象,使得3D渲染程序能够对运动追踪实现更高的可控性和精度控制。此外,本公开的一些实施例还使用现代多实例绘制技术以大大减少硬件绘制提交量的数量,从而优化了3D渲染的性能,增加了3D渲染的计算效率。
以下参考图4至图6来进一步描述本公开的各个实施例涉及的方法。图4为根据本公开的实施例的捕捉待渲染虚拟对象的运动轨迹的方法400的流程图。图5A和图5B为根据本公开的各个实施例的追踪图元的示例的示意图。图6为根据本公开的各个实施例的捕捉待渲染虚拟对象的运动轨迹的方法的示意图。
可选地,方法400对应的各个实施例包括步骤S401至步骤S402。其中,步骤S401对应的计算又称为方法400的初始化阶段。步骤S402至步骤S403对应的计算又称为方法400的绘制阶段。本领域技术人员应当理解,本公开的各个实施例还可以包括其他可能的步骤,本公开的范围并不限于图4至图5A-图5B中的示例。
例如,在步骤S401之前,方法400还可能包括与虚拟场景和待渲染虚拟对象的创建/确定相关的一个或多个步骤。例如,虚拟环境可以是应用程序在终端上运行时显示(或提供)的虚拟环境。该虚拟环境可以是对真实世界的仿真环境,也可以是半仿真半虚构的环境,还可以是纯虚构的环境。虚拟环境可以是二维虚拟环境、2.5维虚拟环境和三维虚拟环境中的任意一种,本公开对此不加以限定。下述实施例以虚拟环境是三维虚拟环境来举例说明。而虚拟对象可以是指虚拟环境中的可活动对象。该可活动对象可以是虚拟人物、虚拟动物、动漫人物等,比如:在三维虚拟环境中显示的人物、动物、植物、油桶、墙壁、石块等。可选地,虚拟对象是基于动画骨骼技术创建的三维立体模型。每个虚拟对象在三维虚拟环境中具有自身的形状和体积,占据三维虚拟环境中的一部分空间。经过方法400,待渲染虚拟对象将被呈现在显示屏幕上,例如,终端120的显示屏幕上。在待渲染虚拟对象运动的情况下,显示屏幕上将显示待渲染虚拟对象对应的运动动画。
此外,本公开的各个实施例还涉及计算机视觉技术(Computer Vision,CV)。计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。例如,在使用终端120的玩家控制被控虚拟对象的情况下,虚拟场景可以呈现从被控虚拟对象的视角“看”出去的虚拟场景。此时,可以将被控虚拟对象绑定在3D渲染过程中的摄像机模型上。摄像机模型相当于3D游戏世界的眼睛,通过摄像机,被控虚拟对象才能“看到”游戏中三维世界,进而看到场景中的各种可能与其交互的其它虚拟对象。当然,也可以设置其它的视角,并基于该视角设置一个或多个摄像机模型,并在终端120的显示屏幕上呈现对应的场景画面。
例如,在步骤S401中,基于虚拟场景中的待渲染虚拟对象,可以确定所述待渲染虚拟对象对应的至少一个追踪图元,所述待渲染虚拟对象对应的追踪图元覆盖所述待渲染虚拟对象的可运动部分。
作为一个示例,参考图5A,待渲染虚拟对象是当前正在运动的被控虚拟对象-行走的虚拟角色,而摄像机模型对应的视角为该被控虚拟对象的左前侧方。图5A中示意地示出了该被控虚拟对象对应的两个追踪图元:该虚拟角色的头部和右小臂。作为又一个示例,参考图5B,待渲染虚拟对象不仅包括当前正在运动的被控虚拟对象-行走的虚拟角色,还包括行走的虚拟角色身后的房屋和树木。摄像机模型对应的视角为该被控虚拟对象的左前侧方。图5B中示意地示出了该被控虚拟对象对应的两个追踪图元:该虚拟角色的头部和右小臂。如图5B所示,可选地,除了可运动的被控虚拟对象以外,对于静止的虚拟对象并不设置追踪图元,以减少绘制的面数。
例如,所述待渲染虚拟对象对应的追踪图元跟随所述待渲染虚拟对象对应的网格模型的运动和姿态。追踪图元是图元的一种。具体地,图元(Primitive)是一种图形数据,其对应于绘图界面上看得见的实体,例如,3D或是2D空间中的一些简单形状。图元可以在软件中被简单的描述和绘制。3D空间常见的图元包括立方体、球体、椭球或者柱体等。2D空间常见的图元包括正方形、圆形、椭圆或者长方形等。例如,在OpenGL中,图元是能够被渲染的基本单位,其是能直接用glDrawArray或glDrawElement绘制出来的几何体。在一些示例中,图元可以由一系列的顶点(Vertex)来描述,每个顶点包含多个属性(Attribute),比如图元的顶点坐标、法向量、颜色和深度值等。本公开仅示例性地说明了图元的概念,本公开并不以此为限。
继续参考图5A,追踪图元可以蒙罩复杂的虚拟角色的头部和右小臂网格表面。例如,虚拟角色的头部可以对应于一个球体类型的追踪图元,而右小臂可以对应于一个盒体类型的追踪图元。进一步地,参考图5B,虚拟角色的头部可以对应于一个球体类型的追踪图元(以黑色线条和灰色填充的圆形示出),而右小臂可以对应于一个盒体类型的追踪图元(以黑色线条和灰色填充的圆形示出)。图5B中还示出了不止一个虚拟对象,例如,房屋和树木对应的虚拟对象。房屋和树木对应的虚拟对象并不运动,因此,为减小计算量,可以不为这些虚拟对象设置对应的追踪图元。当然本公开并不以此为限。
在一些示例中,追踪图元数据是根据图元标记自动生成/创建的。这些图元标记可以是开发人员提前为各个作为游戏角色的虚拟对象提前标记的。例如,在一些示例中,开发人员可能会为避免各个虚拟对象之间产生元素间的冲突或叠加,而提前为各个虚拟对象设置图元标记以进行碰撞检测。本公开的追踪图元可以复用用于碰撞检测的图元标记。值得注意的是,虽然在可能的碰撞检测中也对应地生成了与用于碰撞检测的图元标记相对应的碰撞检测图元,但是碰撞检测图元往往紧贴虚拟对象对应的网格表面,而不会覆盖虚拟对象的可运动部分。也即,在这样的情况下,虽然本公开复用了用于碰撞检测的图元标记,但是方法400却基于这样的图元标记生成了与碰撞检测图元不同的追踪图元。当然,本公开并不限于此。
在一些示例中,作为初始化阶段的步骤S401还包括场景管理子步骤和图元创建子步骤,场景管理子步骤和图元创建子步骤基于图元标记确定了追踪图元。例如,参考图6,在3D虚拟场景中收集到的虚拟对象还可能是多种多样的,有着各种不同的几何形状和网格模型。图6简单表示3D场景中的一些复杂虚拟对象。与传统的、直接对图6中的这些虚拟对象进行绘制的方案不同,在步骤S401利用简单的追踪图元蒙罩这些复杂的虚拟对象的网格表面。为使得追踪图元尽量地简单以进一步减少计算量,步骤S401可以仅使用三到五种类型的图元来表达所有的复杂虚拟对象几何特征和运动轨迹。这些图元类型可选地包括:球型、(圆角)盒体、准圆柱体、椭球、三角锥等等。虽然本文只列举了上述图元类型,但是实际情况下可能存在的其他种类图元。例如,在2D场景中,图元类型可选地包括:圆形、(圆角)长方形、椭圆、三角形、正方形和长方形等等。无论使用怎样的图元类型,即使未使用上述未列出图元类型,都可落入本公开涵盖的范围内。
作为一个示例,场景管理子步骤可以由后续详述的场景管理模块701来执行。具体地,在场景管理子步骤中,可以获取虚拟场景中的待渲染虚拟对象的运动状态。又例如,在创建或确定虚拟场景后,还可以将被控虚拟对象的状态和从被控虚拟对象所在的环境收集的参数提供给云游戏的运动追踪系统,以确定虚拟场景中运动或静止的虚拟对象。接着可以基于所述待渲染虚拟对象的运动状态,确定所述待渲染虚拟对象对应的至少一个图元标记。为进一步减少计算量,可以仅追踪运动的虚拟对象。然后,将所述待渲染虚拟对象对应的至少一个图元标记添加至图元标记列表。具体地,图元标记列表将如后续详述的表2所示,本公开在此不再赘述。
作为一个示例,为进一步减少计算量,还可以针对躯干等运动简单、变化不频繁、或变化较小的可运动部分,使用面积较大的追踪图元来覆盖该可运动部分。为提高虚拟场景的逼真程度,还可以针对面部、胳膊、手等运动复杂、变化频繁或变化较大的可运动部分,使用面积较小的、精细化的追踪图元来覆盖该可运动部分。本公开在此不再赘述。
作为一个示例,图元创建子步骤可以由后续详述的图元创建模块702来执行。具体地,在图元创建子步骤中,基于所述待渲染虚拟对象对应的至少一个图元标记,可以确定所述待渲染虚拟对象对应的追踪图元是否已被创建;在所述待渲染虚拟对象对应的追踪图元已被创建的情况下,对待绘制图元列表中对应的追踪图元进行更新;在所述待渲染虚拟对象对应的追踪图元未被创建的情况下,创建对应的追踪图元,并将所创建的追踪图元添加至待绘制图元列表。具体地,待绘制图元列表将如后续详述的表3所示,本公开在此不再赘述。
接着,在步骤S402中,在所述虚拟场景中,绘制所述待渲染虚拟对象对应的追踪图元。可选地,所绘制的追踪图元不显示在显示屏幕上。
作为一个示例,可以将上述确定的追踪图元通过绘制提交(draw call)进行绘制。在draw call中,除了上述已详细描述的追踪图元对应的各个属性以外,draw call中还可以对应的增加各个追踪图元对应的运动轨迹相关的值。例如,这些追踪图元对应的运动轨迹相关的值可以是由运动追踪系统基于上述创建的追踪图元而确定的。例如在虚拟场景中,被控虚拟对象所控制的虚拟控制物和周围的虚拟交互物将根据终端用户发出的指令而对应地变化。云服务器110的CPU将根据终端120的用户触发的各类指令,判断各个追踪图元对应的运动轨迹相关的值,然后将这些值通过draw call提交至云服务器110的GPU进行后续的渲染。
也即,基于所述虚拟场景中的各个虚拟对象的交互数据以及被控虚拟对象的操作数据,确定所述待渲染虚拟对象对应的追踪图元的属性变化;以及基于所述追踪图元对应的属性变化,绘制所述待渲染虚拟对象对应的追踪图元。由此,追踪图元将跟随原虚拟对象的网格模型的运动和姿态,进行适当的位移变换、缩放和旋转。可选地,虽然这些追踪图元不会被实际显示到终端120的显示屏幕上,但是本公开实施例可以利用它们来追踪虚拟对象运动轨迹。针对游戏调试/开发场景,这些追踪图元也可以被显示在调试人员或开发人员的显示屏幕上,以便于调试人员或开发人员对于游戏进行细节调整。
作为又一示例,步骤S402还可以采用实例化的技术来绘制各个追踪图元。例如,步骤S402还包括:将所述追踪图元按照追踪图元的图元类型进行分类,以获得各个图元类型对应的追踪图元集合,然后针对每个图元类型对应追踪图元集合,提交用于一次性绘制所述追踪图元集合中的所有追踪图元的绘制提交。例如,可以通过OpenGL中的glDrawArraysInstanced命令或glDrawElementsInstanced命令来提交用于一次性绘制所述追踪图元集合中的所有追踪图元的绘制提交。又例如,可以通过direct3D中DrawIndexedPrimitive命令来提交(submit)/调用(call)用于一次性绘制所述追踪图元集合中的所有追踪图元的绘制提交(draw call)。本公开对此不进行限制。由此,可以在1次绘制提交(draw call)中完成所有同类型的追踪图元的绘制。例如全部的三角锥类型图元会在一次渲染提交中被完成,而用于捕获虚拟对象的运动轨迹的绘制量会被压缩到3至5次。
作为又一示例,步骤S402还可以采用间接绘制(Indirect Draw)的技术来绘制各个追踪图元。利用间接绘制\计算(IndirectDraw\IndirectCompute),可实现渲染时更少的CPU/GPU之间的切换。例如可以在CPU中准备虚拟场景数据,然后一次性提交到GPU中。本公开对此不进行限制。
接着,继续参考图4和图6,在步骤S403中,基于所绘制的追踪图元对应的运动轨迹,捕捉所述虚拟场景中的待渲染虚拟对象的运动轨迹。
在一些示例中,可以基于所绘制的追踪图元,确定所绘制的追踪图元之间的交互数据,然后基于所绘制的透明的追踪图元之间的交互数据,确定所绘制的追踪图元对应的运动轨迹;以及基于所绘制的追踪图元对应的运动轨迹,捕捉所述虚拟场景中的待渲染虚拟对象的运动轨迹。
例如,可以基于距离场的快速绘制步骤技术来进一步实现从追踪图元的运动轨迹到待渲染对象的运动轨迹之间的映射。例如,可以将所绘制的追踪图元对应的运动轨迹绘制到一张目标贴图或缓冲区中。然后,可以使用距离场函数对已按照图元类型批量绘制的追踪图元进行快速捕捉,从而确定待渲染对象的运动轨迹。例如,可以使用有符号距离场(Signed Distance Field,SDF)函数来实现从追踪图元的运动轨迹到待渲染对象的运动轨迹之间的映射。SDF函数可以用一个标量场函数或者一张体贴图来表示,其通过空间中一个点到最近的三角面的距离实现了从追踪图元到待渲染对象之间的映射。例如,可以使用上述的距离场函数对缓存区进行采样(这一过程又称为轨迹拾取),然后通过采样到的值来判断采样点是否在追踪图元的运动轨迹内,从而确定待渲染对象的运动轨迹。
可选地,如图4所示,方法400还包括步骤S404。在步骤S404中,基于所述虚拟场景中的待渲染虚拟对象的运动轨迹将所述待渲染虚拟对象显示在显示屏幕。
由此,已经详细地描述各个步骤。然而在另一些示例中,所述待渲染虚拟对象对应的追踪图元已经在事先被确定了。例如,在这样的示例中,云游戏已经平稳运行了一段时间,而不需再创建各个游戏角色对应的虚拟对象的追踪图元,而是可以根据这些已知的追踪图元直接负责虚拟对象的渲染。为此本公开还提供了一种渲染虚拟对象的方法,其中,在所述虚拟场景中,绘制所述待渲染虚拟对象对应的追踪图元,所绘制的追踪图元覆盖所述待渲染虚拟对象的可运动部分并且不显示在显示屏幕上;基于所绘制的追踪图元对应的运动轨迹,捕捉所述虚拟场景中的待渲染虚拟对象的运动轨迹;基于所述虚拟场景中的待渲染虚拟对象的运动轨迹,将所述待渲染虚拟对象显示在显示屏幕。
又例如,在另一些示例中,可能无需实际渲染虚拟对象,仅需要确定各个追踪图元以进行快速的游戏测试,为此本公开还提供了一种确定追踪图元的方法,所述追踪图元用于辅助虚拟对象的渲染,所述方法包括:获取虚拟场景中的待渲染虚拟对象的运动状态;基于所述待渲染虚拟对象的运动状态,确定所述待渲染虚拟对象对应的至少一个图元标记;基于所述待渲染虚拟对象对应的至少一个图元标记,确定所述待渲染虚拟对象对应的至少一个追踪图元,所述待渲染虚拟对象对应的追踪图元覆盖所述待渲染虚拟对象的可运动部分;以及在所述虚拟场景中,绘制所述待渲染虚拟对象对应的追踪图元。可选地,对于游戏玩家而言,所绘制的追踪图元不显示在显示屏幕上。针对游戏调试/开发场景,这些追踪图元也可以被显示在调试人员或开发人员的显示屏幕上,以便于调试人员或开发人员对于游戏进行细节调整。由此,本公开的实施例使用追踪图元替代场景中原本的虚拟对象(例如,可运动的虚拟对象),使得3D渲染程序能够对运动追踪实现更高的可控性和精度控制。本公开的实施例还可选地仅对运动的虚拟对象的部分设置追踪图元,从而避免了直接对场景中的每个虚拟对象的各个面都进行绘制追踪,从而进一步减少了计算资源的占用。
此外,本公开的一些实施例还使用现代多实例绘制技术以大大减少硬件绘制提交量的数量,从而优化了3D渲染的性能,增加了3D渲染的计算效率。
以下,参考图7A至图7D来进一步描述本公开的各个实施例涉及的装置700。
作为一个示例,根据本公开的各个实施例的装置700包括场景管理模块701、图元创建模块702和图元绘制模块703。
可选地,场景管理模块701被配置为:获取虚拟场景中的待渲染虚拟对象的运动状态;基于所述待渲染虚拟对象的运动状态,确定所述待渲染虚拟对象对应的至少一个图元标记;以及将所述待渲染虚拟对象对应的至少一个图元标记添加至图元标记列表。也即,场景管理模块701可以用于管理虚拟场景内的可运动的虚拟对象(例如图2中的虚拟机械狗),观测它们的运动状态并记录那些正在运动的虚拟对象。
作为一个示例,场景管理模块701可以执行图7B中示出的操作。在游戏过程中,当终端120或服务器110确定需要对场景中的虚拟对象进行渲染时,场景管理模块701将遍历虚拟对象追踪列表。虚拟对象追踪列表的示例如图
表1所示。
Figure BDA0003476592410000161
在遍历虚拟对象追踪列表的过程中,场景管理模块701首先需要确定当前虚拟对象的运动状态以确定是否追踪该虚拟对象。例如,如果该虚拟对象为静止对象(例如,土地、草丛等)或者即使不对该虚拟对象更新渲染结果也不会影响游戏画面的呈现,那么场景管理模块701将确定不需要追踪该虚拟对象。针对可能运动的虚拟对象,场景管理模块701将判断该虚拟对象是否包括图元标记。场景管理模块701将识别该虚拟对象上的图元标记,并生成图元标记列表。图元标记列表的示例为表2所示。
表2-图元标记列表
图元标记
QB
HB
……
例如,如果图元标记列表中不包括该虚拟对象的图元标记,那么场景管理模块701可以将该虚拟对象的图元标记添加至图元标记列表。如果图元标记列表中已经包括该对象对应的图元标记,那么场景管理模块701将对该图元标记的数据进行更新。可选地,在一些示例中,如果场景管理模块701确定不需要继续追踪某个图元,场景管理模块701还可能删除该图元标记列表中的图元。在该示例中,场景管理模块701将循环地执行上述过程,直至遍历完虚拟对象追踪列表中的所有虚拟对象。
可选地,图元创建模块702被配置为基于所述待渲染虚拟对象对应的至少一个图元标记,确定所述待渲染虚拟对象对应的追踪图元是否已被创建;在所述待渲染虚拟对象对应的追踪图元已被创建的情况下,对待绘制图元列表中对应的追踪图元进行更新;在所述待渲染虚拟对象对应的追踪图元未被创建的情况下,创建对应的追踪图元,并将所创建的追踪图元添加至待绘制图元列表。由此,图元创建模块702可以用于匹配场景中正在运动的虚拟对象,并为正在运动的虚拟对象生成具有对应变换属性(位置、缩放以及旋转)的追踪图元。
作为一个示例,图元创建模块702将执行图7C中示出的操作。图元创建模块702将遍历上述的图元标记列表。在遍历图元标记列表的过程中,图元创建模块702可能会确定当前图元对应的信息以创建对应的追踪图元。例如,图元创建模块702将基于图元标记确定追踪图元对应的属性,并基于这些属性创建追踪图元。在该示例中,图元创建模块702将循环地执行上述过程,直至遍历完图元标记列表中的所有图元标记。待绘制图元列表的示例为表3所示。
Figure BDA0003476592410000171
可选地,图元绘制模块703被配置为在所述虚拟场景中,绘制所述待渲染虚拟对象对应的追踪图元。由此,图元绘制模块703可以用于收集生成好的图元,记录它们的信息并最终提交到GPU进行绘制。
作为一个示例,图元绘制模块703将执行图7D中示出的操作。图元绘制模块703将遍历待绘制图元列表。在遍历该待绘制图元列表的过程中,图元绘制模块703将按照图元标记对应的图元类型对图元标记进行分类和记录,以便于生成后续的instanced draw指令或indirect draw指令。例如,图元绘制模块703可以如图7D中所示,为各个图元类型记录一组绘制变换参数,然后为所有的图元类型提交draw call。又例如,图元绘制模块703可能整理并生成与下述的绘制指令列表相对应instanced draw指令或indirect draw指令。
Figure BDA0003476592410000172
绘制指令列表的示例为表4所示。在该示例中,图元绘制模块703将循环地执行上述过程,直至遍历完待绘制图元列表中的所有图元标记。
由此,装置700使用追踪图元替代场景中原本的虚拟对象,使得3D渲染程序能够对运动追踪实现更高的可控性和精度控制。此外,本公开的一些实施例还使用现代多实例绘制技术以大大减少硬件绘制提交(Draw Call)量的数量,从而优化了3D渲染的性能,增加了3D渲染的计算效率。
此外,根据本公开的又一方面,还提供了一种捕捉待渲染虚拟对象的运动轨迹的装置,包括:追踪图元确定模块,被配置为基于虚拟场景中的待渲染虚拟对象,确定所述待渲染虚拟对象对应的至少一个追踪图元,所述待渲染虚拟对象对应的追踪图元覆盖所述待渲染虚拟对象的可运动部分;追踪图元绘制模块,被配置为在所述虚拟场景中,绘制所述待渲染虚拟对象对应的追踪图元;以及运动轨迹捕捉模块,被配置为基于所绘制的追踪图元对应的运动轨迹,捕捉所述虚拟场景中的待渲染虚拟对象的运动轨迹。
根据本公开的又一方面,还提供了本公开还提供了一种渲染虚拟对象的装置,包括:追踪图元绘制模块,被配置为在虚拟场景中,绘制所述待渲染虚拟对象对应的追踪图元,所绘制的追踪图元覆盖所述待渲染虚拟对象的可运动部分;运动轨迹捕捉模块,被配置为基于所绘制的追踪图元对应的运动轨迹,捕捉所述虚拟场景中的待渲染虚拟对象的运动轨迹;显示模块,被配置为基于所述虚拟场景中的待渲染虚拟对象的运动轨迹,将所述待渲染虚拟对象显示在显示屏幕上。
此外根据本公开的又一方面,还提供了一种电子设备,用于实施根据本公开的一些实施例的方法。图8示出了根据本公开的一些实施例的电子设备2000的示意图。
如图8所示,所述电子设备2000可以包括一个或多个处理器2010,和一个或多个存储器2020。其中,所述存储器2020中存储有计算机可读代码,所述计算机可读代码当由所述一个或多个处理器2010运行时,可以执行如上所述的搜索请求处理方法。
本公开的一些实施例中的处理器可以是一种集成电路芯片,具有信号的处理能力。上述处理器可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本公开的一些实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,可以是X86架构或ARM架构的。
一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本公开的一些实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。
例如,根据本公开的一些实施例的方法或装置也可以借助于图9所示的计算设备3000的架构来实现。如图9所示,计算设备3000可以包括总线3010、一个或多个CPU 3020、只读存储器(ROM)3030、随机存取存储器(RAM)3040、连接到网络的通信端口3050、输入/输出组件3060、硬盘3070等。计算设备3000中的存储设备,例如ROM 3030或硬盘3070可以存储本公开提供的用于确定车辆的驾驶风险的方法的处理和/或通信使用的各种数据或文件以及CPU所执行的程序指令。计算设备3000还可以包括用户界面3080。当然,图9所示的架构只是示例性的,在实现不同的设备时,根据实际需要,可以省略图9示出的计算设备中的一个或多个组件。
根据本公开的又一方面,还提供了一种计算机可读存储介质。图10示出了根据本公开的存储介质的示意图4000。
如图10所示,所述计算机存储介质4020上存储有计算机可读指令4010。当所述计算机可读指令4010由处理器运行时,可以执行参照以上附图描述的根据本公开的一些实施例的方法。本公开的一些实施例中的计算机可读存储介质可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、双倍数据速率同步动态随机存取存储器(DDRSDRAM)、增强型同步动态随机存取存储器(ESDRAM)、同步连接动态随机存取存储器(SLDRAM)和直接内存总线随机存取存储器(DR RAM)。应注意,本文描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。应注意,本文描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本公开的一些实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行根据本公开的一些实施例的方法。
需要说明的是,附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本公开的一些实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。
在上面详细描述的本公开的示例实施例仅仅是说明性的,而不是限制性的。本领域技术人员应该理解,在不脱离本公开的原理和精神的情况下,可对这些实施例或其特征进行各种修改和组合,这样的修改应落入本公开的范围内。

Claims (15)

1.一种捕捉待渲染虚拟对象的运动轨迹的方法,包括:
基于虚拟场景中的待渲染虚拟对象,确定所述待渲染虚拟对象对应的至少一个追踪图元,所述待渲染虚拟对象对应的追踪图元覆盖所述待渲染虚拟对象的可运动部分;
在所述虚拟场景中,绘制所述待渲染虚拟对象对应的追踪图元;以及
基于所绘制的追踪图元对应的运动轨迹,捕捉所述虚拟场景中的待渲染虚拟对象的运动轨迹。
2.如权利要求1所述的方法,其中,所述待渲染虚拟对象对应的追踪图元跟随所述待渲染虚拟对象对应的网格模型的运动或姿态。
3.如权利要求1所述的方法,其中,所述绘制所述待渲染虚拟对象对应的追踪图元还包括:
将所述追踪图元按照追踪图元的图元类型进行分类,以获得各个图元类型对应的追踪图元集合;
针对每个图元类型对应追踪图元集合,提交用于一次性绘制所述追踪图元集合中的所有追踪图元的绘制提交。
4.如权利要求1所述的方法,其中,所述绘制所述待渲染虚拟对象对应的追踪图元还包括:
基于所述虚拟场景中的各个虚拟对象的交互数据以及被控虚拟对象的操作数据,确定所述待渲染虚拟对象对应的追踪图元的属性变化;以及
基于所述追踪图元对应的属性变化,绘制所述待渲染虚拟对象对应的追踪图元。
5.如权利要求1所述的方法,其中,所述基于所绘制的追踪图元对应的运动轨迹,捕捉所述虚拟场景中的待渲染虚拟对象的运动轨迹还包括:
基于所绘制的追踪图元,确定所绘制的追踪图元之间的交互数据;
基于所绘制的透明的追踪图元之间的交互数据,确定所绘制的追踪图元对应的运动轨迹;以及
基于所绘制的追踪图元对应的运动轨迹,捕捉所述虚拟场景中的待渲染虚拟对象的运动轨迹。
6.如权利要求1所述的方法,其中,所述基于虚拟场景中的待渲染虚拟对象,确定所述待渲染虚拟对象对应的至少一个追踪图元还包括:
获取虚拟场景中的待渲染虚拟对象的运动状态;
基于所述待渲染虚拟对象的运动状态,确定所述待渲染虚拟对象对应的至少一个图元标记;
将所述待渲染虚拟对象对应的至少一个图元标记添加至图元标记列表;以及
基于所述图元标记列表,确定所述待渲染虚拟对象对应的至少一个追踪图元。
7.如权利要求6所述的方法,其中,所述基于所述待渲染虚拟对象对应的至少一个图元标记,确定所述待渲染虚拟对象对应的至少一个追踪图元还包括:
基于所述待渲染虚拟对象对应的至少一个图元标记,确定所述待渲染虚拟对象对应的追踪图元是否已被创建;
在所述待渲染虚拟对象对应的追踪图元已被创建的情况下,对待绘制图元列表中对应的追踪图元进行更新;
在所述待渲染虚拟对象对应的追踪图元未被创建的情况下,创建对应的追踪图元,并将所创建的追踪图元添加至待绘制图元列表。
8.一种渲染虚拟对象的方法,包括,
在虚拟场景中,绘制待渲染虚拟对象对应的追踪图元,所绘制的追踪图元覆盖所述待渲染虚拟对象的可运动部分;
基于所绘制的追踪图元对应的运动轨迹,捕捉所述虚拟场景中的待渲染虚拟对象的运动轨迹;
基于所述虚拟场景中的待渲染虚拟对象的运动轨迹,将所述待渲染虚拟对象显示在显示屏幕。
9.如权利要求8所述的方法,其中,所述待渲染虚拟对象对应的追踪图元跟随所述待渲染虚拟对象对应的网格模型的运动和姿态。
10.如权利要求8所述的方法,其中,所述绘制所述待渲染虚拟对象对应的追踪图元还包括:
将所述追踪图元按照追踪图元的图元类型进行分类,以获得各个图元类型对应的追踪图元集合;
针对每个图元类型对应追踪图元集合,提交用于一次性绘制所述追踪图元集合中的所有追踪图元的绘制提交。
11.一种捕捉待渲染虚拟对象的运动轨迹的装置,包括:
追踪图元确定模块,被配置为基于虚拟场景中的待渲染虚拟对象,确定所述待渲染虚拟对象对应的至少一个追踪图元,所述待渲染虚拟对象对应的追踪图元覆盖所述待渲染虚拟对象的可运动部分;
追踪图元绘制模块,被配置为在所述虚拟场景中,绘制所述待渲染虚拟对象对应的追踪图元;以及
运动轨迹捕捉模块,被配置为基于所绘制的追踪图元对应的运动轨迹,捕捉所述虚拟场景中的待渲染虚拟对象的运动轨迹。
12.一种渲染虚拟对象的装置,包括:
追踪图元绘制模块,被配置为在虚拟场景中,绘制待渲染虚拟对象对应的追踪图元,所绘制的追踪图元覆盖所述待渲染虚拟对象的可运动部分;
运动轨迹捕捉模块,被配置为基于所绘制的追踪图元对应的运动轨迹,捕捉所述虚拟场景中的待渲染虚拟对象的运动轨迹;
显示模块,被配置为基于所述虚拟场景中的待渲染虚拟对象的运动轨迹,将所述待渲染虚拟对象显示在显示屏幕上。
13.一种电子设备,包括:
处理器;
存储器,存储器存储有计算机指令,该计算机指令被处理器执行时实现如权利要求1-10中任一项所述的方法。
14.一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1-10中的任一项所述的方法。
15.一种计算机程序产品,其包括计算机可读指令,所述计算机可读指令在被处理器执行时,使得所述处理器执行如权利要求1-10中任一项所述的方法。
CN202210056206.0A 2022-01-18 2022-01-18 捕捉待渲染虚拟对象的运动轨迹的方法 Active CN114419099B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202210056206.0A CN114419099B (zh) 2022-01-18 2022-01-18 捕捉待渲染虚拟对象的运动轨迹的方法
PCT/CN2022/130798 WO2023138170A1 (zh) 2022-01-18 2022-11-09 捕捉待渲染虚拟对象的运动轨迹的方法、装置及电子设备
US18/329,897 US20230316541A1 (en) 2022-01-18 2023-06-06 Method and apparatus for capturing motion trajectory of to-be-rendered virtual object and electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210056206.0A CN114419099B (zh) 2022-01-18 2022-01-18 捕捉待渲染虚拟对象的运动轨迹的方法

Publications (2)

Publication Number Publication Date
CN114419099A true CN114419099A (zh) 2022-04-29
CN114419099B CN114419099B (zh) 2024-08-13

Family

ID=81274392

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210056206.0A Active CN114419099B (zh) 2022-01-18 2022-01-18 捕捉待渲染虚拟对象的运动轨迹的方法

Country Status (3)

Country Link
US (1) US20230316541A1 (zh)
CN (1) CN114419099B (zh)
WO (1) WO2023138170A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115063518A (zh) * 2022-06-08 2022-09-16 Oppo广东移动通信有限公司 轨迹渲染方法、装置、电子设备及存储介质
CN115239865A (zh) * 2022-08-03 2022-10-25 中国电信股份有限公司 模型构建方法、模型构建装置、介质及电子设备
WO2023138170A1 (zh) * 2022-01-18 2023-07-27 腾讯科技(深圳)有限公司 捕捉待渲染虚拟对象的运动轨迹的方法、装置及电子设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117495847B (zh) * 2023-12-27 2024-03-19 安徽蔚来智驾科技有限公司 路口检测方法、可读存储介质及智能设备

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2307352A1 (en) * 1999-06-30 2000-12-30 International Business Machines Corporation System and method for displaying a three-dimensional object using motion vectors to generate object blur
CN101819684A (zh) * 2010-04-12 2010-09-01 长春理工大学 一种动画电影虚拟三维场景的空间加速结构及其创建与更新方法
US20100321389A1 (en) * 2009-06-23 2010-12-23 Disney Enterprises, Inc. System and method for rendering in accordance with location of virtual objects in real-time
CN103258338A (zh) * 2012-02-16 2013-08-21 克利特股份有限公司 利用真实数据来驱动仿真的虚拟环境的方法和系统
JP2017188041A (ja) * 2016-04-08 2017-10-12 株式会社バンダイナムコエンターテインメント プログラム及びコンピュータシステム
US20170336941A1 (en) * 2016-05-18 2017-11-23 Meta Company System and method for facilitating user interaction with a three-dimensional virtual environment in response to user input into a control device having a graphical interface
CN108961376A (zh) * 2018-06-21 2018-12-07 珠海金山网络游戏科技有限公司 虚拟偶像直播中实时绘制三维场景的方法及系统
CN110047124A (zh) * 2019-04-23 2019-07-23 北京字节跳动网络技术有限公司 渲染视频的方法、装置、电子设备和计算机可读存储介质
US20200074738A1 (en) * 2018-08-30 2020-03-05 Snap Inc. Video clip object tracking
CN111161391A (zh) * 2020-04-02 2020-05-15 南京芯瞳半导体技术有限公司 一种生成追踪路径的方法、装置及计算机存储介质
CN111325822A (zh) * 2020-02-18 2020-06-23 腾讯科技(深圳)有限公司 热点图的显示方法、装置、设备及可读存储介质
CN111383313A (zh) * 2020-03-31 2020-07-07 歌尔股份有限公司 一种虚拟模型渲染方法、装置、设备及可读存储介质
CN111986304A (zh) * 2019-05-23 2020-11-24 辉达公司 使用射线追踪和光栅化的结合来渲染场景
US20200410740A1 (en) * 2019-06-25 2020-12-31 Arm Limited Graphics processing systems
CN113064540A (zh) * 2021-03-23 2021-07-02 网易(杭州)网络有限公司 基于游戏的绘制方法、绘制装置、电子设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114419099B (zh) * 2022-01-18 2024-08-13 腾讯科技(深圳)有限公司 捕捉待渲染虚拟对象的运动轨迹的方法

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2307352A1 (en) * 1999-06-30 2000-12-30 International Business Machines Corporation System and method for displaying a three-dimensional object using motion vectors to generate object blur
US20100321389A1 (en) * 2009-06-23 2010-12-23 Disney Enterprises, Inc. System and method for rendering in accordance with location of virtual objects in real-time
CN101819684A (zh) * 2010-04-12 2010-09-01 长春理工大学 一种动画电影虚拟三维场景的空间加速结构及其创建与更新方法
CN103258338A (zh) * 2012-02-16 2013-08-21 克利特股份有限公司 利用真实数据来驱动仿真的虚拟环境的方法和系统
JP2017188041A (ja) * 2016-04-08 2017-10-12 株式会社バンダイナムコエンターテインメント プログラム及びコンピュータシステム
US20170336941A1 (en) * 2016-05-18 2017-11-23 Meta Company System and method for facilitating user interaction with a three-dimensional virtual environment in response to user input into a control device having a graphical interface
CN108961376A (zh) * 2018-06-21 2018-12-07 珠海金山网络游戏科技有限公司 虚拟偶像直播中实时绘制三维场景的方法及系统
US20200074738A1 (en) * 2018-08-30 2020-03-05 Snap Inc. Video clip object tracking
CN110047124A (zh) * 2019-04-23 2019-07-23 北京字节跳动网络技术有限公司 渲染视频的方法、装置、电子设备和计算机可读存储介质
CN111986304A (zh) * 2019-05-23 2020-11-24 辉达公司 使用射线追踪和光栅化的结合来渲染场景
US20200410740A1 (en) * 2019-06-25 2020-12-31 Arm Limited Graphics processing systems
CN111325822A (zh) * 2020-02-18 2020-06-23 腾讯科技(深圳)有限公司 热点图的显示方法、装置、设备及可读存储介质
CN111383313A (zh) * 2020-03-31 2020-07-07 歌尔股份有限公司 一种虚拟模型渲染方法、装置、设备及可读存储介质
CN111161391A (zh) * 2020-04-02 2020-05-15 南京芯瞳半导体技术有限公司 一种生成追踪路径的方法、装置及计算机存储介质
CN113064540A (zh) * 2021-03-23 2021-07-02 网易(杭州)网络有限公司 基于游戏的绘制方法、绘制装置、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张汉清;张科;: "基于GPU粒子系统的战场实时雨雪效果模拟", 计算机仿真, no. 10, 15 October 2007 (2007-10-15), pages 205 - 208 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023138170A1 (zh) * 2022-01-18 2023-07-27 腾讯科技(深圳)有限公司 捕捉待渲染虚拟对象的运动轨迹的方法、装置及电子设备
CN115063518A (zh) * 2022-06-08 2022-09-16 Oppo广东移动通信有限公司 轨迹渲染方法、装置、电子设备及存储介质
CN115239865A (zh) * 2022-08-03 2022-10-25 中国电信股份有限公司 模型构建方法、模型构建装置、介质及电子设备

Also Published As

Publication number Publication date
CN114419099B (zh) 2024-08-13
US20230316541A1 (en) 2023-10-05
WO2023138170A1 (zh) 2023-07-27

Similar Documents

Publication Publication Date Title
CN114419099B (zh) 捕捉待渲染虚拟对象的运动轨迹的方法
US11538229B2 (en) Image processing method and apparatus, electronic device, and computer-readable storage medium
US9659400B2 (en) Efficiently implementing and displaying independent 3-dimensional interactive viewports of a virtual world on multiple client devices
US10573060B1 (en) Controller binding in virtual domes
CN114332332A (zh) 用于生成场景中的表面的三维重建的方法和设备
US11450057B2 (en) Hardware acceleration for ray tracing primitives that share vertices
US12026833B2 (en) Few-shot synthesis of talking heads
CN113781624A (zh) 具有可选的世界空间变换的光线跟踪硬件加速
DE102021115353A1 (de) Strahlverfolgung-hardwarebeschleunigung zur unterstützung von bewegungsunschärfe und sich bewegender/verformender geometrie
TWI780995B (zh) 圖像處理方法、設備及電腦儲存媒體
CN110275968A (zh) 图像数据处理方法和装置
CN115529835A (zh) 用于新颖视图合成的神经混合
US10740957B1 (en) Dynamic split screen
CN116051713B (zh) 渲染方法、电子设备和计算机可读存储介质
CN116271814A (zh) 场景画面处理方法、装置、存储介质及电子装置
CN116977532A (zh) 立方体纹理生成方法、装置、设备、存储介质和程序产品
Li et al. Immersive neural graphics primitives
CN112891940B (zh) 图像数据处理方法及装置、存储介质、计算机设备
US20230186575A1 (en) Method and apparatus for combining an augmented reality object in a real-world image
WO2023231793A9 (zh) 对物理场景进行虚拟化的方法、电子设备、计算机可读存储介质和计算机程序产品
CN113476835B (zh) 一种画面显示的方法及装置
CN114047998B (zh) 对象更新方法及装置
CN116977545A (zh) 三维模型显示方法、装置、计算机设备和存储介质
Yang et al. Enhancing Scene Simulation for Autonomous Driving with Neural Point Rendering
Bhujel Interpolating 360 Degree Views Using Multi-Sphere Images Generated From Spherical Image

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