CN111080798A - 虚拟场景的可见性数据处理方法及虚拟场景的渲染方法 - Google Patents
虚拟场景的可见性数据处理方法及虚拟场景的渲染方法 Download PDFInfo
- Publication number
- CN111080798A CN111080798A CN201911215509.7A CN201911215509A CN111080798A CN 111080798 A CN111080798 A CN 111080798A CN 201911215509 A CN201911215509 A CN 201911215509A CN 111080798 A CN111080798 A CN 111080798A
- Authority
- CN
- China
- Prior art keywords
- visibility
- rendering
- shadow
- target model
- model
- 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
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 149
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000003672 processing method Methods 0.000 title claims description 17
- 230000000694 effects Effects 0.000 claims abstract description 6
- 238000005070 sampling Methods 0.000 claims description 51
- 238000005286 illumination Methods 0.000 claims description 30
- 239000013598 vector Substances 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 6
- 238000010276 construction Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 7
- DMSMPAJRVJJAGA-UHFFFAOYSA-N benzo[d]isothiazol-3-one Chemical compound C1=CC=C2C(=O)NSC2=C1 DMSMPAJRVJJAGA-UHFFFAOYSA-N 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 6
- 238000004088 simulation Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000012952 Resampling Methods 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/60—Shadow generation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供了一种虚拟场景的可见性数据处理方法及虚拟场景的渲染方法,属于图像处理技术领域,方法包括:将虚拟场景中虚拟相机的活动空间划分为多个空间单元格;针对每个空间单元格,构建空间单元格渲染范围内目标模型的投影点到空间单元格的模拟光线;根据渲染范围内的所有遮挡模型信息,判断模拟光线是否被遮挡;基于模拟光线是否被遮挡,确定目标模型的阴影相对空间单元格内的虚拟相机是否可见。本申请可以针对每个空间单元格,获得该空间单元格渲染范围内每个目标模型的阴影的可见性数据,由此在虚拟场景的渲染过程中,可以基于阴影的可见性进行阴影渲染,提高虚拟场景的真实性,克服远处漏光近处影子闪现的问题。
Description
技术领域
本申请涉及图像处理技术领域,特别涉及一种虚拟场景的可见性数据处理方法及装置、虚拟场景的渲染方法及装置、电子设备、存储介质。
背景技术
遮挡剔除是当一个物体被其他物体遮挡住而不在摄像机的可视范围内时不对其进行渲染。故一个物体是否被遮挡住(也就是是否可见)决定了是否对其进行渲染。一个可见物体的渲染需要用到多个渲染路径,包括Depth Pre-Pass(深度信息预绘制通道),Forward Pass(前向渲染通道),Shadow Caster Pass(阴影渲染通道),一个模型就需要3次绘制调用。
目前,遮挡剔除预计算系统多半只计算了模型(即虚拟场景中的虚拟物体)本身的可见性,对于模型阴影的可见性,只是简单让模型阴影的可见性与模型的可见性相同,并没有具体处理模型阴影可见性的问题。
由于缺乏正确的阴影可见性数据,故在遮挡剔除过程中,例如模型不可见,而阴影可见的情况就会被忽视,场景显示出现异常。
发明内容
本申请实施例提供了虚拟场景的可见性数据处理方法,用以计算阴影可见性数据,从而改善场景显示效果。
一方面,本申请提供了一种虚拟场景的可见性数据处理方法,包括:
将虚拟场景中虚拟相机的活动空间划分为多个空间单元格;
针对每个所述空间单元格,构建所述空间单元格渲染范围内目标模型的投影点到所述空间单元格的模拟光线;
根据所述渲染范围内的所有遮挡模型信息,判断所述模拟光线是否被遮挡;
基于所述模拟光线是否被遮挡,确定所述目标模型的阴影相对所述空间单元格内的虚拟相机是否可见。
在一实施例中,在针对每个所述空间单元格,构建所述空间单元格渲染范围内目标模型的投影点到所述空间单元格的模拟光线之前,所述方法还包括:
根据所述虚拟场景内的光照方向,在所述目标模型的指定面随机获取第一采样点;其中,所述指定面的面法线方向与所述光照方向相似;
从所述第一采样点出发按照所述光照方向构建投影光线;
根据所述渲染范围内的所有遮挡模型信息以及所述投影光线,确定所述第一采样点对应的投影点。
在一实施例中,所述根据所述渲染范围内的所有遮挡模型信息以及所述投影光线,确定所述第一采样点对应的投影点,包括:
根据所述渲染范围内的所有遮挡模型信息以及所述投影光线,判断所述投影光线是否被遮挡;
如果所述投影光线被遮挡,根据所述投影光线与遮挡模型的交汇点,获得所述第一采样点的投影点。
在一实施例中,在所述根据所述投影光线与遮挡模型的交汇点,获得所述第一采样点的投影点之后,所述方法还包括:
构建所述投影点到所述空间单元格中心点的方向向量;
计算所述方向向量与所述投影点法向量的点积,如果所述点积小于零,在所述目标模型的指定面重新进行采样点的获取。
在一实施例中,所述针对每个所述空间单元格,构建所述空间单元格渲染范围内目标模型的投影点到所述空间单元格的模拟光线,包括:
针对每个所述空间单元格,在所述空间单元格的目标面随机获取第二采样点;其中,所述目标面的面法线方向与所述投影点到所述空间单元格中心点的方向相似;
构建从所述投影点到所述第二采样点的模拟光线。
在一实施例中,所述基于所述模拟光线是否被遮挡,确定所述目标模型的阴影相对所述空间单元格内的虚拟相机是否可见,包括:
如果所述模拟光线没有被遮挡,确定所述目标模型的阴影相对所述空间单元格内的虚拟相机可见。
在一实施例中,所述基于所述模拟光线是否被遮挡,确定所述目标模型的阴影相对所述空间单元格内的虚拟相机是否可见,包括:
如果所述模拟光线被遮挡,迭代多次进行模拟光线的构建,探测所述目标模型的阴影可见性,直到迭代次数达到指定数值。
在一实施例中,在所述迭代多次进行模拟光线的构建,探测所述目标模型的阴影可见性,直到迭代次数达到指定数值之前,所述方法还包括:
将所述目标模型指定面的采样点个数与所述空间单元格目标面的采样点个数相乘,得到所述指定数值。
在一实施例中,在所述针对每个所述空间单元格,构建所述空间单元格渲染范围内目标模型的投影点到所述空间单元格的模拟光线之前,所述方法还包括:
针对每个所述空间单元格,判断所述空间单元格渲染范围内的目标模型相对所述空间单元格内的虚拟相机是否可见;
如果所述目标模型不可见,根据所述虚拟场景内的光照方向,判断所述目标模型能否接收到光照;
如果所述目标模型接收到光照,确定所述目标模型的投影点。
在一实施例中,在所述基于所述模拟光线是否被遮挡,确定所述目标模型的阴影相对所述空间单元格内的虚拟相机是否可见之后,所述方法还包括:
基于所述目标模型的可见性和所述阴影的可见性,创建所述目标模型相对所述空间单元格的充分可见性数据和附加可见性数据。
另一方面,本申请还提供了一种虚拟场景的渲染方法,包括:
根据虚拟场景中虚拟相机当前所处空间单元格,加载所述空间单元格对应的可见性数据;
基于所述可见性数据,确定所述空间单元格渲染范围内每个目标模型的可见性和对应阴影的可见性;
根据每个目标模型的可见性和对应阴影的可见性,在虚拟场景的渲染过程中剔除不可见对象的渲染路径。
在一实施例中,所述可见性数据包括充分可见性数据;所述基于所述可见性数据,确定所述空间单元格渲染范围内每个目标模型的可见性和对应阴影的可见性,包括:
基于所述充分可见性数据,获得所述空间单元格渲染范围内模型或阴影任一可见的渲染对象;
所述根据每个目标模型的可见性和对应阴影的可见性,在虚拟场景的渲染过程中剔除不可见对象的渲染路径,包括:
对所述渲染对象进行模型和阴影的多路径渲染。
在一实施例中,所述可见性数据包括充分可见性数据和附加可见性数据;所述基于所述可见性数据,确定所述空间单元格渲染范围内每个目标模型的可见性和对应阴影的可见性,包括:
基于所述充分可见性数据和附加可见性数据,确定所述空间单元格渲染范围内每个目标模型的可见性和对应阴影的可见性;
所述根据每个目标模型的可见性和对应阴影的可见性,在渲染过程中剔除不可见对象的渲染路径,包括:
针对每个目标模型,如果所述目标模型不可见,但所述目标模型对应的阴影可见,进行模型渲染路径的剔除,保留阴影渲染路径。
另一方面,本申请还提供了一种虚拟场景的可见性数据处理装置,包括:
空间分割模块,用于将虚拟场景中虚拟相机的活动空间划分为多个空间单元格;
光线构建模块,用于针对每个所述空间单元格,构建所述空间单元格渲染范围内目标模型的投影点到所述空间单元格的模拟光线;
遮挡判断模块,用于根据所述渲染范围内的所有遮挡模型信息,判断所述模拟光线是否被遮挡;
可见性判定模块,用于基于所述模拟光线是否被遮挡,确定所述目标模型的阴影相对所述空间单元格内的虚拟相机是否可见。
另一方面,本申请还提供了一种虚拟场景的渲染装置,包括:
数据加载模块,用于根据虚拟场景中虚拟相机当前所处空间单元格,加载所述空间单元格对应的可见性数据;
可见性确定模块,用于基于所述可见性数据,确定所述空间单元格渲染范围内每个目标模型的可见性和对应阴影的可见性;
场景渲染模块,用于根据每个目标模型的可见性和对应阴影的可见性,在虚拟场景的渲染过程中剔除不可见对象的渲染路径。
此外,本申请还提供了一种电子设备,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述虚拟场景的可见性数据处理方法。
进一步的,本申请还提供了一种电子设备,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述虚拟场景的渲染方法。
本申请还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述虚拟场景的可见性数据处理方法。
本申请还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述虚拟场景的渲染方法。
本申请上述提供的技术方案,可以针对每个空间单元格,获得该空间单元格渲染范围内每个目标模型的阴影的可见性数据,由此在虚拟场景的渲染过程中,可以基于阴影的可见性进行阴影渲染,即使目标模型不可见,也可基于阴影的可见性,单独进行阴影的渲染,提高虚拟场景的真实性,克服远处漏光近处影子闪现的问题。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍。
图1是本申请所提供技术方案的应用场景示意图;
图2是本申请实施例提供的一种虚拟场景的可见性数据处理方法的流程示意图;
图3是在图2对应实施例的基础上本申请另一实施例提供的一种虚拟场景的可见性数据处理方法的流程示意图;
图4是本申请实施例示出的判断模型相对空间单元格是否可见的原理示意图;
图5是本申请实施例示出的投影点的确定流程示意图;
图6是本申请实施例示出的构建投影光线的原理示意图;
图7是本申请实施例示出的去除不可见投影点的原理示意图;
图8是在图2对应实施例中步骤220的细节流程图;
图9是本申请实施例示出的构建模拟光线的原理示意图;
图10是本申请提供的一种虚拟场景的渲染方法的流程示意图;
图11是本申请一实施例示出的虚拟场景的可见性数据处理装置的框图;
图12是本申请一实施例示出的虚拟场景的渲染装置的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
图1是本申请所提供技术方案的应用场景示意图。如图1所示,该应用场景包括通过无线网络连接的客户端110和服务端120。客户端110可以是运行应用程序的个人电脑(personal computer,PC)、平板电脑、智能手机、个人数字助理(personal digitalassistant,PDA)等。服务端120可以是服务器、服务器集群或者云计算中心。服务端120可以采用本申请提供的虚拟场景的可见性数据处理方法,计算虚拟场景中模型阴影的可见性。服务端120可以将可见性数据发送到客户端110,进而客户端110可以采用本申请提供的虚拟场景的渲染方法,根据可见性数据进行虚拟场景的渲染。
本申请还提供了一种电子设备。该电子设备可以是图1所示的客户端110或服务端120。如图1所示,客户端110可以包括第一处理器111;用于存储处理器可执行指令的第一存储器112;其中,该第一处理器111被配置为执行本申请提供的虚拟场景的渲染方法。服务端120可以包括第二处理器121;用于存储处理器可执行指令的第二存储器122;其中,第二处理器121被配置为执行本申请提供的虚拟场景的可见性数据处理方法。
存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Red-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
本申请还提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序可由处理器执行以完成本申请提供的虚拟场景的可见性数据处理方法或者执行本申请提供的虚拟场景的渲染方法。
图2是本申请实施例提供的一种虚拟场景的可见性数据处理方法的流程示意图。该方法可以由服务端执行,如图2所示,该方法可以包括以下步骤210-240。
在步骤210中,将虚拟场景中虚拟相机的活动空间划分为多个空间单元格。
虚拟场景可以为构建的虚拟环境,比如,可以为游戏中的虚拟环境。虚拟场景可以是二维或三维场景。虚拟场景中可以包括多个虚拟模型。虚拟模型可以包括游戏中的建筑物、树木、天空、地面等,还可以包括游戏道具、虚拟人物等。
虚拟相机是指虚拟场景中构建的摄像机,具有相应的摄像参数(例如视场角、焦距等),从而形成相应的拍摄范围。随着虚拟相机位置的改变,拍摄区域随之改变。在一实施例中,虚拟相机可以跟随虚拟场景中虚拟人物的移动调整所处位置。虚拟相机在虚拟场景中可以进行显示也可以不显示。
活动空间是指虚拟相机在跟随移动过程中可能的移动区域。将活动空间划分为多个空间单元格,空间单元格的大小一般可以为10米*10米,每个空间单元格的大小可以按照虚拟场景的大小进行调整。
在步骤220中,针对每个所述空间单元格,构建所述空间单元格渲染范围内目标模型的投影点到所述空间单元格的模拟光线。
由于整个虚拟场景的范围很大,而图形处理器的资源有限,所以需要控制虚拟相机的拍摄范围,远处的模型由于拍摄不到,故可以不进行可见性数据的处理,可以仅对拍摄范围的阴影可见性数据进行处理。空间单元格渲染范围是指虚拟相机位于该空间单元格时的拍摄范围。
目标模型是指渲染范围内的人物、建筑、花草、道具等虚拟物体。对于一个空间单元格而言,其渲染范围内可以存在多个目标模型,故可以针对每个空间单元格,判断其渲染范围内每个目标模型的阴影相对该空间单元内虚拟相机的可见性。
投影点可以认为是目标模型的阴影的其中一点。模拟光线用于模拟空间单元格内虚拟相机到投影点的光线,可以是投影点到空间单元格中心点之间的连线。投影点的数量可以是多个,故模拟光线的数量可以是多条。
在步骤230中,根据所述渲染范围内的所有遮挡模型信息,判断所述模拟光线是否被遮挡。
为了判断某个目标模型的阴影相对某个空间单元内的虚拟相机的可见性,渲染范围内的所有遮挡模型信息可以是指空间单元格渲染范围内除该目标模型外,所有其他模型的空间信息。举例来说,针对空间单元格cell0和目标模型M0,在构建M0的投影点到cell0的模拟光线后,可以根据渲染范围内其他模型M1,M2……的位置坐标,判断模拟光线是否被遮挡。模拟光线可以用于M0到cell0的向量a表示,通过计算向量a与M1,M2……是否存在交点,确定模拟光线是否被遮挡。如果存在交点,则认为从投影点到空间单元格的模拟光线被遮挡,否则,认为没有被遮挡。
在步骤240中,基于所述模拟光线是否被遮挡,确定所述目标模型的阴影相对所述空间单元格内的虚拟相机是否可见。
由于目标模拟可以存在多个投影点,故可以存在多条模拟光线。在一实施例中,如果至少一条模拟光线没有被遮挡,可以认为目标模型的阴影相对空间单元格内的虚拟相机是可见的。也就是说,当虚拟相机移动到该空间单元格时,需要对目标模型的阴影进行渲染。
在一实施例中,如果迭代多次构建了多条模拟光线后,发现所有模拟光线均被遮挡,可以认为目标模型的阴影相对空间单元格内的虚拟相机是不可见的。也就是说,当虚拟相机移动到该空间单元格时,可以不对目标模型的阴影进行渲染。
现有的预计算遮挡剔除,仅仅只计算模型可见性,也只存储了模型可见性数据,缺乏阴影可见性数据。由此在遮挡剔除过程中优化不彻底,渲染过程中会出现远处漏光、近处影子闪现的问题。优化不彻底包括缺乏可以只画模型投影,不画模型本身以及模型深度的情况,还包括缺乏可以只画模型本身还有深度,不用画模型投影的情况。漏光的问题是因为没有阴影可见性数据,仅凭模型可见性数据做剔除出现的远处不可见模型没有绘制阴影导致的漏光;近处影子闪现也是同理,被物体遮挡的空间单元格,对遮挡体附近的物体不可见,物体没有绘制阴影,当摄像机稍微偏移出这个空间单元格,附近的物体变为可见,这样地面的影子就会突然闪现出来。
基于上述步骤,可以针对每个空间单元格,获得该空间单元格渲染范围内每个目标模型的阴影的可见性数据,由此在虚拟场景的渲染过程中,可以基于阴影的可见性进行阴影渲染,即使目标模型不可见,也可基于阴影的可见性,单独进行阴影的渲染,提高虚拟场景的真实性,克服远处漏光近处影子闪现的问题。
在一实施例中,在上述步骤220之前,如图3所示,本申请还包括以下步骤201-203。
在步骤201中,针对每个所述空间单元格,判断所述空间单元格渲染范围内的目标模型相对所述空间单元格内的虚拟相机是否可见。
假设其中一个空间单元格为cell0,其包围盒为BBcell0,cell0渲染范围内的其中一个目标模型为M0,其包围盒为BBmin0。如图4中(A)所示,场景中左侧方柱为cell0,中间墙体为遮挡体,右侧方柱为M0。如图4中(B)所示,可以通过构建M0表面所有采样点到cell0表面所有采样点的射线(图中只显示一条射线用于示意),只要有一条射线没有被遮挡,即判定M0相对cell0可见,如果所有射线均被遮挡,则判定M0相对cell0不可见。如果M0相对cell0可见,则存在阴影可见与不可见两种情况。由于在某些工程实施案例中“模型可见,阴影不可见”的情况极少见,甚至不存在,即只有极少或者不存在的情况是模型完全处于阴影之下(即模型的阴影不可见),但同时模型对某个cell可见的情况。多数或者所有模型都能接收到光照,而且这些模型还要接收来自此模型本身自投影的自阴影(即模型的阴影可能投射在自己身上)。故在一实施例中,如果M0相对cell0可见,即可认为M0的阴影相对cell0可见。这么处理可以确保即使出现极端情况,有个模型完全处于阴影之中接收不到光照且对某个cell可见,本申请通过直接处理成阴影也可见,从而在运行时正常绘制一次阴影,数据也是正确的,不会出视觉问题。
对于每个空间单元格,可以分配两个BityArray(比特数组)。第一个BityArray用于存储每个目标模型的充分可见性数据,里面的每个bit(比特)表示一个目标模型的阴影及模型的可见性结果,充分可见性数据为1,代表模型和阴影至少一种可见;充分可见性数据为0,代表模型和阴影均不可见。第二个BityArray用于存储每个目标模型的附加可见性数据,附加可见性数据为1,代表模型和阴影的可见性互斥(即一个可见另一个不可见),附加可见性数据为0,代表模型和阴影的可见性相同(即均可见或均不可见)。故M0相对cell0可见,阴影相对cell0可见,可以用1,0来表示。M0相对cell0不可见,阴影相对cell0可见,可以用1,1来表示。M0相对cell0不可见,阴影相对cell0不可见,可以用0,0来表示。
故基于目标模型的可见性和对应阴影的可见性,可以创建目标模型相对空间单元格的充分可见性数据和附加可见性数据,如下表1所示。
表1可见性状态增量状态组合表
在其他一实施例中,如果场景中存在较多模型完全处于阴影之中接收不到光照的情况,比如存在洞穴中或者悬崖下空间中的物体模型,则在M0相对cell0可见时,可以继续判断M0能否接收到光照,如果接收不到,可认为M0处于其他遮挡物体的阴影中,故阴影不可见。此时,一个BityArray可以用来存储模型可见性数据,另一个BityArray可以用来存储阴影可见性数据。由此,如下表2所示,可以有以下四种不同的组合,1代表可见,0代表不可见。
表2可见性状态映射表
在步骤202中,如果所述目标模型不可见,根据所述虚拟场景内的光照方向,判断所述目标模型能否接收到光照。
其中,光照方向可以认为是已知量,判断目标模型能否接收到光照可以通过:在目标模型表面的所有采样点,按照光照方向的反方向发射射线,射线探测距离设置无限远极值,如果所有射线均被遮挡,即判定目标模型完全接收不到光照。如果目标模型不可见,且接收不到光照,则可以认为目标模型和及其阴影均不可见。
在步骤203中,如果所述目标模型接收到光照,确定所述目标模型的投影点。
其中,如图5所示,目标模型的投影点可以通过以下步骤204-206确定。
在步骤204中,根据所述虚拟场景内的光照方向,在所述目标模型的指定面随机获取第一采样点;其中,所述指定面的面法线方向与所述光照方向相似。
指定面可以是矩形面,对于目标模型M0和空间单元格cell0举例来说,可以从面法线方向与光照方向相似的M0矩形面上,随机获取采样点。为进行区分,此处称为第一采样点。
在步骤205中,从所述第一采样点出发按照所述光照方向构建投影光线。
如图6所示,按照光照方向,可以从第一采样点出发,发射不定长射线R0,该射线可以称为投影光线。
在步骤206中,根据所述渲染范围内的所有遮挡模型信息以及所述投影光线,确定所述第一采样点对应的投影点。
遮挡模型是指渲染范围内除目标模型外的其他模型,遮挡模型信息可以是遮挡模型的位置坐标信息。在一实施例中,可以根据渲染范围内的所有遮挡模型信息以及投影光线,判断投影光线是否被遮挡;如果投影光线被遮挡,根据投影光线与遮挡模型的交汇点,获得第一采样点的投影点。
举例来说,可以通过计算目标模型的投影光线和渲染范围内其他模型是否存在交汇点,如果没有交点,可以认为投影光线没有碰到任何场景模型,从而不存在投影点,返回步骤204重新在指定面随机获取采样点。如果有交汇点,投影光线与渲染范围中其他模型的交汇点可以认为是投影点。
在一实施例中,在根据投影光线与遮挡模型的交汇点,获得所述第一采样点的投影点之后,本申请提供的方法还包括:构建所述投影点到所述空间单元格中心点的方向向量;计算所述方向向量与所述投影点法向量的点积,如果所述点积小于零,在所述目标模型的指定面重新进行采样点的获取。
举例来说,投影光线可以用R0表示,投影点用S0表示,投影点的法向量可以用N0表示。投影点法向量是指从投影点出发垂直投影点所在平面的向量。连接S0到空间单元格的中心点C0,计算向量S0C0与N0的点积dotS,如果dotS<0,表示方向向量S0C0与法向量N0之间的夹角大于90°,由此可以认为投影点相对空间单元格是不可见的,相应的模拟光线也是不可见的,故为了加速后续步骤的计算,使流程结果更加准确,可以丢弃此投影点,重新在目标模型的指定面随机获取采样点,构建投影光线,确定投影点,寻找dotS>=0投影点。如果找到dotS>=0的投影点,则构建投影点到空间单元格的模拟光线。
如图7中(A)所示,M0表面顺着光照方向提供一条射线打在地表阴影上一点,投影点在拱形一边的斜面。此斜面相对cell0不可见,此时投影点S0上满足dotS<0,故可以丢弃此投影点。如图7中(B)所示,M0表面顺着光照方向提供了另一条射线,打在地表阴影上一点,投影点在拱形另一边的斜面。此斜面相对cell0可见,此时投影点的方向向量和法向量的点积dotS>=0,对于这样的投影点需保留,用以构建模拟光线。
通过上述过程,可以在构建模拟光线之前,提前去除一些投影点落在模型背面,相对空间单元格不可见的投影点,从而减少后续的计算量。
通过上述步骤确定投影点后,可以构建投影点到空间单元格的模拟光线。在一实施例中,如图8所示,步骤220构建模拟光线可以包括以下步骤221-222。
在步骤221中,针对每个所述空间单元格,在所述空间单元格的目标面随机获取第二采样点;其中,所述目标面的面法线方向与所述投影点到所述空间单元格中心点的方向相似。
方向相似是指目标面的面法线方向与投影点到空间单元格中心点的方向大致相同。连接投影点S0到空间单元格中心点C0,得到方向向量S0C0,如果投影点的方向向量和法向量的点积dotS>=0,可以从面法线方向与方向向量S0C0相似的空间单元格cell0的矩形面上随机获取采样点F0。为进行区分,该采样点可以称为第二采样点。第一采样点和第二采样点使用了重要性采样,依据包围盒面法线方向与指定向量方向相似度来决定从包围盒哪些面上生成出随机采样点,就是说,相似度更高的面法线代表的面会生成出更多的随机采样点,这样的好处就是在指定法线相对的横截面上生成的点分布均匀,计算过程中能稳定快速收敛。
在步骤222中,构建从所述投影点到所述第二采样点的模拟光线。
模拟光线是指从投影点到空间单元格上采样点的射线。例如,从S0到F0的射线R1,可以称为模拟光线。基于渲染范围内的所有遮挡模型信息,如果R1没有碰到任何遮挡模型,表示模型M0的阴影相对空间单元格cell0是可见的。具体模拟光线是否被遮挡,可以通过计算模拟光线与其他场景模型是否存在交点,如果没有交点,则认为没有被遮挡。相反的,有交点,则认为模拟光线被遮挡。在一实施例中,只要存在一条模拟光线没有被遮挡,即可以认为模型M0的阴影相对空间单元格cell0内的虚拟相机可见。在一实施例中,如果发现射线R1有碰到遮挡模型,说明此次迭代结果表示模型M0对应的阴影相对空间单元格cell0内的虚拟相机不可见。故可以返回步骤204重新进行采样,确定新的投影点和模拟光线,判断新的模拟光线是否被遮挡,以探测目标模型的阴影是否可见。
如图9中(A)所示,构建了投影点到cell0的模拟光线,但是这条模拟光线被中间的墙体遮挡。如图9中(B)所示,重新在模型M0的包围盒上采样,构建了另一条投影光线,确定了新的投影点。如图9中(C)所示,构建了新的投影点到cell0的模拟光线,这条模拟光线没有被中间的墙体遮挡,故可以认为模型M0的阴影相对cell0是可见的。
在一实施例中,如果迭代次数达到K次后,模型M0的阴影相对cell0仍不可见,则可以判定模型M0对应的阴影相对cell0不可见,结束迭代。其中,最大迭代次数K可以提前根据模型M0的采样点个数和cell0的采样点个数相乘得到。即K=sampM*sampC。
sampM代表M0采样点个数,sampC代表cell0采样点个数。sampM=Sarea0*sampUnit*Rproj。Sarea0代表M0的包围盒BBmin0最大横截面积,sampUnit表示单位面积采样点个数,举例来说,机器配置高CPU(中央处理器)核心数多,则一平方米约定采样点个数sampUnit=16,那样计算结果精度会很高,如果机器配置普通,设置sampUnit=4,计算结果会很快,精度也可以接受。Rproj代表Sarea0在以BBcell0中心点为摄像机投影点的视域上的投影面积比率。sampC同理可以计算得到。
其中,投影面积比例Rproj可以采用以下方式计算得到:设BBmin0最长对角线的长度为meshExtendLength,设摄像机视场角为fovAngleCamera=60°;(1)计算cell0处观察BBmin0视角张角正切值tanMeshExtend=meshExtendLength/d0,d0表示BBcell0跟BBmin0中心点之间的距离;(2)反三角函数计算视角张角大小并转成角度值fovRadianMeshExtend=atan(tanMeshExtend)*(180/π);(3)计算Rproj=(fovRadianMeshExtend/fovAngleCamera)*(fovRadianMeshExtend/fovAngleCamera)。
通过上述过程,可以针对每个空间单元格,确定该空间单元格渲染范围内每个目标模型的可见性以及对应阴影的可见性。根据需要,可以如上表1所示,以充分可见性数据和附加可见性数据的形式进行模型可见性和阴影可见性状态的存储。
进一步的,可以按照实际游戏测试过的最佳的流加载分块大小tileSize,对所有的空间单元格cell对应的数据按tileSize大小进行分块,一个分块里面所有cell的充分可见性数据BitArray1打包放在一起,然后对其压缩序列化为一个加载单元。附加可见性数据BitArray2按同理打包再压缩序列化为另一个加载单元。通过这样的存储方式,附加可见性数据相比充分可见性数据会非常小。因为附加可见性数据表达的状态是充分可见性数据里面的一种子状态条件,而且满足模型和阴影可见性互斥的情况很少,故附加可见性数据多数都是“0”,整体数据很稀疏,压缩后的数据量非常小。
在运行时,可以根据游戏包体容量大小,还有运行时数据传送的带宽速度决定是否使用附加可见性数据。如果设备性能有限,游戏包体容量紧张,就选择不加载附加可见性数据,仅使用充分可见性数据来剔除不可见对象的渲染路径,虽然有Forward Pass剔除不彻底,但也不会出现远处漏光,近处阴影闪现的问题。如果设备性能充足,包体容量能更大一些,那便可以根据充分可见性数据和附加可见性数据一并进行渲染。
图10是本申请提供的一种虚拟场景的渲染方法的流程示意图。如图10所示,该方法可以由客户端执行,该方法可以包括以下步骤1010-1030。
在步骤1010中,根据虚拟场景中虚拟相机当前所处空间单元格,加载所述空间单元格对应的可见性数据。
在一实施例中,可见性数据可以是上文表1所示的充分可见性数据和附加可见性数据。在另一实施例中,可见性数据可以是上文表2所示的模型可见性数据和阴影可见性数据。基于设备性能和带宽速度,可见性数据也可以仅是充分可见性数据。
虚拟相机可以跟随虚拟场景中虚拟人物的移动而移动。客户端可以根据虚拟场景中虚拟相机当前所处空间单元格,从服务端获取该空间单元格对应的可见性数据。
在步骤1020中,基于所述可见性数据,确定所述空间单元格渲染范围内每个目标模型的可见性和对应阴影的可见性。
假设可见性数据是表1中的充分可见性数据,则“1”表示模型或阴影两者至少一种可见。“0”代表模型和阴影均不可见。从而根据充分性数据,可以确定空间单元格渲染范围内模型或阴影任一可见的渲染对象。渲染对象是指模型或阴影两者至少一种可见的场景中模型。对于这样的模型,可以采用Depth Pre-Pass,Forward Pass,Shadow Caster Pass进行模型和阴影的多渲染路径渲染。对于模型和阴影均不可见的场景中模型,则可以剔除所有渲染路径,即不进行渲染。
假设可见性数据包括表1中的充分可见性数据和附加可见性数据,则“1,0”可以代表模型可见,阴影也可见;“1,1”可以代表模型不可见,阴影可见;“0,0”可以代表模型不可见,阴影也不可见。由此,可以确定渲染范围内每个目标模型的可见性和对应阴影的可见性。
假设可见性数据是表2所示的模型可见性和阴影可见性数据,则从表中可以直接确定渲染范围内每个目标模型的可见性以及对应阴影的可见性。
在步骤1030中,根据每个目标模型的可见性和对应阴影的可见性,在虚拟场景的渲染过程中剔除不可见对象的渲染路径。
基于每个目标模型的可见性和对应阴影的可见性,针对每个目标模型,如果目标模型不可见,但目标模型对应的阴影可见,进行模型渲染路径(Depth Pre-Pass和ForwardPass)的剔除,保留阴影渲染路径(Shadow Caster Pass)。基于表2,如果模型可见,阴影不可见,则可以剔除阴影渲染路径(Shadow Caster Pass),保留模型渲染路径(Depth Pre-Pass和Forward Pass)。
现有技术遮挡剔除预计算系统,一个物体的bit位状态对应渲染的状态如下表3所示。
表3现有的UE4引擎的可见性状态表
模型可见性 | 结果 |
0 | 模型不可见,阴影也不可见 |
1 | 模型可见,阴影可见 |
从表3中可以看出,现有技术只能表达模型的可见性。每个物体对应一个bit位,1代表可见,0代表不可见。模型可见,则认为阴影也可见。模型不可见,则认为阴影也不可见。缺乏模型和阴影可见性状态不一样的情况,故可见性剔除力度不够。而本申请提供的技术方案,如果模型不可见,则Depth Pre-Pass和Forward Pass被剔除优化,如果阴影不可见,则Shadow Caster Pass被剔除优化,做到数据不浪费,渲染性能不浪费,还可以兼顾设备性能和包体容量来确定是否使用附加可见性数据,从而能够适配更多性能不一样的平台,能够在更多设备上运行。
下述为本申请装置实施例,可以用于执行本申请上述服务端执行的虚拟场景的可见性数据处理方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请虚拟场景的可见性数据处理方法实施例。
图11是本申请一实施例示出的虚拟场景的可见性数据处理装置的框图。如图11所示,该虚拟场景的可见性数据处理装置可以包括:空间分割模块1110、光线构建模块1120、遮挡判断模块1130可见性判定模块1140。
空间分割模块1110,用于将虚拟场景中虚拟相机的活动空间划分为多个空间单元格;
光线构建模块1120,用于针对每个所述空间单元格,构建所述空间单元格渲染范围内目标模型的投影点到所述空间单元格的模拟光线;
遮挡判断模块1130,用于根据所述渲染范围内的所有遮挡模型信息,判断所述模拟光线是否被遮挡;
可见性判定模块1140,用于基于所述模拟光线是否被遮挡,确定所述目标模型的阴影相对所述空间单元格内的虚拟相机是否可见。
上述装置中各个模块的功能和作用的实现过程具体详见上述虚拟场景的可见性数据处理方法中对应步骤的实现过程,在此不再赘述。
图12是本申请一实施例示出的虚拟场景的渲染装置的框图。如图12所示,该虚拟场景的渲染装置可以包括:数据加载模块1210、可见性确定模块1220以及场景渲染模块1230。
数据加载模块1210,用于根据虚拟场景中虚拟相机当前所处空间单元格,加载所述空间单元格对应的可见性数据;
可见性确定模块1220,用于基于所述可见性数据,确定所述空间单元格渲染范围内每个目标模型的可见性和对应阴影的可见性;
场景渲染模块1230,用于根据每个目标模型的可见性和对应阴影的可见性,在虚拟场景的渲染过程中剔除不可见对象的渲染路径。
上述装置中各个模块的功能和作用的实现过程具体详见上述虚拟场景的渲染方法中对应步骤的实现过程,在此不再赘述。
在本申请所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (19)
1.一种虚拟场景的可见性数据处理方法,其特征在于,包括:
将虚拟场景中虚拟相机的活动空间划分为多个空间单元格;
针对每个所述空间单元格,构建所述空间单元格渲染范围内目标模型的投影点到所述空间单元格的模拟光线;
根据所述渲染范围内的所有遮挡模型信息,判断所述模拟光线是否被遮挡;
基于所述模拟光线是否被遮挡,确定所述目标模型的阴影相对所述空间单元格内的虚拟相机是否可见。
2.根据权利要求1所述的方法,其特征在于,在针对每个所述空间单元格,构建所述空间单元格渲染范围内目标模型的投影点到所述空间单元格的模拟光线之前,所述方法还包括:
根据所述虚拟场景内的光照方向,在所述目标模型的指定面随机获取第一采样点;其中,所述指定面的面法线方向与所述光照方向相似;
从所述第一采样点出发按照所述光照方向构建投影光线;
根据所述渲染范围内的所有遮挡模型信息以及所述投影光线,确定所述第一采样点对应的投影点。
3.根据权利要求2所述的方法,其特征在于,所述根据所述渲染范围内的所有遮挡模型信息以及所述投影光线,确定所述第一采样点对应的投影点,包括:
根据所述渲染范围内的所有遮挡模型信息以及所述投影光线,判断所述投影光线是否被遮挡;
如果所述投影光线被遮挡,根据所述投影光线与遮挡模型的交汇点,获得所述第一采样点的投影点。
4.根据权利要求3所述的方法,其特征在于,在所述根据所述投影光线与遮挡模型的交汇点,获得所述第一采样点的投影点之后,所述方法还包括:
构建所述投影点到所述空间单元格中心点的方向向量;
计算所述方向向量与所述投影点法向量的点积,如果所述点积小于零,在所述目标模型的指定面重新进行采样点的获取。
5.根据权利要求1所述的方法,其特征在于,所述针对每个所述空间单元格,构建所述空间单元格渲染范围内目标模型的投影点到所述空间单元格的模拟光线,包括:
针对每个所述空间单元格,在所述空间单元格的目标面随机获取第二采样点;其中,所述目标面的面法线方向与所述投影点到所述空间单元格中心点的方向相似;
构建从所述投影点到所述第二采样点的模拟光线。
6.根据权利要求1所述的方法,其特征在于,所述基于所述模拟光线是否被遮挡,确定所述目标模型的阴影相对所述空间单元格内的虚拟相机是否可见,包括:
如果所述模拟光线没有被遮挡,确定所述目标模型的阴影相对所述空间单元格内的虚拟相机可见。
7.根据权利要求1所述的方法,其特征在于,所述基于所述模拟光线是否被遮挡,确定所述目标模型的阴影相对所述空间单元格内的虚拟相机是否可见,包括:
如果所述模拟光线被遮挡,迭代多次进行模拟光线的构建,探测所述目标模型的阴影可见性,直到迭代次数达到指定数值。
8.根据权利要求7所述的方法,其特征在于,在所述迭代多次进行模拟光线的构建,探测所述目标模型的阴影可见性,直到迭代次数达到指定数值之前,所述方法还包括:
将所述目标模型指定面的采样点个数与所述空间单元格目标面的采样点个数相乘,得到所述指定数值。
9.根据权利要求1所述的方法,其特征在于,在所述针对每个所述空间单元格,构建所述空间单元格渲染范围内目标模型的投影点到所述空间单元格的模拟光线之前,所述方法还包括:
针对每个所述空间单元格,判断所述空间单元格渲染范围内的目标模型相对所述空间单元格内的虚拟相机是否可见;
如果所述目标模型不可见,根据所述虚拟场景内的光照方向,判断所述目标模型能否接收到光照;
如果所述目标模型接收到光照,确定所述目标模型的投影点。
10.根据权利要求1所述的方法,其特征在于,在所述基于所述模拟光线是否被遮挡,确定所述目标模型的阴影相对所述空间单元格内的虚拟相机是否可见之后,所述方法还包括:
基于所述目标模型的可见性和所述阴影的可见性,创建所述目标模型相对所述空间单元格的充分可见性数据和附加可见性数据。
11.一种虚拟场景的渲染方法,其特征在于,包括:
根据虚拟场景中虚拟相机当前所处空间单元格,加载所述空间单元格对应的可见性数据;
基于所述可见性数据,确定所述空间单元格渲染范围内每个目标模型的可见性和对应阴影的可见性;
根据每个目标模型的可见性和对应阴影的可见性,在虚拟场景的渲染过程中剔除不可见对象的渲染路径。
12.根据权利要求11所述的方法,其特征在于,所述可见性数据包括充分可见性数据;所述基于所述可见性数据,确定所述空间单元格渲染范围内每个目标模型的可见性和对应阴影的可见性,包括:
基于所述充分可见性数据,获得所述空间单元格渲染范围内模型或阴影任一可见的渲染对象;
所述根据每个目标模型的可见性和对应阴影的可见性,在虚拟场景的渲染过程中剔除不可见对象的渲染路径,包括:
对所述渲染对象进行模型和阴影的多路径渲染。
13.根据权利要求11所述的方法,其特征在于,所述可见性数据包括充分可见性数据和附加可见性数据;所述基于所述可见性数据,确定所述空间单元格渲染范围内每个目标模型的可见性和对应阴影的可见性,包括:
基于所述充分可见性数据和附加可见性数据,确定所述空间单元格渲染范围内每个目标模型的可见性和对应阴影的可见性;
所述根据每个目标模型的可见性和对应阴影的可见性,在渲染过程中剔除不可见对象的渲染路径,包括:
针对每个目标模型,如果所述目标模型不可见,但所述目标模型对应的阴影可见,进行模型渲染路径的剔除,保留阴影渲染路径。
14.一种虚拟场景的可见性数据处理装置,其特征在于,包括:
空间分割模块,用于将虚拟场景中虚拟相机的活动空间划分为多个空间单元格;
光线构建模块,用于针对每个所述空间单元格,构建所述空间单元格渲染范围内目标模型的投影点到所述空间单元格的模拟光线;
遮挡判断模块,用于根据所述渲染范围内的所有遮挡模型信息,判断所述模拟光线是否被遮挡;
可见性判定模块,用于基于所述模拟光线是否被遮挡,确定所述目标模型的阴影相对所述空间单元格内的虚拟相机是否可见。
15.一种虚拟场景的渲染装置,其特征在于,包括:
数据加载模块,用于根据虚拟场景中虚拟相机当前所处空间单元格,加载所述空间单元格对应的可见性数据;
可见性确定模块,用于基于所述可见性数据,确定所述空间单元格渲染范围内每个目标模型的可见性和对应阴影的可见性;
场景渲染模块,用于根据每个目标模型的可见性和对应阴影的可见性,在虚拟场景的渲染过程中剔除不可见对象的渲染路径。
16.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-10任意一项所述的虚拟场景的可见性数据处理方法。
17.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求11-13任意一项所述的虚拟场景的渲染方法。
18.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成权利要求1-10任意一项所述的虚拟场景的可见性数据处理方法。
19.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成权利要求11-13任意一项所述的虚拟场景的渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911215509.7A CN111080798B (zh) | 2019-12-02 | 2019-12-02 | 虚拟场景的可见性数据处理方法及虚拟场景的渲染方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911215509.7A CN111080798B (zh) | 2019-12-02 | 2019-12-02 | 虚拟场景的可见性数据处理方法及虚拟场景的渲染方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111080798A true CN111080798A (zh) | 2020-04-28 |
CN111080798B CN111080798B (zh) | 2024-02-23 |
Family
ID=70312478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911215509.7A Active CN111080798B (zh) | 2019-12-02 | 2019-12-02 | 虚拟场景的可见性数据处理方法及虚拟场景的渲染方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111080798B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111833428A (zh) * | 2019-03-27 | 2020-10-27 | 杭州海康威视系统技术有限公司 | 一种可视域确定方法、装置及设备 |
CN112396683A (zh) * | 2020-11-30 | 2021-02-23 | 腾讯科技(深圳)有限公司 | 虚拟场景的阴影渲染方法、装置、设备及存储介质 |
CN112562065A (zh) * | 2020-12-17 | 2021-03-26 | 深圳市大富网络技术有限公司 | 一种虚拟世界中虚拟对象的渲染方法、系统以及装置 |
CN112691381A (zh) * | 2021-01-13 | 2021-04-23 | 腾讯科技(深圳)有限公司 | 虚拟场景的渲染方法、装置、设备及计算机可读存储介质 |
CN113041616A (zh) * | 2021-02-22 | 2021-06-29 | 网易(杭州)网络有限公司 | 游戏中控制跳字显示的方法、装置、电子设备及存储介质 |
CN113079409A (zh) * | 2021-03-26 | 2021-07-06 | 深圳市凉屋游戏科技有限公司 | 画面渲染方法及画面渲染装置 |
CN113345081A (zh) * | 2021-06-24 | 2021-09-03 | 广东三维家信息科技有限公司 | 立体模型遮挡消除方法、装置、设备及存储介质 |
CN116543093A (zh) * | 2023-07-04 | 2023-08-04 | 腾讯科技(深圳)有限公司 | 柔体对象渲染方法、装置、计算机设备和存储介质 |
WO2024067204A1 (zh) * | 2022-09-30 | 2024-04-04 | 腾讯科技(深圳)有限公司 | 场景画面的渲染方法、装置、设备、存储介质及程序产品 |
CN112396683B (zh) * | 2020-11-30 | 2024-06-04 | 腾讯科技(深圳)有限公司 | 虚拟场景的阴影渲染方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008165784A (ja) * | 2006-12-28 | 2008-07-17 | Nhn Corp | 静的影生成方法及び静的影生成システム |
US20160133048A1 (en) * | 2014-11-11 | 2016-05-12 | Intergraph Corporation | Method and Apparatus for Shadow Estimation and Spreading |
CN106558092A (zh) * | 2016-11-16 | 2017-04-05 | 北京航空航天大学 | 一种基于场景多方向体素化的多光源场景加速绘制方法 |
US20170372508A1 (en) * | 2016-06-27 | 2017-12-28 | Pixar | Efficient rendering based on ray intersections with virtual objects |
CN108765542A (zh) * | 2018-05-31 | 2018-11-06 | Oppo广东移动通信有限公司 | 图像渲染方法、电子设备和计算机可读存储介质 |
CN110349246A (zh) * | 2019-07-17 | 2019-10-18 | 广西师范大学 | 一种应用于光场绘制中降低视点的重构失真度的方法 |
-
2019
- 2019-12-02 CN CN201911215509.7A patent/CN111080798B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008165784A (ja) * | 2006-12-28 | 2008-07-17 | Nhn Corp | 静的影生成方法及び静的影生成システム |
US20160133048A1 (en) * | 2014-11-11 | 2016-05-12 | Intergraph Corporation | Method and Apparatus for Shadow Estimation and Spreading |
US20170372508A1 (en) * | 2016-06-27 | 2017-12-28 | Pixar | Efficient rendering based on ray intersections with virtual objects |
CN106558092A (zh) * | 2016-11-16 | 2017-04-05 | 北京航空航天大学 | 一种基于场景多方向体素化的多光源场景加速绘制方法 |
CN108765542A (zh) * | 2018-05-31 | 2018-11-06 | Oppo广东移动通信有限公司 | 图像渲染方法、电子设备和计算机可读存储介质 |
CN110349246A (zh) * | 2019-07-17 | 2019-10-18 | 广西师范大学 | 一种应用于光场绘制中降低视点的重构失真度的方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111833428B (zh) * | 2019-03-27 | 2024-02-02 | 杭州海康威视系统技术有限公司 | 一种可视域确定方法、装置及设备 |
CN111833428A (zh) * | 2019-03-27 | 2020-10-27 | 杭州海康威视系统技术有限公司 | 一种可视域确定方法、装置及设备 |
CN112396683A (zh) * | 2020-11-30 | 2021-02-23 | 腾讯科技(深圳)有限公司 | 虚拟场景的阴影渲染方法、装置、设备及存储介质 |
CN112396683B (zh) * | 2020-11-30 | 2024-06-04 | 腾讯科技(深圳)有限公司 | 虚拟场景的阴影渲染方法、装置、设备及存储介质 |
CN112562065A (zh) * | 2020-12-17 | 2021-03-26 | 深圳市大富网络技术有限公司 | 一种虚拟世界中虚拟对象的渲染方法、系统以及装置 |
CN112691381A (zh) * | 2021-01-13 | 2021-04-23 | 腾讯科技(深圳)有限公司 | 虚拟场景的渲染方法、装置、设备及计算机可读存储介质 |
CN112691381B (zh) * | 2021-01-13 | 2022-07-29 | 腾讯科技(深圳)有限公司 | 虚拟场景的渲染方法、装置、设备及计算机可读存储介质 |
CN113041616B (zh) * | 2021-02-22 | 2024-05-28 | 网易(杭州)网络有限公司 | 游戏中控制跳字显示的方法、装置、电子设备及存储介质 |
CN113041616A (zh) * | 2021-02-22 | 2021-06-29 | 网易(杭州)网络有限公司 | 游戏中控制跳字显示的方法、装置、电子设备及存储介质 |
CN113079409A (zh) * | 2021-03-26 | 2021-07-06 | 深圳市凉屋游戏科技有限公司 | 画面渲染方法及画面渲染装置 |
CN113345081A (zh) * | 2021-06-24 | 2021-09-03 | 广东三维家信息科技有限公司 | 立体模型遮挡消除方法、装置、设备及存储介质 |
WO2024067204A1 (zh) * | 2022-09-30 | 2024-04-04 | 腾讯科技(深圳)有限公司 | 场景画面的渲染方法、装置、设备、存储介质及程序产品 |
CN116543093A (zh) * | 2023-07-04 | 2023-08-04 | 腾讯科技(深圳)有限公司 | 柔体对象渲染方法、装置、计算机设备和存储介质 |
CN116543093B (zh) * | 2023-07-04 | 2024-04-02 | 腾讯科技(深圳)有限公司 | 柔体对象渲染方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111080798B (zh) | 2024-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111080798B (zh) | 虚拟场景的可见性数据处理方法及虚拟场景的渲染方法 | |
US10504253B2 (en) | Conservative cell and portal graph generation | |
CN109977466B (zh) | 一种三维扫描视点规划方法、装置及计算机可读存储介质 | |
US8682037B2 (en) | Method and system for thinning a point cloud | |
US9123162B2 (en) | Integration cone tracing | |
CN113012274B (zh) | 一种阴影渲染的方法、装置以及电子设备 | |
CN111415420B (zh) | 空间信息确定方法、装置及电子设备 | |
JP2021185484A (ja) | 複数のモデルに基づくオブジェクトの表示 | |
US9171393B2 (en) | Three-dimensional texture reprojection | |
CN113048980A (zh) | 位姿优化方法、装置、电子设备及存储介质 | |
CN111369680B (zh) | 生成建筑物的三维图像的方法及装置 | |
KR101399236B1 (ko) | 신뢰도 스코어에 기반한 3차원 모델의 통합 | |
CN110009751B (zh) | 一种房屋虚拟三维模型的楼层分割方法及装置 | |
US6690373B2 (en) | Methods for improving visibility computations in 3D computer graphics | |
US10861174B2 (en) | Selective 3D registration | |
Wu et al. | Occluder Generation for Buildings in Digital Games | |
CN111145085B (zh) | 拣选片元的方法和模型栅格化的方法、系统、设备和介质 | |
US11367262B2 (en) | Multi-dimensional acceleration structure | |
CN114019532A (zh) | 工程进度核查方法及设备 | |
CN115115708B (zh) | 一种图像位姿的计算方法及系统 | |
JP2019046080A (ja) | 情報処理装置、方法及びプログラム | |
CN117635875B (zh) | 一种三维重建方法、装置及终端 | |
JP6487578B1 (ja) | プログラム、記録媒体、及び影描画方法 | |
CN116977540A (zh) | 体积云的渲染方法、装置、电子设备及存储介质 | |
CN116212369A (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 |