调整渲染目标显示尺寸的方法、装置及存储介质与流程

文档序号:32595359发布日期:2022-12-17 13:13阅读:49来源:国知局
调整渲染目标显示尺寸的方法、装置及存储介质与流程

1.本技术涉及计算机技术领域,具体而言,涉及一种调整渲染目标显示尺寸的方法、装置及存储介质。


背景技术:

2.在计算机技术领域的图形渲染场景下,并不是所有的渲染操作都针对视锥体(view frustum)的全部空间。在视锥体空间中,执行指定渲染特性的部分或全部三维区域称为三维感兴趣区域(volume空间),该三维感兴趣区域通常与渲染操作的渲染目标(render target,rt)相对应。相关技术中,技术人员通常通过人工设置一个rt尺寸的方式,指定渲染操作对应的三维感兴趣区域。然而,在实际的渲染引擎运行过程中,三维感兴趣区域可能发生变化,当技术人员发现由于rt尺寸较小导致渲染精度低的情况时,通常会调大rt尺寸,以牺牲性能为代价提高渲染效果。
3.因此,现有技术提供的调整渲染目标显示尺寸的方法的缺陷在于:由于采用固定尺寸的rt进行渲染,导致难以兼顾渲染效果和渲染性能。
4.针对上述的问题,目前尚未提出有效的解决方案。
5.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本技术的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:

6.本技术至少部分实施例提供了一种调整渲染目标显示尺寸的方法、装置及存储介质,以至少解决由于采用固定尺寸的渲染目标进行渲染导致难以兼顾渲染效果和渲染性能的技术问题。
7.根据本技术其中一实施例,提供了一种调整渲染目标显示尺寸的方法,包括:获取虚拟摄像机在三维场景中的当前位置与当前朝向;确定三维场景中待渲染的目标三维虚拟区域,其中,目标三维虚拟区域是在虚拟摄像机的观察空间内可发生显示变化的三维感兴趣区域;基于当前位置和当前朝向,获取目标三维虚拟区域对应的第一三维虚拟几何体在目标平面的投影结果,其中,目标平面是将虚拟摄像机的视椎体投影至屏幕空间得到的平面;利用目标平面和投影结果,调整渲染目标的显示尺寸。
8.根据本技术其中一实施例,还提供了一种调整渲染目标显示尺寸的装置,包括:第一获取模块,用于获取虚拟摄像机在三维场景中的当前位置与当前朝向;确定模块,用于确定三维场景中待渲染的目标三维虚拟区域,其中,目标三维虚拟区域是在虚拟摄像机的观察空间内可发生显示变化的三维感兴趣区域;第二获取模块,用于基于当前位置和当前朝向,获取目标三维虚拟区域对应的第一三维虚拟几何体在目标平面的投影结果,其中,目标平面是将虚拟摄像机的视椎体投影至屏幕空间得到的平面;调整模块,用于利用目标平面和投影结果,调整渲染目标的显示尺寸。
9.根据本技术其中一实施例,还提供了一种计算机可读存储介质,计算机可读存储
介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述任一项中的调整渲染目标显示尺寸的方法。
10.根据本技术其中一实施例,还提供了一种电子装置,包括:包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行上述任一项中的调整渲染目标显示尺寸的方法。
11.在本技术至少部分实施例中,通过获取虚拟摄像机在三维场景中的当前位置与当前朝向,确定三维场景中待渲染的目标三维虚拟区域,其中,目标三维虚拟区域是在虚拟摄像机的观察空间内可发生显示变化的三维感兴趣区域,采用基于当前位置和当前朝向,获取目标三维虚拟区域对应的第一三维虚拟几何体在目标平面的投影结果的方式,其中,目标平面是将虚拟摄像机的视椎体投影至屏幕空间得到的平面,进一步利用目标平面和投影结果,调整渲染目标(即,rt)的显示尺寸,达到了利用可发生显示变化的三维感兴趣区域灵活地调整渲染目标的显示尺寸的目的,从而实现了以较低消耗保证渲染结果的较高精度、平衡渲染效果和渲染性能的技术效果,进而解决了由于采用固定尺寸的渲染目标进行渲染导致难以兼顾渲染效果和渲染性能的技术问题。
附图说明
12.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
13.图1是本技术实施例的一种调整渲染目标显示尺寸的方法的移动终端的硬件结构框图;
14.图2是根据本技术其中一实施例的一种调整渲染目标显示尺寸的方法的流程图;
15.图3是根据本技术其中一实施例的一种调整渲染目标的尺寸的过程示意图;
16.图4是根据本技术其中一实施例的一种球体结构平移过程的示意图;
17.图5是根据本技术其中一实施例的一种球体结构投影的示意图;
18.图6是根据本技术其中一实施例的一种视锥体截面的示意图;
19.图7是根据本技术其中一实施例的一种构造圆锥体的示意图;
20.图8是根据本技术其中一实施例的一种凹多边形的示意图;
21.图9是根据本技术其中一实施例的一种调整渲染目标显示尺寸的装置的结构框图;
22.图10是根据本技术其中一实施例的一种电子装置的示意图。
具体实施方式
23.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
24.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用
的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
25.需要说明的是,在本技术的说明书中,“例如”一词用来表示“用作例子、例证或说明”。本技术中被描述为“例如”的任何实施例不一定被解释为比其它实施例更优选或更具优势。为了使本领域任何技术人员能够实现和使用本技术,给出了以下描述。在以下描述中,为了解释的目的而列出了细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本技术。在其它实例中,不会对公知的结构和过程进行详细阐述,以避免不必要的细节使本技术的描述变得晦涩。因此,本技术并非旨在限于所示的实施例,而是与符合本技术所公开的原理和特征的最广范围相一致。
26.目前,游戏引擎通过应用程序界面(application program interface,api)进行图元绘制时,通常使用固定尺寸的rt,这是因为视锥体(view frustum)对应的空间大小是恒定的,或者rt作用于视锥体中固定大小的空间(如阴影贴图shadow map作用于视锥体中的前方固定距离)。然而,在实际应用场景中,并非所有渲染操作都针对视锥体中固定大小的空间,例如,当虚拟角色需要绘制到屏幕上的大小产生变化时(如变换游戏玩法、选角操作时调整观察视角和拍照模式时调整角色姿势等),如果仍根据视锥体对应的空间大小使用固定尺寸的rt进行渲染,则很难兼顾渲染效果和渲染性能。
27.也就是说,在计算机技术领域的图形渲染场景下,只有当渲染操作涉及的三维感兴趣区域的大小恒定的情况下,相关技术提供的采用人工设置固定尺寸的rt进行渲染才是利于应用的。然而,如果始终使用上述相关技术的方法,在使用透视投影或正交投影的情况下,尤其是虚拟场景存在较高的渲染精度需求的情况(如渲染虚拟角色的精细投影)下,当三维感兴趣区域变大或者靠近虚拟摄像机(camera)时,将会出现渲染效果精度不足的问题;反之,当三维感兴趣区域变小或者远离虚拟摄像机(camera)时,则会产生不必要的渲染性能损耗。所以,相关技术提供的方法中,存在由于采用固定尺寸的渲染目标进行渲染导致难以兼顾渲染效果和渲染性能的技术问题。
28.在本技术的一种可能的实施方式中,针对计算机技术领域下图形渲染背景中通常所采用的基于人工设置固定尺寸的rt进行渲染的方法,发明人经过实践并仔细研究后,仍然存在由于采用固定尺寸的渲染目标进行渲染导致难以兼顾渲染效果和渲染性能的技术问题,基于此,本技术实施例的应用场景可以是互联网、游戏、虚拟现实、增强现实和人工智能等领域中涉及计算机图形(或图像)渲染的场景,例如游戏领域的应用场景中,所针对的游戏类型可以是动作类、冒险类、模拟类、角色扮演类和休闲类等。
29.本技术实施例提出了一种基于三维感兴趣区域的投影面积占比优化渲染性能的方法,采用根据可发生显示变化的三维感兴趣区域对应的虚拟对象投影结果动态地调整rt的显示尺寸的技术构思,实现了以较低消耗保证渲染结果的较高精度、平衡渲染效果和渲染性能的技术效果,进而解决了由于采用固定尺寸的渲染目标进行渲染导致难以兼顾渲染效果和渲染性能的技术问题。
30.本技术涉及到的上述方法实施例,可以在终端设备(例如,移动终端、计算机终端
或者类似的运算装置)中执行。以运行在移动终端上为例,该移动终端可以是智能手机、平板电脑、掌上电脑以及移动互联网设备、pad、游戏机等终端设备。
31.图1是根据本技术其中一实施例的一种调整渲染目标显示尺寸的方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102、存储器104、传输设备106、输入输出设备108以及显示设备110。以调整渲染目标显示尺寸的方法通过该移动终端应用于电子游戏场景为例,处理器102调用并运行存储器104中存储的计算机程序以执行该调整渲染目标显示尺寸的方法,根据所调整的渲染目标的显示尺寸在电子游戏场景中进行渲染,将渲染得到的渲染结果通过传输设备106传输至输入输出设备108和/或显示设备110,进而将该渲染结果提供给玩家。
32.仍然如图1所示,处理器102可以包括但不限于:中央处理器(central processing unit,cpu)、图形处理器(graphics processing unit,gpu)、数字信号处理(digital signal processing,dsp)芯片、微处理器(microcontroller unit,mcu)、可编程逻辑器件(field programmable gate array,fpga)、神经网络处理器(neural-network processing unit,npu)、张量处理器(tensor processing unit,tpu)、人工智能(artificial intelligence,ai)类型处理器等的处理装置。
33.本领域技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
34.在一些以游戏场景为主的可选实施例中,上述终端设备还可以提供具有触摸触敏表面的人机交互界面,该人机交互界面可以感应手指接触和/或手势来与图形用户界面(graphical user interface,gui)进行人机交互,该人机交互功能可以包括如下交互:创建网页、绘图、文字处理、制作电子文档、游戏、视频会议、即时通信、收发电子邮件、通话界面、播放数字视频、播放数字音乐和/或网络浏览等、用于执行上述人机交互功能的可执行指令被配置/存储在一个或多个处理器可执行的计算机程序产品或可读存储介质中。
35.本技术涉及到的上述方法实施例,还可以在服务器中执行。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。以调整渲染目标显示尺寸的方法通过电子游戏服务器应用于电子游戏场景为例,电子游戏服务器可基于该调整渲染目标显示尺寸的方法调整渲染目标的显示尺寸,并根据该渲染目标的显示尺寸在电子游戏场景中进行渲染,将渲染结果提供给玩家(例如,可以渲染显示在玩家终端的显示屏上,或者,通过全息投影提供给玩家等)。
36.根据本技术其中一实施例,提供了一种调整渲染目标显示尺寸的方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
37.在本实施例中提供了一种运行于上述移动终端的一种调整渲染目标显示尺寸的方法,图2是根据本技术其中一实施例的一种调整渲染目标显示尺寸的方法的流程图,如图2所示,该方法包括如下步骤:
38.步骤s21,获取虚拟摄像机在三维场景中的当前位置与当前朝向;
39.上述三维场景可以是虚拟游戏场景,该虚拟游戏场景对应的游戏类型可以是:动作类(例如:第一人称或第三人称射击游戏、二维或三维格斗游戏、战争动作游戏和体育动作游戏等)、冒险类(例如:探险游戏、收藏游戏、解谜游戏等)、模拟类(例如:模拟沙盘游戏、模拟养成游戏、策略模拟游戏、城市建造模拟游戏、商业模拟游戏等)、角色扮演类和休闲类(例如:棋牌桌游游戏、休闲竞技游戏、音乐节奏游戏、换装养成游戏等)等。
40.上述虚拟摄像机可以是上述虚拟游戏场景中的观察相机。通过预设游戏引擎可以获取该虚拟摄像机在上述虚拟游戏场景中的当前位置和当前朝向。当前位置可以是该虚拟摄像机在虚拟游戏场景的世界坐标系下当前时刻所处的位置,该当前位置可以用于确定该虚拟摄像机在虚拟游戏场景中的观察视野范围大小。当前朝向可以确定该虚拟摄像机在虚拟游戏场景中的观察方向。
41.步骤s22,确定三维场景中待渲染的目标三维虚拟区域,其中,目标三维虚拟区域是在虚拟摄像机的观察空间内可发生显示变化的三维感兴趣区域;
42.上述目标三维区域可以是上述三维场景中虚拟摄像机的观察空间内待渲染的三维区域。上述虚拟摄像机的观察空间可以是虚拟游戏场景中视锥体对应的空间。目标三维区域可以用于确定渲染目标的显示尺寸。
43.上述目标三维虚拟区域可以是在虚拟摄像机的观察空间内可发生显示变化的三维感兴趣区域。例如,当虚拟游戏场景中的虚拟角色支持缩放、形变、旋转和移动等操作时,在该虚拟游戏场景中虚拟摄像机的观察空间内,可发生显示变化的三维感兴趣区域可以是上述虚拟角色进行缩放、形变、旋转和移动所需要的最大显示区域。
44.步骤s23,基于当前位置和当前朝向,获取目标三维虚拟区域对应的第一三维虚拟几何体在目标平面的投影结果,其中,目标平面是将虚拟摄像机的视椎体投影至屏幕空间得到的平面;
45.上述目标三维虚拟区域对应的第一三维虚拟几何体可以是该目标三维虚拟区域对应的三维结构,例如,为满足渲染计算的实时性需求,该目标三维虚拟区域可以但不限于是球体(sphere)结构或者立方体(cube)结构,对应的,该第一三维虚拟几何体可以但不限于是球体或者立方体。
46.上述目标平面可以是将上述虚拟摄像机的视锥体投影至屏幕空间(screen space)得到的平面。根据上述虚拟摄像机在三维场景中的当前位置与当前朝向,可以进一步将目标三维虚拟区域对应的第一三维虚拟几何体投影至上述目标平面,进而获取上述投影结果。
47.上述投影结果可以以下形式给出:该第一三维虚拟几何体在上述目标平面上的投影区域,或者该第一三维虚拟几何体在上述目标平面上的投影区域占该目标平面的全部区域的比例。也就是说,该投影结果可以但不限于是区域面积或者百分比值。
48.具体地,上述基于当前位置和当前朝向,获取目标三维虚拟区域对应的第一三维虚拟几何体在目标平面的投影结果,还可以包括其他方法步骤,可以参照下文中对于本技术实施例的进一步介绍,此处不予赘述。
49.步骤s24,利用目标平面和投影结果,调整渲染目标的显示尺寸。
50.由于上述目标平面和投影结果是基于虚拟摄像机的当前位置和当前朝向实时确
定的,所以利用该目标平面和投影结果,可以实时地动态调整渲染目标的显示尺寸。与相关技术中采用固定尺寸的渲染目标进行渲染相比,通过本技术的上述方法步骤可以在渲染过程中平衡渲染精度和渲染性能。
51.具体地,上述利用目标平面和投影结果,调整渲染目标的显示尺寸,还可以包括其他方法步骤,可以参照下文中对于本技术实施例的进一步介绍,此处不予赘述。
52.在本技术至少部分实施例中,通过获取虚拟摄像机在三维场景中的当前位置与当前朝向,确定三维场景中待渲染的目标三维虚拟区域,其中,目标三维虚拟区域是在虚拟摄像机的观察空间内可发生显示变化的三维感兴趣区域,采用基于当前位置和当前朝向,获取目标三维虚拟区域对应的第一三维虚拟几何体在目标平面的投影结果的方式,其中,目标平面是将虚拟摄像机的视椎体投影至屏幕空间得到的平面,进一步利用目标平面和投影结果,调整渲染目标(即,rt)的显示尺寸,达到了利用可发生显示变化的三维感兴趣区域灵活地调整渲染目标的显示尺寸的目的,从而实现了以较低消耗保证渲染结果的较高精度、平衡渲染效果和渲染性能的技术效果,进而解决了由于采用固定尺寸的渲染目标进行渲染导致难以兼顾渲染效果和渲染性能的技术问题。
53.下面对本技术实施例的上述方法进行进一步介绍。
54.可选地,在步骤s23中,基于当前位置和当前朝向,获取第一三维虚拟几何体在目标平面的投影结果,可以包括以下执行步骤:
55.步骤s231,选取第一三维虚拟几何体对应的目标投影方式,其中,第一三维虚拟几何体用于描述目标三维虚拟区域的包围盒形态;
56.步骤s232,在目标投影方式下,基于当前位置和当前朝向,获取第一三维虚拟几何体在目标平面的投影面积,其中,目标平面垂直于当前朝向。
57.在上述可选的实施例中,上述第一三维虚拟几何体对应的目标投影方式可以是透视投影或正交投影等。第一三维虚拟几何体可以用于描述目标三维虚拟区域的包围盒形态。例如,第一三维虚拟几何体可以是球体结构、立方体结构等。
58.在上述目标投影方式下,基于虚拟摄像机在三维场景中的当前位置和当前朝向,可以获取第一三维虚拟几何体在目标平面的投影面积。该目标平面垂直于当前朝向。例如,当虚拟摄像机在三维场景中俯视(朝向正下方)虚拟角色时,可以选取三维场景的虚拟地平面作为上述目标平面,将该第一三维虚拟几何体向该虚拟地平面进行投影。
59.可选地,在步骤s231中,选取第一三维虚拟几何体对应的目标投影方式可以包括以下执行步骤:
60.步骤s2311,响应于第一三维虚拟几何体为球体结构,基于球体结构与第一屏幕显示精度选取第一球体结构投影方式,以及基于球体结构与第二屏幕显示精度选取第二球体结构投影方式,其中,第一屏幕显示精度低于第二屏幕显示精度。
61.在上述可选的实施方式中,当第一三维虚拟几何体为球体结构时,可以根据球体结构与屏幕显示精度选取投影方式。也就是说,可以基于球体结构与第一屏幕显示精度选取第一球体结构投影方式,还可以基于球体结构与第二屏幕显示精度选取第二球体结构投影方式。
62.上述第一屏幕显示精度低于第二屏幕显示精度,上述第一球体结构投影方式可以是球体结构近似投影,上述第二球体结构投影方式可以是球体结构精确投影。
63.需要说明的是,在具体的应用场景中,可以根据应用场景当前所使用的设备性能或者应用场景当前设置的精度选项,选择上述球体结构近似投影和上述球体结构精确投影的其中之一进行球体结构的投影。例如,如果当前设备性能较差,或者当前设置的精度选项为较低精度(如,无需高精度的质效平衡),则默认选择采用上述球体结构近似投影;否则,默认选择采用上述球体结构精确投影。
64.需要说明的是,在上述选取第一球体结构投影方式和选取第二球体结构投影方式的过程中,投影方式可以是正交投影或者透视投影等。
65.可选地,在步骤s232中,在目标投影方式下,基于当前位置和当前朝向,获取第一三维虚拟几何体在目标平面的投影面积可以包括以下执行步骤:
66.步骤s2331,在第一球体结构投影方式下,基于当前朝向调整球体结构的球心位置,直至球心位置位于当前朝向所在的直线上;
67.步骤s2332,以当前位置和球心位置之间的连线为中心线,构建第二三维虚拟几何体,其中,第二三维虚拟几何体的侧面与球体结构相切;
68.步骤s2333,利用第二三维虚拟几何体确定球体结构在目标平面上得到的圆形投影;
69.步骤s2334,通过当前位置、球心位置和圆形投影的圆心位置,计算圆形投影的投影半径;
70.步骤s2335,根据投影半径计算投影面积。
71.本技术提供的上述方法步骤可以应用于电子游戏领域中涉及图形图像渲染的场景中,尤其是可以应用于虚拟游戏场景中虚拟角色对应的三维感兴趣区域尺寸不固定(即,可变)的情况,以该情况为例对本技术实施例的具体实施方式进行详细说明。
72.图3是根据本技术其中一实施例的一种调整渲染目标的尺寸的过程示意图,如图3所示,当虚拟游戏场景中虚拟角色对应的三维感兴趣区域尺寸不固定(如图3中所示的需要自主调整)时,可以使用本技术提供的调整渲染目标显示尺寸的方法。
73.针对虚拟游戏场景中常见的球体结构,可以创建两种透视投影模型:球体近似投影模型(相当于上述第一球体结构投影方式)和球体精确投影模型。
74.图4是根据本技术其中一实施例的一种球体结构平移过程的示意图,如图4所示,为了简化球体结构投影模型,快速计算得到近似的投影结果,可以将球体结构的球形平移至虚拟摄像机的当前朝向的方向上,此时可以保证球心和虚拟摄像机之间的距离在虚拟相机的当前朝向的方向上投影长度是恒定的,进而可以使得该球体结构在屏幕截面上的投影为圆形(而未平移前,该球体结构在屏幕截面上的投影可能为椭圆)。
75.本技术实施例提供的上述方法步骤可以利用unity游戏引擎实现,以虚拟摄像机的当前朝向为观察空间的-z方向,则可以将xy平面作为上述目标平面。将球体结构的球心位置记为a点,虚拟摄像机的当前位置记为c点。
76.图5是根据本技术其中一实施例的一种球体结构投影的示意图,如图5所示,所在的竖直平面即为上述xy平面(相当于上述目标平面),当球体结构向xy平面投影时,球体结构的投影的高度为球体结构的投影的宽度大小等于e点为的中点。由下述公式(1)至公式(4)所示的几何关系,可以计算得到该可以作为圆形投影的投影
直径,进而计算该圆形投影的面积。
[0077][0078][0079][0080][0081]
图6是根据本技术其中一实施例的一种视锥体截面的示意图,如图6所示,根据几何关系可知,∠fcg等于图5中所示的∠bcd,∠fce是∠fcg的一半,则基于已求得的利用如下述公式(5)所示的几何关系,可以计算得到而2可以作为投影屏幕截面的高,根据预先设置的屏幕宽高比,可以求得屏幕区域的面积。
[0082][0083]
需要说明的是,如图6所示,∠fcg对应于虚拟摄像机的视野角(field of view,fov)。
[0084]
可选地,在步骤s232中,在目标投影方式下,基于当前位置和当前朝向,获取第一三维虚拟几何体在目标平面的投影面积,还可以包括以下执行步骤:
[0085]
步骤s2341,在第二球体结构投影方式下,基于当前位置和当前朝向,确定目标平面与球体结构的切点位置;
[0086]
步骤s2342,以当前位置和球体结构的球心位置之间的连线为中心线,构建第二三维虚拟几何体,其中,第二三维虚拟几何体的侧面与球体结构相切;
[0087]
步骤s2343,利用第二三维虚拟几何体确定球体结构在目标平面上得到的椭圆形投影;
[0088]
步骤s2344,通过当前位置在目标平面上的投影位置、切点位置和椭圆形投影的第一顶点位置和第二顶点位置,计算椭圆形投影的半长轴长度与半短轴长度,其中,切点位置为椭圆形投影的焦点位置,第一顶点位置与第二顶点位置为椭圆形投影的长轴两端顶点位置;
[0089]
步骤s2345,根据半长轴长度与半短轴长度计算投影面积。
[0090]
在本技术的上述可选的实施例中上述第二三维虚拟几何体可以但不限于是虚拟圆锥体或者虚拟圆柱体。
[0091]
仍然如图3所示,针对虚拟游戏场景中常见的球体结构,可以创建两种透视投影模型:球体近似投影模型和球体精确投影模型(相当于上述第二球体结构投影方式)。
[0092]
在考虑球体精确投影模型时,有以下前置条件1:球体结构通过透视投影到二维平面上,形成的投影图形通常是椭圆。仅当球体结构的球心在虚拟摄像机的当前朝向的方向上时,形成的投影图形才是圆。
[0093]
上述前置条件1的证明如下:
[0094]
图7是根据本技术其中一实施例的一种构造圆锥体的示意图,如图7所示,定义并
构造圆锥体:虚拟摄像机的当前位置作为圆锥体的顶点,虚拟摄像机的当前位置与球体结构的球心的连线作为圆锥体的中心线,通过圆锥体侧面和球体结构相切限制圆锥体的张角,假定圆锥体的高度为无限大(即,假设虚拟摄像机可以看到无限远处)。
[0095]
球体结构在屏幕区域(相当于上述目标平面)的透视投影可以看成:使用垂直于forward的面截取圆锥体,所形成的截面就是球体结构的投影。当所构造的圆锥体中心线和虚拟摄像机的当前朝向的方向(以下称为forward)不重合时,也即球体结构的球心没有在屏幕区域的中心时,上述截面(也即,球体结构的投影)只能是椭圆形。只有当圆锥体中心线和forward重合时,该截面是才是圆形。
[0096]
此外,在考虑球体精确投影模型时,还有以下前置条件2:球体结构通过透视投影到二维平面上,所形成的椭圆形投影的长轴所在直线与forward相交,也就是说,虚拟摄像机在二维平面上的投影点在椭圆形投影的长轴所在的直线上。
[0097]
上述前置条件2的证明如下:
[0098]
虚拟摄像机的当前位置到椭圆形投影短轴的两个顶点的距离是相等的,可得知:虚拟摄像机在二维平面上的投影点到椭圆形投影短轴的两个顶点的距离也是相等的。则虚拟摄像机在二维平面上的投影点在椭圆形投影短轴的中垂线上,所以,虚拟摄像机在二维平面上的投影点在椭圆形投影长轴所在的直线上。
[0099]
仍然如图7所示,虚拟摄像机的当前位置记为s,为虚拟摄像机的当前朝向的方向(也即forward),为圆锥体的中心线,球体结构m(也即,球心记为m点)的后切面e作为上述目标平面(也即,垂直于forward的面)。则此时,球体结构m与后切面e相切,且切点为椭圆形投影的焦点,证明过程如下:
[0100]
如图7所示,a、b为椭圆形投影的长轴的两个端点,f1、f2为椭圆形投影的两个焦点,d为虚拟摄像机在后切面e上的投影点,h为圆锥体与后切面e的交点。球体结构m的半径记为radius,则有如下述公式(6)至公式(14)所示的三角函数关系:
[0101][0102][0103][0104][0105][0106][0107][0108][0109][0110]
进一步地,将椭圆形投影的半长轴记为a,椭圆形投影的半短轴记为b,椭圆形投影
的半焦距记为c,则可以根据下述公式(15)至公式(18)计算得到椭圆形投影的面积s0:
[0111][0112][0113][0114][0115]
需要说明的是,∠dsm小于∠asm时,上述公式推导仍然成立。进一步地,点d与点h重合时,投影的图形退化成圆形,仍然可通过上述公式计算得到。
[0116]
由上可知,在球体精确投影模型中,可以先构建与球体结构相切的圆锥体,按照能够使虚拟摄像机的投影点在椭圆形(可以是圆锥体的斜截面)的长轴上的规则构建圆锥体的斜截面模型(当斜截面平行于圆锥体的底面时,该斜截面也可以是圆形,此时使虚拟摄像机的投影点在该圆形的半径上),进而计算椭圆形的焦距、短轴长度和长轴长度,从而计算椭面面积,得到球体精确投影结果。
[0117]
可选地,在步骤s231中,选取第一三维虚拟几何体对应的目标投影方式可以包括以下执行步骤:
[0118]
步骤s2312,响应于第一三维虚拟几何体为立方体结构,基于立方体结构选取立方体结构投影方式。
[0119]
在上述可选的实施方式中,当第一三维虚拟几何体为立方体结构时,可以基于立方体结构选取立方体结构投影方式。由于立方体结构的透视投影和正交投影的投影结果均为多边形,所以对于立方体结构而言,透视投影的投影方式与正交投影的投影方式类似。
[0120]
可选地,在步骤s232中,在目标投影方式下,基于当前位置和当前朝向,获取第一三维虚拟几何体在目标平面的投影面积可以包括以下执行步骤:
[0121]
步骤s2351,在立方体结构投影方式下,将立方体结构中每个面的顶点与面法线转换至观察空间,得到转换结果;
[0122]
步骤s2352,基于转换结果、当前位置和当前朝向,确定至少一个可见面,其中,至少一个可见面为虚拟摄像机在观察空间下的可见面;
[0123]
步骤s2353,利用至少一个可见面确定立方体结构在目标平面上得到的多边形投影;
[0124]
步骤s2354,对多边形投影进行分割处理,得到多个子多边形;
[0125]
步骤s2355,计算多个子多边形的面积之和,得到投影面积。
[0126]
仍然如图3所示,针对虚拟游戏场景中常见的立方体结构,可以创建立方体投影模型。在立方体投影模型中,立方体结构的透视投影和正交投影的投影结果均为多边形。
[0127]
仍然如图3所示,对立方体结构进行投影可以包括如下方法步骤:
[0128]
第一步,将立方体结构的六个面变换到虚拟摄像机的观察空间:定义立方体结构的每个面的面数据结构(本例中,面数据结构为四个顶点和面法线),将立方体结构的每个面的四个顶点和面法线转换到虚拟摄像机的观察空间;
[0129]
第二步,测试立方体结构的六个面在虚拟摄像机中的可见性:将立方体结构的每
个面的面法线与forward做点乘,点乘结果为正值,则该面为front面,也即该面可见,点乘结果为负值,则该面为back面,也即该面不可见;
[0130]
第三步,将立方体结构的多边形投影分割为多个子多边形,计算该多个子多边形的面积总和作为立方体结构的多边形投影的面积。
[0131]
容易注意到的是,在立方体结构投影模型中,并不是直接计算多边形投影的面积,而是将多边形投影分割为若干个子多边形。这是因为立方体结构在虚拟摄像机中的可见面较少(至多包含三个四边形面),而各可见面的投影(相当于上述多个子多边形)之间相互独立,多边形投影面积为多个可见面的投影面积之和。
[0132]
示例性的,计算任意多边形的面积时,可以通过几何坐标计算得到任意多边形(可以是凹多边形,也可以是凸多边形)的面积。根据本技术实施例,立方体结构的投影通常为凸多边形。由于凸多边形的面积计算通常易于凹多边形的面积计算,以下以凹多边形为例给出一种面积计算方法(该方法同样适用于凸多边形的面积计算)。
[0133]
图8是根据本技术其中一实施例的一种凹多边形的示意图,如图8所示,将凹多边形的多个顶点按照固定顺序(如顺时针或逆时针)组成封闭图形(如图8中所示的abcdef,o点为坐标系原点),然后令相邻的顶点的坐标做叉乘求和,将得到的结果取绝对值即可得到该任意多边形的面积。
[0134]
由上可知,在立方体投影模型中,可以先定义立方体的每个面的面数据结构,将立方体结构的六个面变换至观察空间,并测试该六个面的可见性,进而通过几何计算方法计算多边形(即,立方体模型的投影)面积,得到立方体投影结果。
[0135]
可选地,在步骤s24中,利用目标平面和投影结果,调整渲染目标的显示尺寸,可以包括以下执行步骤:
[0136]
步骤s241,计算投影结果对应的投影面积与目标平面的面积之间的占比关系;
[0137]
步骤s242,基于占比关系调整渲染目标的显示尺寸。
[0138]
上述投影结果对应的投影面积可以但不限于是:球体结构近似投影模型中,圆形投影的面积;球体结构精确投影模型中,椭圆形投影的面积;立方体投影模型中,多边形投影的面积。
[0139]
上述目标平面的面积可以是:屏幕显示区域的面积。该屏幕显示区域的面积可以由虚拟摄像机的当前位置、当前朝向和fov,结合预先设定的屏幕长宽比计算得到。
[0140]
计算投影结果对应的投影面积与目标平面的面积之间的占比关系,可以是计算该投影面积占屏幕显示区域的面积的比值(或百分比值)。
[0141]
示例性的,上述基于占比关系调整渲染目标的显示尺寸的具体实现方式可以是:获取当前设备的屏幕分辨率(如屏幕显示器分辨率为1920
×
1080);根据上述占比关系,计算适配于上述屏幕分辨率对应的待调整的渲染目标(rt)尺寸值;将渲染目标(rt)的尺寸调整至该渲染目标(rt)尺寸值。
[0142]
需要说明的是,在具体的应用场景中,部分渲染效果需要更高的渲染目标(rt)尺寸(如,全屏shadow map通常给定2048
×
2048的尺寸),以达到期望的渲染精度。因此,本实施例中,还可以包含以下技术方案:技术人员预先指定上述占比关系为100%(即,投影结果对应的投影面积与目标平面的面积相等),然后根据本实施例提供的方法计算占比关系100%对应的渲染目标(rt)尺寸。由上可知,本技术实施例提供的方法能够满足渲染效果较
高精度要求的同时,还具有较高的灵活性和可控性。基于上述占比关系,调整渲染目标(rt)的显示尺寸,可以实现在渲染过程中实时地、动态地、灵活地调整rt尺寸。当待渲染对象需要的rt较大时,立刻将rt调整至足够大的尺寸,避免出现渲染精度较低的情况;当待渲染对象需要的rt较小时,立刻将rt调整至适当的较小尺寸,避免渲染性能的不必要消耗。
[0143]
容易理解的是,与现有技术中使用固定尺寸的rt进行渲染的方法相比,通过本技术的上述实施例,能够在cpu端快速计算所构造的上述三种投影模型,还能够针对可发生显示变化的三维感兴趣区域,动态地调整渲染中的rt尺寸,进而保证三维感兴趣区域中的渲染效果具有较高精度和较低消耗,达到渲染效果和渲染性能的平衡。
[0144]
需要说明的是,对立方体结构来说,上述透视投影情况下的立方体投影模型同样适用于正交投影情况下。对球体结构来说,上述透视投影情况下的球体近似投影模型同样适用于正交投影情况下。
[0145]
综上容易理解的是,本技术的有益效果在于:能够通过构建三维感兴趣区域(至少包括球体结构和立方体结构)的投影模型,快速计算三维感兴趣区域在屏幕区域内的面积占比,进而调整rt的显示尺寸,使得三维感兴趣区域在渲染时能够平衡渲染效果和渲染性能。
[0146]
需要说明的是,本技术提供的方法实际上是计算机图形学中可变三维区域渲染效果的通用优化方法。
[0147]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本技术各个实施例所述的方法。
[0148]
在本实施例中还提供了一种调整渲染目标显示尺寸的装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0149]
图9是根据本技术其中一实施例的一种调整渲染目标显示尺寸的装置的结构框图,如图9所示,该装置包括:第一获取模块901,用于获取虚拟摄像机在三维场景中的当前位置与当前朝向;确定模块902,用于确定三维场景中待渲染的目标三维虚拟区域,其中,目标三维虚拟区域是在虚拟摄像机的观察空间内可发生显示变化的三维感兴趣区域;第二获取模块903,用于基于当前位置和当前朝向,获取目标三维虚拟区域对应的第一三维虚拟几何体在目标平面的投影结果,其中,目标平面是将虚拟摄像机的视椎体投影至屏幕空间得到的平面;调整模块904,用于利用目标平面和投影结果,调整渲染目标的显示尺寸。
[0150]
可选地,上述第二获取模块903,还用于:选取第一三维虚拟几何体对应的目标投影方式,其中,第一三维虚拟几何体用于描述目标三维虚拟区域的包围盒形态;在目标投影方式下,基于当前位置和当前朝向,获取第一三维虚拟几何体在目标平面的投影面积,其中,目标平面垂直于当前朝向。
[0151]
可选地,上述第二获取模块903,还用于:响应于第一三维虚拟几何体为球体结构,
基于球体结构与第一屏幕显示精度选取第一球体结构投影方式,以及基于球体结构与第二屏幕显示精度选取第二球体结构投影方式,其中,第一屏幕显示精度低于第二屏幕显示精度。
[0152]
可选地,上述第二获取模块903,还用于:在第一球体结构投影方式下,基于当前朝向调整球体结构的球心位置,直至球心位置位于当前朝向所在的直线上;以当前位置和球心位置之间的连线为中心线,构建第二三维虚拟几何体,其中,第二三维虚拟几何体的侧面与球体结构相切;利用第二三维虚拟几何体确定球体结构在目标平面上得到的圆形投影;通过当前位置、球心位置和圆形投影的圆心位置,计算圆形投影的投影半径;根据投影半径计算投影面积。
[0153]
可选地,上述第二获取模块903,还用于:在第二球体结构投影方式下,基于当前位置和当前朝向,确定目标平面与球体结构的切点位置;以当前位置和球体结构的球心位置之间的连线为中心线,构建第二三维虚拟几何体,其中,第二三维虚拟几何体的侧面与球体结构相切;利用第二三维虚拟几何体确定球体结构在目标平面上得到的椭圆形投影;通过当前位置在目标平面上的投影位置、切点位置和椭圆形投影的第一顶点位置和第二顶点位置,计算椭圆形投影的半长轴长度与半短轴长度,其中,切点位置为椭圆形投影的焦点位置,第一顶点位置与第二顶点位置为椭圆形投影的长轴两端顶点位置;根据半长轴长度与半短轴长度计算投影面积。
[0154]
可选地,上述第二获取模块903,还用于:响应于第一三维虚拟几何体为立方体结构,基于立方体结构选取立方体结构投影方式。
[0155]
可选地,上述第二获取模块903,还用于:在立方体结构投影方式下,将立方体结构中每个面的顶点与面法线转换至观察空间,得到转换结果;基于转换结果、当前位置和当前朝向,确定至少一个可见面,其中,至少一个可见面为虚拟摄像机在观察空间下的可见面;利用至少一个可见面确定立方体结构在目标平面上得到的多边形投影;对多边形投影进行分割处理,得到多个子多边形;计算多个子多边形的面积之和,得到投影面积。
[0156]
可选地,上述调整模块904,还用于:计算投影结果对应的投影面积与目标平面的面积之间的占比关系;基于占比关系调整渲染目标的显示尺寸。
[0157]
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
[0158]
本技术的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
[0159]
可选地,在本实施例中,上述计算机可读存储介质可以包括但不限于:u盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
[0160]
可选地,在本实施例中,上述计算机可读存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
[0161]
可选地,在本实施例中,上述计算机可读存储介质可以被设置为存储用于执行以下步骤的计算机程序:
[0162]
s1,获取虚拟摄像机在三维场景中的当前位置与当前朝向;
[0163]
s2,确定三维场景中待渲染的目标三维虚拟区域,其中,目标三维虚拟区域是在虚拟摄像机的观察空间内可发生显示变化的三维感兴趣区域;
[0164]
s3,基于当前位置和当前朝向,获取目标三维虚拟区域对应的第一三维虚拟几何体在目标平面的投影结果,其中,目标平面是将虚拟摄像机的视椎体投影至屏幕空间得到的平面;
[0165]
s4,利用目标平面和投影结果,调整渲染目标的显示尺寸。
[0166]
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:选取第一三维虚拟几何体对应的目标投影方式,其中,第一三维虚拟几何体用于描述目标三维虚拟区域的包围盒形态;在目标投影方式下,基于当前位置和当前朝向,获取第一三维虚拟几何体在目标平面的投影面积,其中,目标平面垂直于当前朝向。
[0167]
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:响应于第一三维虚拟几何体为球体结构,基于球体结构与第一屏幕显示精度选取第一球体结构投影方式,以及基于球体结构与第二屏幕显示精度选取第二球体结构投影方式,其中,第一屏幕显示精度低于第二屏幕显示精度。
[0168]
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:在第一球体结构投影方式下,基于当前朝向调整球体结构的球心位置,直至球心位置位于当前朝向所在的直线上;以当前位置和球心位置之间的连线为中心线,构建第二三维虚拟几何体,其中,第二三维虚拟几何体的侧面与球体结构相切;利用第二三维虚拟几何体确定球体结构在目标平面上得到的圆形投影;通过当前位置、球心位置和圆形投影的圆心位置,计算圆形投影的投影半径;根据投影半径计算投影面积。
[0169]
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:在第二球体结构投影方式下,基于当前位置和当前朝向,确定目标平面与球体结构的切点位置;以当前位置和球体结构的球心位置之间的连线为中心线,构建第二三维虚拟几何体,其中,第二三维虚拟几何体的侧面与球体结构相切;利用第二三维虚拟几何体确定球体结构在目标平面上得到的椭圆形投影;通过当前位置在目标平面上的投影位置、切点位置和椭圆形投影的第一顶点位置和第二顶点位置,计算椭圆形投影的半长轴长度与半短轴长度,其中,切点位置为椭圆形投影的焦点位置,第一顶点位置与第二顶点位置为椭圆形投影的长轴两端顶点位置;根据半长轴长度与半短轴长度计算投影面积。
[0170]
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:响应于第一三维虚拟几何体为立方体结构,基于立方体结构选取立方体结构投影方式。
[0171]
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:在立方体结构投影方式下,将立方体结构中每个面的顶点与面法线转换至观察空间,得到转换结果;基于转换结果、当前位置和当前朝向,确定至少一个可见面,其中,至少一个可见面为虚拟摄像机在观察空间下的可见面;利用至少一个可见面确定立方体结构在目标平面上得到的多边形投影;对多边形投影进行分割处理,得到多个子多边形;计算多个子多边形的面积之和,得到投影面积。
[0172]
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:计算投影结果对应的投影面积与目标平面的面积之间的占比关系;基于占比关系调整
渲染目标的显示尺寸。
[0173]
在上述实施例的计算机可读存储介质中,提供了一种实现调整渲染目标显示尺寸的方法的技术方案。通过获取虚拟摄像机在三维场景中的当前位置与当前朝向,确定三维场景中待渲染的目标三维虚拟区域,其中,目标三维虚拟区域是在虚拟摄像机的观察空间内可发生显示变化的三维感兴趣区域,采用基于当前位置和当前朝向,获取目标三维虚拟区域对应的第一三维虚拟几何体在目标平面的投影结果的方式,其中,目标平面是将虚拟摄像机的视椎体投影至屏幕空间得到的平面,进一步利用目标平面和投影结果,调整渲染目标(即,rt)的显示尺寸,达到了利用可发生显示变化的三维感兴趣区域灵活地调整渲染目标的显示尺寸的目的,从而实现了以较低消耗保证渲染结果的较高精度、平衡渲染效果和渲染性能的技术效果,进而解决了由于采用固定尺寸的渲染目标进行渲染导致难以兼顾渲染效果和渲染性能的技术问题。
[0174]
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本技术实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个计算机可读存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本技术实施方式的方法。
[0175]
在本技术的示例性实施例中,计算机可读存储介质上存储有能够实现本实施例上述方法的程序产品。在一些可能的实施方式中,本技术实施例的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本实施例上述“示例性方法”部分中描述的根据本技术各种示例性实施方式的步骤。
[0176]
根据本技术的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本技术实施例的程序产品不限于此,在本技术实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0177]
上述程序产品可以采用一个或多个计算机可读介质的任意组合。该计算机可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列举)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0178]
需要说明的是,计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
[0179]
本技术的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
[0180]
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备
和上述处理器连接,该输入输出设备和上述处理器连接。
[0181]
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
[0182]
s1,获取虚拟摄像机在三维场景中的当前位置与当前朝向;
[0183]
s2,确定三维场景中待渲染的目标三维虚拟区域,其中,目标三维虚拟区域是在虚拟摄像机的观察空间内可发生显示变化的三维感兴趣区域;
[0184]
s3,基于当前位置和当前朝向,获取目标三维虚拟区域对应的第一三维虚拟几何体在目标平面的投影结果,其中,目标平面是将虚拟摄像机的视椎体投影至屏幕空间得到的平面;
[0185]
s4,利用目标平面和投影结果,调整渲染目标的显示尺寸。
[0186]
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:选取第一三维虚拟几何体对应的目标投影方式,其中,第一三维虚拟几何体用于描述目标三维虚拟区域的包围盒形态;在目标投影方式下,基于当前位置和当前朝向,获取第一三维虚拟几何体在目标平面的投影面积,其中,目标平面垂直于当前朝向。
[0187]
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:响应于第一三维虚拟几何体为球体结构,基于球体结构与第一屏幕显示精度选取第一球体结构投影方式,以及基于球体结构与第二屏幕显示精度选取第二球体结构投影方式,其中,第一屏幕显示精度低于第二屏幕显示精度。
[0188]
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:在第一球体结构投影方式下,基于当前朝向调整球体结构的球心位置,直至球心位置位于当前朝向所在的直线上;以当前位置和球心位置之间的连线为中心线,构建第二三维虚拟几何体,其中,第二三维虚拟几何体的侧面与球体结构相切;利用第二三维虚拟几何体确定球体结构在目标平面上得到的圆形投影;通过当前位置、球心位置和圆形投影的圆心位置,计算圆形投影的投影半径;根据投影半径计算投影面积。
[0189]
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:在第二球体结构投影方式下,基于当前位置和当前朝向,确定目标平面与球体结构的切点位置;以当前位置和球体结构的球心位置之间的连线为中心线,构建第二三维虚拟几何体,其中,第二三维虚拟几何体的侧面与球体结构相切;利用第二三维虚拟几何体确定球体结构在目标平面上得到的椭圆形投影;通过当前位置在目标平面上的投影位置、切点位置和椭圆形投影的第一顶点位置和第二顶点位置,计算椭圆形投影的半长轴长度与半短轴长度,其中,切点位置为椭圆形投影的焦点位置,第一顶点位置与第二顶点位置为椭圆形投影的长轴两端顶点位置;根据半长轴长度与半短轴长度计算投影面积。
[0190]
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:响应于第一三维虚拟几何体为立方体结构,基于立方体结构选取立方体结构投影方式。
[0191]
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:在立方体结构投影方式下,将立方体结构中每个面的顶点与面法线转换至观察空间,得到转换结果;基于转换结果、当前位置和当前朝向,确定至少一个可见面,其中,至少一个可见面为虚拟摄像机在观察空间下的可见面;利用至少一个可见面确定立方体结构在目标平面上得到的多边形投影;对多边形投影进行分割处理,得到多个子多边形;计算多个子多边形的面积之和,得到投影面积。
[0192]
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:计算投影结果对应的投影面积与目标平面的面积之间的占比关系;基于占比关系调整渲染目标的显示尺寸。
[0193]
在上述实施例的电子装置中,提供了一种实现调整渲染目标显示尺寸的方法的技术方案。通过获取虚拟摄像机在三维场景中的当前位置与当前朝向,确定三维场景中待渲染的目标三维虚拟区域,其中,目标三维虚拟区域是在虚拟摄像机的观察空间内可发生显示变化的三维感兴趣区域,采用基于当前位置和当前朝向,获取目标三维虚拟区域对应的第一三维虚拟几何体在目标平面的投影结果的方式,其中,目标平面是将虚拟摄像机的视椎体投影至屏幕空间得到的平面,进一步利用目标平面和投影结果,调整渲染目标(即,rt)的显示尺寸,达到了利用可发生显示变化的三维感兴趣区域灵活地调整渲染目标的显示尺寸的目的,从而实现了以较低消耗保证渲染结果的较高精度、平衡渲染效果和渲染性能的技术效果,进而解决了由于采用固定尺寸的渲染目标进行渲染导致难以兼顾渲染效果和渲染性能的技术问题。
[0194]
图10是根据本技术其中一实施例的一种电子装置的示意图。如图10所示,电子装置1000仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
[0195]
如图10所示,电子装置1000以通用计算设备的形式表现。电子装置1000的组件可以包括但不限于:上述至少一个处理器1010、上述至少一个存储器1020、连接不同系统组件(包括存储器1020和处理器1010)的总线1030和显示器1040。
[0196]
其中,上述存储器1020存储有程序代码,所述程序代码可以被处理器1010执行,使得处理器1010执行本技术实施例的上述方法部分中描述的根据本技术各种示例性实施方式的步骤。
[0197]
存储器1020可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)10201和/或高速缓存存储单元10202,还可以进一步包括只读存储单元(rom)10203,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。
[0198]
在一些实例中,存储器1020还可以包括具有一组(至少一个)程序模块10205的程序/实用工具10204,这样的程序模块10205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。存储器1020可进一步包括相对于处理器1010远程设置的存储器,这些远程存储器可以通过网络连接至电子装置1000。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0199]
总线1030可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理器1010或者使用多种总线结构中的任意总线结构的局域总线。
[0200]
显示器1040可以例如触摸屏式的液晶显示器(liquid crystal display,lcd),该液晶显示器可使得用户能够与电子装置1000的用户界面进行交互。
[0201]
可选地,电子装置1000也可以与一个或多个外部设备1100(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子装置1000交互的设备通信,和/或与使得该电子装置1000能与一个或多个其它计算设备进行通信的任何设备(例如路
由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口1050进行。并且,电子装置1000还可以通过网络适配器1060与一个或者多个网络(例如局域网(local area network,lan),广域网(wide area network,wan)和/或公共网络,例如因特网)通信。如图10所示,网络适配器1060通过总线1030与电子装置1000的其它模块通信。应当明白,尽管图10中未示出,可以结合电子装置1000使用其它硬件和/或软件模块,可以包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(redundant arrays of independent disks,raid)系统、磁带驱动器以及数据备份存储系统等。
[0202]
上述电子装置1000还可以包括:键盘、光标控制设备(如鼠标)、输入/输出接口(i/o接口)、网络接口、电源和/或相机。
[0203]
本领域普通技术人员可以理解,图10所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子装置1000还可包括比图10中所示更多或者更少的组件,或者具有与图10所示不同的配置。存储器1020可用于存储计算机程序及对应的数据,如本技术实施例中的调整渲染目标显示尺寸的方法对应的计算机程序及对应的数据。处理器1010通过运行存储在存储器1020内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的调整渲染目标显示尺寸的方法。
[0204]
上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
[0205]
在本技术的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0206]
在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0207]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0208]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0209]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom)、随机存取存储器(ram)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0210]
以上所述仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应
视为本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1