CN116958386A - 一种数据处理的方法、***和设备 - Google Patents
一种数据处理的方法、***和设备 Download PDFInfo
- Publication number
- CN116958386A CN116958386A CN202210379388.5A CN202210379388A CN116958386A CN 116958386 A CN116958386 A CN 116958386A CN 202210379388 A CN202210379388 A CN 202210379388A CN 116958386 A CN116958386 A CN 116958386A
- Authority
- CN
- China
- Prior art keywords
- target
- dimensional model
- rendering
- resolution
- spatial resolution
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title abstract description 9
- 238000009877 rendering Methods 0.000 claims abstract description 236
- 238000000034 method Methods 0.000 claims abstract description 94
- 239000000463 material Substances 0.000 claims abstract description 66
- 238000004364 calculation method Methods 0.000 claims description 50
- 238000005070 sampling Methods 0.000 claims description 37
- 238000012545 processing Methods 0.000 claims description 28
- 238000010586 diagram Methods 0.000 description 24
- 230000000694 effects Effects 0.000 description 18
- 230000008569 process Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 11
- 238000005286 illumination Methods 0.000 description 9
- 238000004040 coloring Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 241000283973 Oryctolagus cuniculus Species 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003746 surface roughness Effects 0.000 description 3
- 238000005266 casting Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 210000000887 face Anatomy 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 239000012780 transparent material Substances 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000003518 caustics Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000013215 result calculation Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
- 239000002023 wood Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本申请公开了一种数据处理的方法,用于简化用户的操作,提升渲染效率。该方法通过获取目标三维模型的待渲染数据,并从待渲染数据中提取环境光参数和目标三维模型的材质参数,以确定目标三维模型的角度分辨率。计算虚拟视点位于目标位置和目标角度时,目标三维模型的空间分辨率。最后,根据角度分辨率和空间分辨率对目标三维模型进行预渲染获得预渲染结果。以获得可以提供给用户进行预览的预渲染结果,简化用户的操作,提升了渲染的效率。
Description
技术领域
本申请实施例涉及图形渲染领域,尤其涉及一种数据处理的方法、***和设备。
背景技术
渲染技术是指根据待渲染数据中的三维模型数据和光照信息,利用计算机进行计算,输出模拟现实场景的图像。光线追踪技术是当前计算机根据待渲染数据中的三维模型和光照信息等待渲染数据中携带的场景信息,经过渲染获得逼真的渲染图像的方法之一。
而利用光线追踪技术进行渲染的方式中,需要用户对待渲染数据中的每一个三维模型的空间分辨率和角度分辨率进行设置,完成待渲染数据中所有三维模型的空间分辨率和角度分辨率的设置后,对待渲染数据进行渲染获得渲染结果,由于待渲染数据中通常有多个三维模型,用户需要依次为每个三维模型设置角度分辨率和空间分辨率,渲染效率低下。
发明内容
本申请提供了一种数据处理的方法、***和设备,用于简化用户的操作,进而提升渲染效率。
本申请的第一方面提供了一种数据处理的方法,包括:获取待渲染数据,所述待渲染数据包括目标三维模型、环境光参数和目标三维模型的材质参数;根据环境光参数和所述目标三维模型的材质参数,确定所述目标三维模型的角度分辨率;计算虚拟视点位于目标位置和目标角度时所述目标三位模型的空间分辨率;根据所述角度分辨率和所述空间分辨率对所述目标三维模型进行预渲染,获得预渲染结果。
该方法通过获取待渲染数据,待渲染数据中包括目标三维模型,并从待渲染数据中提取环境光参数和目标三维模型的材质参数,以确定目标三维模型的角度分辨率。其中,环境光参数为所述目标三维模型所在空间的一项参数。计算虚拟视点位于目标位置和目标角度时,目标三维模型的空间分辨率。在完成计算后,根据角度分辨率和空间分辨率对目标三维模型进行预渲染获得预渲染结果。其中,预渲染为根据角度分辨率和空间分辨率对目标三维模型的指定位置指定角度进行渲染,以快速获得可以提供给用户进行预览的预渲染结果。避免了用户设置目标三维模型的角度分辨率和空间分辨率带来的麻烦和操作失误,提升了渲染的效率。
在第一方面可能的实现方式中,根据所述空间分辨率和所述角度分辨率对所述目标三维模型进行预渲染后,该方法还包括:提供配置接口,所述配置接口用于接收调整信息,所述调整信息指示对所述空间分辨率和/或所述角度分辨率进行调整;根据调整后的空间分辨率和/或调整后的所述角度分辨率,对所述目标三维模型进行渲染。
该方法通过提供用于接收调整信息的配置接口,在接收到调整信息后,可以根据调整信息对空间分辨率和/或角度分辨率进行调整。接着根据调整后的空间分辨率和/或调整后的角度分辨率对目标三维模型进行渲染。使用户在查看过预渲染结果后,可以通过配置接口对空间分辨率和角度分辨率进行调整,以实现根据预渲染结果对空间分辨率和角度分辨率进行微调,高效地获得期望的渲染结果。
在第一方面可能的实现方式中,该方法还包括:根据所述调整后的空间分辨率和/或所述调整后的所述角度分辨率,计算渲染花费;显示所述渲染花费。该方法在调整空间分辨率和/或角度分辨率后,计算渲染花费,显示渲染花费,使得用户可以即时的获知渲染需要进行的花费多少,提升了用户体验。
在第一方面可能的实现方式中,所述根据环境光参数和所述目标三维模型的材质参数,确定所述目标三维模型的角度分辨率,包括:获取所述目标三维模型所在环境的环境光采样方差和所述目标三维模型的材质采样方差;将所述环境光采样方差和所述目标三维模型的材质采样方差输入角度分辨率预测模型,获得所述角度分辨率。
该方法通过获取目标三维模型的环境光采样方差和目标三维模型的材质采样方差,并将环境光采样方差和目标三维模型的材质采样方差输入角度分辨率预测模型,获得角度分辨率,为获得角度分辨率提供了具体的方法。
在第一方面可能的实现方式中,该方法还包括:获取所述待渲染数据的场景类型;所述根据环境光参数和所述目标三维模型的材质参数,确定所述目标三维模型的角度分辨率,包括:根据所述环境光参数、所述目标三维模型的材质参数和所述场景类型,确定所述目标三维模型的角度分辨率;所述计算虚拟视点位于目标位置目标角度时的空间分辨率,包括:基于所述场景类型,计算所述虚拟视点位于所述目标位置和目标角度时的所述空间分辨率。
该方法通过获取待渲染数据的场景类型,并根据该场景类型、环境光参数和目标三维模型的材质参数确定目标三维模型的角度分辨率。根据该场景类型计算虚拟视点位于目标位置和目标角度时的空间分辨率。引入了场景类型对空间分辨率和角度分辨率的影响,可以更精准的计算出合适的角度分辨率和空间分辨率。
在第一方面可能的实现方式中,该方法还包括:获取所述待渲染数据的渲染预算;所述根据环境光参数和所述目标三维模型的材质参数,确定所述目标三维模型的角度分辨率,包括:根据所述环境光参数、所述目标三维模型的材质参数和所述渲染预算,确定所述目标三维模型的角度分辨率;所述计算虚拟视点位于目标位置目标角度时的空间分辨率,包括:基于所述渲染预算,计算所述虚拟视点位于所述目标位置和目标角度时的所述空间分辨率。
该方法通过获取待渲染数据的渲染预算,并根据该渲染预算、环境光参数和目标三维模型的材质参数确定目标三维模型的角度分辨率。根据该渲染预算计算虚拟视点位于目标位置和目标角度时的空间分辨率。引入渲染预算对空间分辨率和角度分辨率的影响,可以在计算空间分辨率和角度分辨率时,考虑到预算的影响,获得预算内效果最好的渲染结果,提升了渲染的效率,避免了用户在发现渲染花费大于渲染预算后对角度分辨率和空间分辨率进行调整带来的计算量。
在第一方面可能的实现方式中,所述目标位置为所述虚拟视点的活动空间内距离所述目标三维模型最近的位置,所述目标角度为虚拟视点在所述目标位置渲染的图片中,所述目标三维模型着色所需纹理贴图尺寸最大的角度。
该方法中,目标位置为虚拟视点的活动空间内距离目标物体最近的位置,目标角度为虚拟视点在目标位置渲染的图片中,目标三维模型着色所需纹理贴图尺寸最大的角度。这样的目标位置目标角度可以计算得到更为精准的空间分辨率,进而减少不必要的调整,提升了渲染效率。
在第一方面可能的实现方式中,所述根据所述角度分辨率和所述空间分辨率对所述目标三维模型进行预渲染,获得预渲染结果,包括:当所述虚拟视点位于指定位置和指定角度时,基于所述空间分辨率和所述角度分辨率对所述目标三维模型进行预渲染,获得所述预渲染结果。
该方法中,虚拟视点位于指定位置指定角度时,基于空间分辨率和角度分辨率对目标三维模型进行预渲染获得预渲染结果。其中指定位置指定角度可以为事先设定好的在虚拟视点的活动范围内的固定位置的固定角度,这样一来,预渲染无需对目标三维模型进行全位置和全角度的渲染,仅给出一个或多个指定位置指定角度的渲染结果以供用户进行预览,在用户预览满意后,再进行全位置全角度的渲染,大大减少了渲染的计算量。
本申请的第二方面提供了一种数据处理的设备,包括:获取模块,空间分辨率计算模块、角度分辨率计算模块和预渲染模块;
所述获取模块,用于获取待渲染数据,所述待渲染数据包括目标三维模型;
所述空间分辨率计算模块,用于计算虚拟视点位于目标位置和目标角度时所述目标三维模型的空间分辨率,向所述渲染模组发送所述空间分辨率;
所述角度分辨率计算模块,用于根据环境光参数和所述目标三维模型的材质参数确定所述目标三位模型的角度分辨率,向所述渲染模组发送所述参考分辨率;
所述预渲染模块,用于根据所述角度分辨率和所述空间分辨率对所述目标三维模型进行预渲染,获得预渲染结果。
在第二方面可能的实现方式中,该***还包括:
配置接口,用于接收调整信息,所述调整信息指示对所述空间分辨率和/或所述角度分辨率进行调整;
渲染模组,用于根据调整后的空间分辨率和/或调整后的所述角度分辨率,对所述目标三维模型进行渲染。
在第二方面可能的实现方式中,该***还包括:
价格计算模组,用于根据所述调整后的空间分辨率和/或所述调整后的所述角度分辨率,计算渲染花费;
显示模组,用于显示所述渲染花费。
在第二方面可能的实现方式中,角度分辨率计算模块,具体用于:
获取所述目标三维模型所在环境的环境光采样方差和所述目标三维模型的材质采样方差;
将所述环境光采样方差和所述目标三维模型的材质采样方差输入角度分辨率预测模型,获得所述角度分辨率。
在第二方面可能的实现方式中,所述获取模块,还用于获取所述待渲染数据的场景类型;
角度分辨率计算模块,具体用于根据所述环境光参数、所述目标三维模型的材质参数和所述场景类型,确定所述目标三维模型的角度分辨率;
空间分辨率计算模块,具体用于基于所述场景类型,计算所述虚拟视点位于所述目标位置和目标角度时的所述空间分辨率。
在第二方面可能的实现方式中,所述获取模块,还用于获取所述待渲染数据的渲染预算;
所述角度分辨率计算模块,具体用于根据所述环境光参数、所述目标三维模型的材质参数和所述渲染预算,确定所述目标三维模型的角度分辨率;
所述空间分辨率计算模块,具体用于基于所述渲染预算,计算所述虚拟视点位于所述目标位置和目标角度时的所述空间分辨率。
在第二方面可能的实现方式中,所述目标位置为所述相机的活动空间内距离所述目标物体最近的位置,所述目标角度为相机在所述目标位置渲染的图片中,所述目标物体着色所需纹理贴图尺寸最大的角度。
在第二方面可能的实现方式中,所述预渲染模块,具体用于当所述虚拟视点位于指定位置和指定角度时,基于所述空间分辨率和所述角度分辨率对所述目标三维模型进行预渲染,获得所述预渲染结果。
本申请的第三方面提供了一种数据处理的设备,包括一个或多个处理器,所述一个或多个处理器和存储器耦合,所述存储器存储有程序,当所述存储器存储的程序指令被所述一个或多个处理器执行时,实现前述第一方面或第一方面可能的实现方式中任一项所述的方法。
本申请的第四方面提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使计算机执行前述第一方面或第一方面可能的实现方式中任一项所述的方法。
本申请的第五方面提供了一种计算机程序产品,所述计算机程序产品包括指令或计算机程序;当所述指令或所述计算机程序被执行时,使得第一方面以及任一项可能的实施方式所述的方法被实现。
本申请的第六方面提供了提供一种芯片,该芯片包括处理器,所述处理器用于执行指令,当该处理器执行所述指令时,使得该芯片执行如第一方面以及任一项可能的实施方式所述的方法。可选的,该芯片还包括通信接口,所述通信接口用于接收信号或发送信号。
本申请的第七方面提供了提供一种***,所述***包括至少一个如第二方面所述的对应用进行渲染的装置或第三方面所述的电子设备或第六方面所述的芯片。
此外,在执行上述第一方面以及任一项可能的实施方式所述的方法的过程中,上述方法中有关发送信息和/或接收信息等的过程,可以理解为由处理器输出信息的过程,和/或,处理器接收输入的信息的过程。在输出信息时,处理器可以将信息输出给收发器(或者通信接口、或发送模块),以便由收发器进行发射。信息在由处理器输出之后,还可能需要进行其他的处理,然后才到达收发器。类似的,处理器接收输入的信息时,收发器(或者通信接口、或发送模块)接收信息,并将其输入处理器。更进一步的,在收发器收到该信息之后,该信息可能需要进行其他的处理,然后才输入处理器。
基于上述原理,举例来说,前述方法中提及的发送信息可以理解为处理器输出信息。又例如,接收信息可以理解为处理器接收输入的信息。
可选的,对于处理器所涉及的发射、发送和接收等操作,如果没有特殊说明,或者,如果未与其在相关描述中的实际作用或者内在逻辑相抵触,则均可以更加一般性的理解为处理器输出和接收、输入等操作。
可选的,在执行上述第一方面以及任一项可能的实施方式所述的方法的过程中,上述处理器可以是专门用于执行这些方法的处理器,也可以是通过执行存储器中的计算机指令来执行这些方法的处理器,例如通用处理器。上述存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(Read Only Memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
在一种可能的实施方式中,上述至少一个存储器位于装置之外。
在又一种可能的实施方式中,上述至少一个存储器位于装置之内。
在又一种可能的实施方式之中,上述至少一个存储器的部分存储器位于装置之内,另一部分存储器位于装置之外。
本申请中,处理器和存储器还可能集成于一个器件中,即处理器和存储器还可以被集成在一起。
附图说明
图1a为本申请实施例提供的单一视点下的一种渲染结构示意图;
图1b为本申请实施例提供的模型30的一个面的面片划分情况示意图;
图1c为本申请实施例提供的像素与面片对应关系的一种示意图;
图1d为本申请实施例提供的像素投影区域的一种示意图;
图2为本申请实施例提供的光线追踪的一种场景示意图;
图3为本申请实施例提供的渲染场景的一种模型示意图;
图4a为本申请实施例提供的三维模型网格的一种效果示意图;
图4b为本申请实施例提供的三维模型网格的另一种效果示意图;
图5a为本申请实施例提供的光线追踪渲染的一种效果示意图;
图5b为本申请实施例提供的光线追踪渲染的另一种效果示意图;
图6为本申请实施例提供的数据处理的一种流程示意图;
图7为本申请实施例提供的空间分辨率计算方法的一种流程示意图;
图8为本申请实施例提供的角度分辨率计算方法的一种流程示意图;
图9为本申请实施例提供的数据处理的***的一种结构示意图;
图10为本申请实施例提供的数据处理的设备的一种结构示意图。
具体实施方式
首先对本申请实施例中所涉及到的一些技术术语进行介绍。
面片(tile):面片是指二维或三维空间中最小的平面构成单元。通常在渲染中,需要将空间中的模型划分成无数个微小的平面。这些平面又被称为面片,它们可以是任意多边形,常用的是三角形和四边形。这些面片各条边的交点则是各个面片的顶点。面片可以是根据模型的材质或颜色等信息随机划分的。此外,考虑到每一个面片都有正反两面,而通常只有一面是可以被看到的。因此,在一些情况下需要对面片进行背面剔除的操作。
每像素追踪光线数(sample per pixel,SPP):每像素追踪光线数是指每一个像素中通过的光线数量。其中,像素是在屏幕空间中的最小单元。通常我们看到的屏幕是由一个个的像素排列而成的,每一个像素对应空间中的局部、一个或多个面片。像素的颜色是根据其对应面片的颜色(red,green,blue,RGB)计算得到的。在光线追踪中,每像素追踪光线数的大小可以影响渲染的结果。每像素追踪光线数越大,意味着从视点会有更多的光线投向三维空间中的模型。模型中每一面片上被投射的光线数越多,各个面片的渲染结果计算就可以更为准确。
图形渲染随着计算机算力的提高和行业发展的需要逐渐成为业界的焦点,目前图形渲染技术主要有光栅化和光线追踪两种。
光栅化(rasterization):光栅化是将屏幕空间中的3D图形,转化到二维视平面上的光栅图像的过程。光栅化的过程包含了两部分的工作,第一部分工作:决定窗口坐标中的哪些整型栅格区域被基本图元占用。第二部分工作:分配一个渲染结果和一个深度值到各个区域。把模型的数学描述以及与模型相关的颜色信息转换为屏幕上用于对应位置的像素及用于填充像素的颜色,这个过程称为光栅化。
光线追踪(ray tracing):光线追踪又称为光迹跟踪或光线追迹,来自于几何光学的一项通用技术,它通过跟踪与光学表面发生交互作用的光线从而得到光线经过路径的模型。它用于光学***设计,如照相机镜头、显微镜、望远镜以及双目镜等。当用于渲染时,跟踪从眼睛发出的光线而不是光源发出的光线,通过这样一项技术生成编排好的场景的数学模型显现出来。这样得到的结果类似于光线投射与扫描线渲染方法的结果,但是这种方法有更好的光学效果。例如对于反射与折射有更准确的模拟效果,并且效率非常高,所以当追求这样高质量结果时候经常使用这种方法。具体地,光线追踪方法首先计算一条光线在被介质吸收,或者改变方向前,光线在介质中传播的距离、方向以及到达的新位置。然后从这个新的位置产生出一条新的光线,使用同样的处理方法,最终计算出一个完整的光线在介质中传播的路径。由于该算法是成像***的完全模拟,所以可以模拟生成复杂的图片。
需要说明的是本文所提到的光线追踪指示的是通过模拟光线的投射获得渲染结果的一类方法。具体地,可以包括向后光线追踪、分布式光线追踪和双向路径追踪等方法。
对于光照的真实感实现,光栅化可以通过光线投射计算完成。但是对于额外的视觉效果:软阴影,全局光照,焦散等,则需要通过数据建模,使用其他的方法进行处理。例如全局光照需要使用光照贴图(light map),辐照度贴图(irradiance map)等方法进行拟合,对于软阴影使用阴影映射(shadow map)的技术进行拟合。此种开发方式较为繁琐,拟合后的视觉效果不尽如人意。虽然光栅化渲染技术可以支持多视点同时渲染,其实现过程需要在最后视角变换时,追加角度变换处理来实现,但是精确度较差。因此,下文采用的渲染技术主要是光线追踪。
计算机渲染技术:是指根据三维模型数据和光线数据,通过计算机的计算,输出模拟真实世界中相同模型和光照条件下的真实图像。其中,光线追踪技术是现代计算机根据三维模型和光照信息等场景信息,渲染出逼真的计算机渲染图像的有效方式之一。
首先对渲染结构进行简单的介绍,请参阅图1a,图1a为本申请实施例提供的单一视点下的一种渲染结构示意图。该渲染结构至少包含虚拟视点10、虚拟视平面20、模型30和光源40。
虚拟视点10是在空间中模拟的人的一只眼睛或多只眼睛,用于感知三维结构。其中,每一帧画面对应一个空间。按照视点数量划分,虚拟视点10可以分为单目视点、双目视点和多目视点。具体地,双目视点或多目视点是指从两个及两个以上的不同的视点获取两幅或多幅图像来重构目标模型3D结构或深度信息。
虚拟视平面20是一种空间中的模拟显示屏。虚拟视平面20的构建主要由虚拟视点10到虚拟视平面20的距离和屏幕分辨率这两个因素决定。
其中,虚拟视点10到虚拟视平面200的距离指的是虚拟视点10到虚拟视平面20的垂直距离。进一步地,该距离可以根据需求进行设置。
屏幕分辨率指的是虚拟视平面20所包含的像素数量。换言之,虚拟视平面20包含一个或多个像素。例如在图1a中,虚拟视平面200包含9像素(3*3)。
在一些可能的实现方式中,经过渲染操作获得的结果可以用于输出。在一次光线追踪中,虚拟视平面20中每一个像素的渲染结果共同构成一帧画面。也即,在一次光线追踪中,一个虚拟视平面20对应一帧画面。
与虚拟视平面相对应的,是在用户端侧用于输出最终结果的显示屏。该显示屏的屏幕分辨率不一定等于虚拟视平面的屏幕分辨率。
当显示屏和虚拟视平面20的屏幕分辨率相等时,可以将虚拟视平面20上的渲染结果按照1:1的比例输出至显示屏。
当显示屏和虚拟视平面20的屏幕分辨率不同时,则将虚拟视平面20上的渲染结果按照一定的比例输出至显示屏。其中,具体的比例的计算属于现有技术,这里不再赘述。
空间中可以包含一个或多个模型30。虚拟视平面20对应的渲染结果中可以包含哪些模型30,由对应的虚拟视点10各模型30之间的相对位置决定。
在进行渲染操作前,通常需要将模型表面划分成多个面片。其中,各个面片的大小和形状可以一致,也可以不一致。具体地,面片的划分方法属于现有技术,这里不再赘述。
面片的划分结果请参阅图1b,图1b为本申请实施例提供的模型30的一个面的面片划分情况示意图。如图1b所示,模型30的一个面被划分成了6个不同大小的三角形面片。
空间中所有的顶点不仅包括模型30各个面的交点(例如D1、D2、D4、D6),还包括各个面片的顶点(例如D0、D3、D5)。
图1a中像素与面片的对应关系请参阅图1c,图1c为本申请实施例提供的像素与面片对应关系的一种示意图。图1c中加粗的方框即图1a中虚拟视平面20中一个像素在模型30上的投影。可以看到,该像素投影区域分别覆盖了面片1至6的部分区域。所述像素投影区域指示的是该像素在模型上的投影所围成的区域。
一个像素投影区域可以覆盖多个面片,也可以仅覆盖一个面片。其中,当一个像素投影区域仅覆盖一个面片时,可以覆盖该面片的全部区域,也可以覆盖该面片的部分区域。
具体的,请参阅图1d,图1d为本申请实施例提供的像素投影区域的一种示意图,像素覆盖了面片6的部分区域。也即,面片6可以同时覆盖多个像素投影区域。
综上所述,空间中各模型的表面可以被划分成多个多边形面片,空间中的所有顶点即各个多边形面片顶点的集合。而一个像素对应的像素投影区域可以覆盖一个或多个面片,一个面片也可以覆盖一个或多个像素对应的像素投影区域。
光源40是空间中设置的虚拟光源,用于生成空间中的光照环境。光源40的类型可以是以下光源中的任意一种:点光源、面光源和线光源等。进一步地,空间中可以包括一个或多个光源40。进一步地,当空间中存在多个光源40时,不同的光源类型可以不同。
接下来将对光线追踪的实现方法进行介绍。请参阅图2,图2为本申请实施例提供的光线追踪的一种场景示意图。图中包括虚拟视点10、虚拟视平面20、模型30、光源40和三束光线(第一光线、第二光线和第三光线)。
虚拟视平面20呈现渲染结果是以像素为单位的,而每一个像素的渲染结果等于在本次光线追踪过程中穿过该像素的光线的渲染结果的平均值。而每一束光线的渲染结果的计算属于现有技术,因此不在此赘述。
实际上,每一束光线都是从光源发出,在接触到空间中一个或多个面片后,在每个接触点发生下述情形中的一种:折射、反射或漫反射。然后穿过虚拟视平面20,最后进入虚拟视点10。也即,进入用户的眼睛。
具体地,每个面片都具有一定的颜色和材质特征。面片的材质可以分为以下三种:透明材质、光滑的不透明材质和粗糙的不透明材质。根据面片材质的不同,面片对于光的折/反射情况又可以分为折射、反射和漫反射三种情况。其中,光线接触透明材质会发生折射,光线接触表面光滑的不透明材质会发生反射,光线接触表面粗糙的不透明材质会发生漫反射。
需要说明的是,对于会发生漫反射的材质而言,接触点从各个角度反射出光线的颜色通常是一样的。换言之,在模型和光源的相对位置和其他条件不变的前提下,不同的两个虚拟视点看到同一个可以发生漫反射的点的颜色是一样的。
因此,理论上来说,如果可以将空间中所有可以发生漫反射的点的出射光线的颜色保存在该点上,在之后的光线追踪中再需要计算该点的出射光线颜色时,可以直接复用。但是考虑到模型中的点的数量有无数个,因此对于点的渲染结果难以实现存储和复用。
出射光线的颜色由光源和接触点所在面片的颜色决定,而同一面片各个点的颜色一致的。因此,可以将点近似扩大至面片这一类微小单元。换言之,可以将各个点的渲染结果存储在各个所在的面片上。
在光线追踪中,我们认为光线是从虚拟视点发出,因此部分光线可能在接触到面片后不能回到光源,从而所述光线不具有颜色。因此,在光线追踪中对各个面片的渲染结果的计算需要对面片发出一定数量的光线。进一步地,可以通过根据这些光线的颜色,确定各个面片的渲染结果。例如,可以通过删除采样值中差异过大的光线的渲染结果再求均值的方法确定该面片存储的渲染结果。
以上的实例中以模型为正方体为例简单介绍了渲染过程中面片与像素之间的关系,以及如何利用光线追踪法确认面片的渲染结果。但是在实际的应用中,模型很少为简单的立方体——正方体,通常情况下待渲染的模型都是不规则的3D模型,下面以“兔子”作为模型的渲染过程进行简单的介绍。
请参阅图3,图3为本申请实施例提供的渲染场景的一种模型示意图。
如图3所示,301表示一个“兔子”的3D模型,该3D模型由多个三角形平面构成,这些平面也可以是四边形或任意多边形,各个平面各条边的交点则是各个平面的顶点。该3D模型上的每个平面都由若干个面片组成,这里的面片是指二维或三维空间中最小的平面构成单元,每个面片都存储了一个半球,302表示其中一个面片存储的半球。在每个半球上都存储了以该半球心为虚拟视点,按照不同方向看向半球外的出射光的颜色,即该面片对应的RGB值。其中,每个面片上每个方向的SPP越大,意味着从3D模型的虚拟视点会有更多的光线投向三维空间。每个面片上每个方向上投射的光线数越多,其渲染结果的计算就更准确。
假设在该渲染场景下存在一个或多个光源,其中,光源可以是点光源、线光源或者面光源等,光源产生的光线照射到该3D模型上,此时,远程渲染平台将渲染场景中的3D模型的表面分割成多个网格。其中,3D模型的不同形状部分对应的网格的形状可以是不同的,例如,球体部分的网格和曲面物体部分的网格的形状可以完全不同,下面将分别结合具体的实施例对网格进行说明。
请参阅图4a,图4a为本申请实施例提供的三维模型网格的一种效果示意图。
如图4a所示,以三维模型为球体为例,网格可以表示为中心点以及中心点邻域的点构成的球体表面上的四边略鼓的近似方块。以球体的球心作为原点构建三维正交坐标系,其中,三维正交坐标系包括x轴,y轴以及z轴。中心点P的各个坐标中,r表示为球心O至中心点P的线段OP的长度,θ表示为线段OP与正z轴之间的夹角,/>表示为线段OP在xOy平面上的投影与x轴之间的夹角。在一些具体的实施例中,可以在球体上均匀地设置n个中心点P1,P2,...,Pn,如果非中心点Qi与中心点Pi的距离最短,则非中心点Qi与中心点Pi属于同一个网格。
基于上述三维模型网格的效果示意图可以看出,当三维正交坐标的划分标准越精细,以非中心点Qi与中心点Pi构成的网格也越精细。基于该网格的划分原理可以得出,当三维正交坐标的划分标准达到一定精度要求时,划分该三维模型所得到的网格为最小的平面构成单元,即是构成该三维模型的面片。因此,可以通过图4a中的网格划分方法得到模型的面片。
请参阅图4b,图4b为本申请实施例提供的三维模型网格的另一种效果示意图。
如图4b所示,以三维模型为曲面物体为例,网格可以表示为P(u,t)所代表的曲面表面上的方块。以曲面的一个设定原点构建二维正交坐标系,其中,坐标系包括u轴,t轴。u表示为曲面设定原点一个方向的偏移量,t表示另一个正交方向的偏移量,P(u,t)表示如图4b所示的(u,t)坐标系中四个顶点所组成的方块。
同理,基于上述三维模型网格的效果示意图可以看出,当二维正交坐标的划分标准越精细,P(u,t)所表示的方块也越精细。基于该网格的划分原理可以得出,当二维正交坐标的划分标准达到一定精度要求时,划分该三维模型所得到的方块为最小的平面构成单元,即是构成该三维模型的面片。因此,还可以通过图4b中的网格划分方法得到模型的面片。
可以理解的是,上述的网格的形状仅仅是作为具体的举例,在实际应用中,网格还可能是其他的形状,此处不作具体限定。另外,网格的尺寸可以根据需要进行设置,对渲染出的图像的精度要求越高的情况下,网格的尺寸可以设置得越小。上述网格的材料可以是光滑的,也可以是粗糙的。其中,光滑的材料为存在镜面反射的材料或者存在透射的材料,例如,镜面、金属表面以及水珠等等。粗糙的材料为存在漫反射的材料,例如,天然的木头以及布等。
以上述图4a或图4b所示的划分三维模型网格为例,基于该三维模型网格,本申请实施例还提供了对上述图3中的模型进行光线追踪渲染的方法。具体可参阅图5a,图5a为本申请实施例提供的光线追踪渲染的一种效果示意图。
如图5a所示,对图3中“兔子”模型301的任意一个面片存储的半球302建立三维正交坐标系,其中,三维正交坐标系包括原点O(即半球302的球心),x轴,y轴以及z轴。在xOy平面的360°视角范围内,以及直线Ox到射线Oz的90°视角范围内或直线Oy到射线Oz的90°视角范围内,以原点O为虚拟视点,按照多个极角、方位角的不同方向向半球外的任意方向投射出射光,经过半球空间的球面上任意一点(例如,P1,P2,P3等),获得该出射光对应的RGB值。因此,该半球上存储了该面片上每个角度的SPP的各条出射光对应的RGB值,即该面片对应的RGB值。
请参阅图5b,图5b为本申请实施例提供的光线追踪渲染的另一种效果示意图。
如图5b所示,从虚拟视点向半球外的不同极角、方位角的多个角度方向投射出n根光线,经过半球表面的多个角度点,然后各自投射在不透明物体1或不透明物体2的n个投射点所在的网格上,从而可以根据n个投射点所在的网格的光线强度分别确定该面片内的n个光线强度,最后,对这n个光线强度求平均,从而得到该面片的渲染结果。可以看出,该面片的SPP数量越多,基于该渲染结果得到的渲染图像的画质也越高。
通过以上介绍可以看出,在渲染开始前,需要对模型从空间上进行划分获得面片,对每个面片上的半球进行划分,可以获得该面片上每个角度的SPP数量。其中,对模型按照空间分辨率进行划分可以获得一个或多个面片。对面片上的半球按照角度分辨率进行划分,可以获得该面片上每个角度的SPP数量。也即,空间分辨率指示的是单个三维模型包括的面片的数量,而角度分辨率指示的是单个面片包括的用于进行光线追踪的角度的数量。
在当下较为常见的渲染方案中,通常需要用户对待渲染数据中每一个三维模型的空间分辨率和角度分辨率进行设置,在完成三维场景中所有三维模型的空间分辨率和角度分辨率的设置后,对待渲染数据进行渲染,获得渲染结果。而待渲染数据中通常有多个三维模型,由用户依次为每个三维模型设定空间分辨率和角度分辨率,用户再根据渲染结果对空间分辨率和角度分辨率进行调整,效率低下。
为解决渲染效率低下的问题,本申请提出了一种数据处理的方法,用于根据待渲染数据中携带的目标三维模型、环境光参数和目标三维模型的材质参数,计算角度分辨率和空间分辨率,并根据角度分辨率和空间分辨率对目标三维模型进行预渲染获得预渲染结果。以减少用户对待渲染数据中每个三维模型的空间分辨率和角度分辨率进行设置的工作,提升渲染效率。
接下来对数据处理的方法进行详细介绍,请参阅图6,图6为本申请实施例提供的数据处理的一种流程示意图。
601、获取待渲染数据;
通过云渲染服务提供的接口和操作界面获取用户预先制作好的待渲染数据,待渲染数据中有至少一个三维模型,目标三维模型为至少一个三维模型中的任一个三维模型。
可选的,待渲染数据中还携带了目标三维模型的环境光参数和目标三维模型的材质参数。
可选的,待渲染数据中也可以不包括目标三维模型所在空间的环境光参数。
其中,环境光参数为所述目标三维模型所在空间的一项参数,用于指示所述空间中光源和空间中其他三维模型对目标三维模型产生的光照影响。具体的,环境光参数可以为环境光采样方差、环境光采样平均值等。
需要注意的是,此处获取待渲染数据的方法仅为举例,在实际的应用中可以结合实际的应用场景通过不同的方式获取待渲染数据,此处不做限定。
602、获取虚拟视点的活动范围;
获取用户通过云渲染服务接口和操作界面设置的虚拟视点的可能的活动范围,可以为离散的空间位置,还可以是以待渲染数据中场景原点为中心的单位球体中活动。
可选的,还可以从***中直接获取预先设定好的空间立方体范围内的空间作为虚拟视点的活动范围。
需要注意的是,此处对获取虚拟视点的活动范围的方式不做具体的限制,如果未获取用户设定的活动方位,则可以从***中获取默认的空间作为虚拟视点的活动范围。
603、获取待渲染数据的场景类型;
获取用户在提供的多个选项中选择的待渲染数据的场景类型。此处的场景选项可以包括车展场景、道路驾驶场景和停车场景等。由于相同的模型在不同的场景中,可能会有不同的光线折射和反射,所以用户可以通过设置待渲染数据的场景类型以获得更加符合需要的预渲染结果。
需要注意的是,此处的场景类型仅为举例,在实际应用中,可以结合待渲染数据的大致类型为用户提供更多元化的选项,此处不作具体限制。
可选的,此处无需用户选择待渲染数据的场景类型,***直接采用默认的计算模式进行理想化计算。也就是不考虑场景带来的光场变化,直接进行计算和预渲染的方式。
604、获取待渲染数据的渲染预算;
获取用户输入的待渲染数据的渲染预算,由于图形渲染需要进行大量的计算和存储,本申请提出的方法需要利用云服务进行计算和中间数据的存储,这样一来,计算量的大小会直接影响渲染花费,获取可接受的费用上限后可以更精确的计算出符合用户需求的空间分辨率和角度分辨率。
可选的,若用户未设置待渲染数据的渲染预算,可以获取默认的待渲染数据的渲染预算为无穷大,以获得最优空间分辨率和角度分辨率为目标进行后续计算。
605、计算目标三维模型的空间分辨率和角度分辨率;
在获取到待渲染数据后,从待渲染数据中提取一些计算需要的信息,例如:环境光参数和目标三维模型的材质参数。
首先,结合图7对目标三维模型的空间分辨率计算方式进行介绍,图7为本申请实施例提供的空间分辨率计算方法的一种流程示意图。
计算设备确定目标位置和目标角度。其中,目标位置和目标角度可以是预先设定好的角度和位置,也可以是遍历虚拟视点所有可能的位置和角度,在所有可能的位置和角度中选取到的距离目标三维模型最近的位置和虚拟视点在目标位置渲染的图片中,目标三维模型着色所需纹理贴图尺寸最大的角度。
具体的,根据虚拟视点活动空间进行离散化遍历,获得D个虚拟视点距离目标三维模型的最近距离;再遍历虚拟视点位于距离目标三维模型的最近距离时,可能的角度个数A。利用光栅化计算各位置和角度下对应的贴图大小,从而获得一系列与虚拟视点的位置和角度相关联的计算值Vi,j,其中i=0,...,D,j=0,...,A。从一系列的Vi,j中筛选出最合适的空间分辨率。通常境况下,空间分辨率为距离目标三维模型最近的位置和虚拟视点在目标位置渲染的图片中,目标三维模型着色所需纹理贴图尺寸最大的角度对应的空间分辨率数值。
可选的,当用户设置了场景类型和可接受费用上限时,还可以根据场景类型和可接受费用上限对目标三维模型的空间分辨率进行调整。
结合图8对目标三维模型的角度分辨率获取方式进行介绍,图8为本申请实施例提供的角度分辨率计算方法的一种流程示意图。
在确定了目标三维模型的空间分辨率后,计算设备通过对待渲染数据所提供的场景中的环境贴图和场景中除目标三维模型外的其他物体构成的光场进行采样,根据目标三维模型的空间分辨率将目标物体划分为若干面片,从目标三维模型表面的任意面片为源点,向周围环境发出预设数量的光线,接收到经由场景中除目标三维模型外的其他物体返回的光线,获得流明值,计算流明值的方差获得环境光采样方差或环境光采样平均值;再从待渲染数据中对目标三维模型表面的任意面片的表面粗糙度和/或金属度进行采样,计算表面粗糙度和/或金属度的方差获得可以表示目标三维模型的表面粗糙度的材质采样方差,将环境光采样方差和材质采样方差输入角度分辨率预测模型,即可获得当下空间分辨率中,最为合适的角度分辨率。
可选的,当用户设置了场景类型和待渲染数据的渲染预算时,还可以根据场景类型和可接受费用上限对目标三维模型的角度分辨率进行调整。
下面将结合示例对根据场景类型和可接受费用上限对目标三维模型的空间分辨率和角度分辨率进行调整作简单的说明。
例如:计算设备在以场景原点为中心的单位立方体范围计算了三个物体的分辨率,由于场景类型选项中,用户选择了车展场景,分辨率计算更倾向于渲染结果为高质量结果,分辨率的计算结果如下:
目标三维模型1:空间分辨率为256x256,角度分辨率为4x16;
目标三维模型2:空间分辨率为4x4,角度分辨率为90x360;
目标三维模型3:空间分辨率为4096x4096,角度分辨率为64x256。
***根据上述目标三维模型的分辨率列表统计总费用为20000人民币,而用户设定的可接受费用上限为10000人名币,需要调整分辨率的值,将费用压缩至可接受费用上限以内。此时就需要结合目标三维模型的材质参数对分辨率再次调整,由于目标三维模型1的为漫反射材质,角度分辨率可以较小,将目标三维模型1的角度分辨率调整至2x8;由于目标三维模型2的材质为高光材质,需要较高的角度分辨率,且空间分辨率已经足够小,故无需进行调整;目标三维模型3为标准表面,需要较高的角度分辨率,故角度分辨率不做调整,而空间分辨率的值较大,可以调整为4096x2048。
调整后的分辨率结果为:
目标三维模型1:空间分辨率为256x256,角度分辨率为2x8;
目标三维模型2:空间分辨率为4x4,角度分辨率为90x360;
目标三维模型3:空间分辨率为4096x2048,角度分辨率为64x256。
其总费用为9999元,低于用户设定的可接受费用上限,符合要求。
606、展示目标三维模型的分辨率列表;
计算设备在计算完成符合要求的空间分辨率和角度分辨率后,向用户展示符合要求的分辨率列表。
607、根据目标三维模型的分辨率列表对目标三维模型进行预渲染获得预渲染结果;
在获得符合要求的空间分辨率和角度分辨率后,对待渲染数据中的目标三维模型进行预渲染,获得预渲染结果。其中,预渲染为当虚拟视点位于指定位置和指定角度时,根据计算得到的空间分辨率和角度分辨率对目标三维模型进行渲染。指定位置和指定角度可以为用户设定的位置和角度,也可以为预先在***中设定好的固定角度和位置,为用户提供有限数量的渲染结果,大大减少了在分辨率调整阶段的数据计算量。
608、用户判断预渲染结果是否满意;
在完成预渲染获得了预渲染结果之后,用户通过查阅与渲染结果,判断预渲染结果中的目标三维模型的渲染结果是否满意。
若不满意,执行步骤609。
若满意,执行步骤610。
609、通过配置接口获取调整信息;
若用户对目标三维模型的渲染结果不满意,计算设备通过配置接口获取用户输入的调整信息。调整信息可以为某一个目标三维模型的空间分辨率或角度分辨率的具体数值。期间,计算设备在获取了用户输入的调整信息后,即时的根据用户输入的调整信息计算并更新渲染花费,以供用户参考。其中,当用户对当前的与渲染结果不满意,希望调高某三维模型的空间分辨率和角度分辨率时,由于调节该三维模型的空间分辨率或角度分辨率的数值将会使渲染花费超出可接受的费用上限,故提示用户调整其他三维模型的空间分辨率或角度分辨率,或调整可接受的费用上限,以保证调整过后的渲染花费仍小于可接受的费用上限。
例如,用户对预渲染结果不满意,觉得目标三维模型3的空间分辨率仍然过高,将目标三维模型3的空间分辨率由4096x2048,调整为2048x2048。根据调整后的目标三维模型的分辨率列表进行计算,得知待渲染数据按照调整后的分辨率列表进行计算需要的渲染花费为5001元,小于可接受的费用上限,执行步骤607。
610、展示目标三维模型的分辨率列表和渲染费用明细。
确定用户对预渲染结果满意后,保存并展示当前目标三维模型的分辨率列表和渲染费用明细,以供用户参考。此处以调整后的目标三维模型的分辨率列表为例,请参阅表1,表1为本申请实施例提供的一种目标三维模型的分辨率列表。
目标三维模型 | 空间分辨率 | 角度分辨率 |
1 | 256x256 | 2x8 |
2 | 4x4 | 90x360 |
3 | 2048x2048 | 64x256 |
表1为本申请实施例提供的一种目标三维模型的分辨率列表
根据该目标三维模型的分辨率列表进行计算获得本次渲染的整体计算量,需要的存储空间以及对应的费用明细,请参阅表2,表2为本申请实施例提供的一种目标三维模型的渲染费用明细。
计算量(-) | 存储量(bytes) | 费用(元) | |
目标三维模型1 | 65536 | 13369344 | 100 |
目标三维模型2 | 16 | 6220992 | 49 |
目标三维模型3 | 4194304 | 824684052480 | 4852 |
总计 | 4259856 | 824703642816 | 5001 |
表2为本申请实施例提供的一种目标三维模型的渲染费用明细
可选的,在向用户展示目标三维模型的分辨率列表和渲染费用明细后,可以导出待渲染数据,并将其上传至云服务器。在收到用户的触发后,完整后续的云渲染工作。
本申请实施例中,通过获取携带目标三维模型的待渲染数据,并从待渲染数据中获取到环境光参数和目标三维模型的材质参数,根据该环境光参数和目标三维模型的材质参数计算得到目标三维模型的角度分辨率,并计算虚拟视点位于目标位置目标角度的目标三维模型的空间分辨率。若用户还设置了可接受费用上限和场景类型,则在计算获得的空间分辨率和角度分辨率的基础上进行调整,获得调整后的空间分辨率和角度分辨率,并根据调整后的空间分辨率和角度分辨率对待渲染数据进行预渲染,获得预渲染结果。用户在查阅了预渲染结果后,根据是否满意决定按照该调整后的空间分辨率和角度分辨率对待渲染数据进行渲染,或对该调整后的空间分辨率和角度分辨率进行调整,直至与渲染结果满意后,再对待渲染数据进行渲染。期间还可以对渲染花费进行计算以供用户参考。这样一来,可以减少用户设置空间分辨率和角度分辨率的步骤,提升了渲染效率。而采用预渲染,为用户提供有限的预渲染结果以供审阅,大大减少了直接进行渲染时,多次渲染带来的数据处理量,提升了全流程的渲染效率。
以上介绍了本申请提出的数据处理的方法流程,下面将结合具体的场景,对本申请提出的数据处理的***和设备进行介绍。
请参阅图9,图9为本申请实施例提供的数据处理的***的一种结构示意图。
该数据处理的***,包括:获取模块901、空间分辨率计算模块902、角度分辨率计算模块903和预渲染模块904;
获取模块901,用于获取待渲染数据,待渲染数据包括目标三维模型;
空间分辨率计算模块902,用于计算虚拟视点位于目标位置和目标角度时目标三维模型的空间分辨率,向渲染模组发送空间分辨率;
角度分辨率计算模块903,用于根据环境光参数和目标三维模型的材质参数确定目标三位模型的角度分辨率,向渲染模组发送参考分辨率;
预渲染模块904,用于根据角度分辨率和空间分辨率对目标三维模型进行预渲染,获得预渲染结果。
本申请实施例中,获取模块901获取待渲染数据,待渲染数据包括目标三维模型;空间分辨率计算模块902计算虚拟视点位于目标位置和目标角度时目标三维模型的空间分辨率,向渲染模组发送空间分辨率;角度分辨率计算模块903根据环境光参数和目标三维模型的材质参数确定目标三位模型的角度分辨率,向渲染模组发送参考分辨率;预渲染模块904根据角度分辨率和空间分辨率对目标三维模型进行预渲染,获得预渲染结果。减少了用户的操作步骤,进而提升了渲染的效率。
在一种可能的实现方式中,该***还包括:
配置接口,用于接收调整信息,所述调整信息指示对所述空间分辨率和/或所述角度分辨率进行调整;
渲染模组,用于根据调整后的空间分辨率和/或调整后的所述角度分辨率,对所述目标三维模型进行渲染。
本申请实施例中,通过提供用于接收调整信息的配置接口,在接收到调整信息后,可以根据调整信息对空间分辨率和/或角度分辨率进行调整。接着根据调整后的空间分辨率和/或调整后的角度分辨率对目标三维模型进行渲染。使用户在查看过预渲染结果后,可以通过配置接口对空间分辨率和角度分辨率进行调整,以实现根据预渲染结果对空间分辨率和角度分辨率进行微调,高效地获得期望的渲染结果。
在一种可能的实现方式中,该***还包括:
价格计算模组,用于根据所述调整后的空间分辨率和/或所述调整后的所述角度分辨率,计算渲染花费;
显示模组,用于显示所述渲染花费。
该方法在调整空间分辨率和/或角度分辨率后,利用价格计算模组计算渲染花费,显示模组显示渲染花费,使得用户可以即时的获知渲染需要进行的花费多少,提升了用户体验。
在一种可能的实现方式中,角度分辨率计算模块,具体用于:
获取所述目标三维模型所在环境的环境光采样方差和所述目标三维模型的材质采样方差;
将所述环境光采样方差和所述目标三维模型的材质采样方差输入角度分辨率预测模型,获得所述角度分辨率。
本申请实施例中,通过获取目标三维模型的环境光采样方差和目标三维模型的材质采样方差,并将环境光采样方差和目标三维模型的材质采样方差输入角度分辨率预测模型,获得角度分辨率,为获得角度分辨率提供了具体的方法。
在一种可能的实现方式中,所述获取模块,还用于获取所述待渲染数据的场景类型;
角度分辨率计算模块,具体用于根据所述环境光参数、所述目标三维模型的材质参数和所述场景类型,确定所述目标三维模型的角度分辨率;
空间分辨率计算模块,具体用于基于所述场景类型,计算所述虚拟视点位于所述目标位置和目标角度时的所述空间分辨率。
本申请实施例中,通过获取待渲染数据的场景类型,并根据该场景类型、环境光参数和目标三维模型的材质参数确定目标三维模型的角度分辨率。根据该场景类型计算虚拟视点位于目标位置和目标角度时的空间分辨率。引入了场景类型对空间分辨率和角度分辨率的影响,可以更精准的计算出合适的角度分辨率和空间分辨率。
在一种可能的实现方式中,所述获取模块,还用于获取所述待渲染数据的渲染预算;
所述角度分辨率计算模块,具体用于根据所述环境光参数、所述目标三维模型的材质参数和所述渲染预算,确定所述目标三维模型的角度分辨率;
所述空间分辨率计算模块,具体用于基于所述渲染预算,计算所述虚拟视点位于所述目标位置和目标角度时的所述空间分辨率。
本申请实施例中,通过获取待渲染数据的渲染预算,并根据该渲染预算、环境光参数和目标三维模型的材质参数确定目标三维模型的角度分辨率。根据该渲染预算计算虚拟视点位于目标位置和目标角度时的空间分辨率。引入渲染预算对空间分辨率和角度分辨率的影响,可以在计算空间分辨率和角度分辨率时,考虑到预算的影响,获得预算内效果最好的渲染结果,提升了渲染的效率,避免了用户在发现渲染花费大于渲染预算后对角度分辨率和空间分辨率进行调整带来的计算量。
在一种可能的实现方式中,所述目标位置为所述相机的活动空间内距离所述目标物体最近的位置,所述目标角度为相机在所述目标位置渲染的图片中,所述目标物体着色所需纹理贴图尺寸最大的角度。
本申请实施例中,目标位置为虚拟视点的活动空间内距离目标物体最近的位置,目标角度为虚拟视点在目标位置渲染的图片中,目标三维模型着色所需纹理贴图尺寸最大的角度。这样的目标位置目标角度可以计算得到更为精准的空间分辨率,进而减少不必要的调整,提升了渲染效率。
在一种可能的实现方式中,所述预渲染模块,具体用于当所述虚拟视点位于指定位置和指定角度时,基于所述空间分辨率和所述角度分辨率对所述目标三维模型进行预渲染,获得所述预渲染结果。
本申请实施例中,虚拟视点位于指定位置指定角度时,基于空间分辨率和角度分辨率对目标三维模型进行预渲染获得预渲染结果。其中指定位置指定角度可以为事先设定好的在虚拟视点的活动范围内的固定位置的固定角度,这样一来,预渲染无需对目标三维模型进行全位置和全角度的渲染,仅给出一个或多个指定位置指定角度的渲染结果以供用户进行预览,在用户预览满意后,再进行全位置全角度的渲染,大大减少了渲染的计算量。
根据本申请实施例,图9所示的装置中的各个模块可以分别或全部合并为一个或若干个另外的模块来构成,或者其中的某个(些)模块还可以再拆分为功能上更小的多个模块来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述模块是基于逻辑功能划分的,在实际应用中,一个模块的功能也可以由多个模块来实现,或者多个模块的功能由一个模块实现。在本申请的其它实施例中,基于电子设备也可以包括其它模块,在实际应用中,这些功能也可以由其它模块协助实现,并且可以由多个模块协作实现。
需要说明的是,各个模块的实现还可以对应参照上述图6所示的方法实施例的相应描述。
请参阅图10,图10为本申请实施例提供的数据处理的设备的一种结构示意图。
该数据处理的设备100可以包括存储器1001、处理器1002。进一步可选的,还可以包含通信接口1003以及总线1004,其中,存储器1001、处理器1002以及通信接口1003通过总线1004实现彼此之间的通信连接。通信接口1003用于与上述数据处理的***进行数据交互。
其中,存储器1001用于提供存储空间,存储空间中可以存储操作***和计算机程序等数据。存储器1001包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmableread only memory,EPROM)、或便携式只读存储器(compact disc read-only memory,CD-ROM)。
处理器1002是进行算术运算和逻辑运算的模块,可以是中央处理器(centralprocessing unit,CPU)、显卡处理器(graphics processing unit,GPU)或微处理器(microprocessor unit,MPU)等处理模块中的一种或者多种的组合。
存储器1001中存储有计算机程序,处理器1002调用存储器1001中存储的计算机程序,以执行上述图6所示的数据处理方法,此处不再赘述。
相应的,处理器1002调用存储器1001中存储的计算机程序,还可以用于执行上述图9所示的数据处理***中的各个模块所执行的方法步骤,其具体内容可参阅上述图9,此处不再赘述。
本申请实施例还提供一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机程序,当上述计算机程序在一个或多个处理器上运行时,可以实现上述图6所示的方法。
本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括计算机程序,当上述计算机程序产品在处理器上运行时,可以实现上述图6所示的方法。
本申请实施例还提供一种芯片,该芯片包括处理器,所述处理器用于执行指令,当该处理器执行所述指令时,可以实现上述图6所示的方法。可选的,该芯片还包括通信接口,该通信接口用于输入信号或输出信号。
本申请实施例还提供一种芯片,该芯片包括处理器,所述处理器用于执行指令,当该处理器执行所述指令时,可以实现上述图6所示的方法。可选的,该芯片还包括通信接口,该通信接口用于输入信号或输出信号。
本申请实施例还提供了一种***,该***包括了至少一个如上述数据处理的设备或芯片。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-onlymemory)、随机存取存储器(RAM,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (18)
1.一种数据处理的方法,其特征在于,包括:
获取待渲染数据,所述待渲染数据包括目标三维模型;
根据环境光参数和所述目标三维模型的材质参数,确定所述目标三维模型的角度分辨率;
计算虚拟视点位于目标位置和目标角度时所述目标三维模型的空间分辨率;
根据所述角度分辨率和所述空间分辨率对所述目标三维模型进行预渲染,获得预渲染结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述空间分辨率和所述角度分辨率对所述目标三维模型进行预渲染后,所述方法还包括:
提供配置接口,所述配置接口用于接收调整信息,所述调整信息指示对所述空间分辨率和/或所述角度分辨率进行调整;
根据调整后的空间分辨率和/或调整后的所述角度分辨率,对所述目标三维模型进行渲染。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据所述调整后的空间分辨率和/或所述调整后的所述角度分辨率,计算渲染花费;
显示所述渲染花费。
4.根据权利要求1至3中任一所述的方法,其特征在于,所述根据环境光参数和所述目标三维模型的材质参数,确定所述目标三维模型的角度分辨率,包括:
获取所述目标三维模型所在环境的环境光采样方差和所述目标三维模型的材质采样方差;
将所述环境光采样方差和所述目标三维模型的材质采样方差输入角度分辨率预测模型,获得所述角度分辨率。
5.根据权利要求1至4中任一所述的方法,其特征在于,所述方法还包括:
获取所述待渲染数据的场景类型;
所述根据环境光参数和所述目标三维模型的材质参数,确定所述目标三维模型的角度分辨率,包括:
根据所述环境光参数、所述目标三维模型的材质参数和所述场景类型,确定所述目标三维模型的角度分辨率;
所述计算虚拟视点位于目标位置目标角度时的空间分辨率,包括:
基于所述场景类型,计算所述虚拟视点位于所述目标位置和目标角度时的所述空间分辨率。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
获取所述待渲染数据的渲染预算;
所述根据环境光参数和所述目标三维模型的材质参数,确定所述目标三维模型的角度分辨率,包括:
根据所述环境光参数、所述目标三维模型的材质参数和所述渲染预算,确定所述目标三维模型的角度分辨率;
所述计算虚拟视点位于目标位置目标角度时的空间分辨率,包括:
基于所述渲染预算,计算所述虚拟视点位于所述目标位置和目标角度时的所述空间分辨率。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述目标位置为所述虚拟视点的活动空间内距离所述目标三维模型最近的位置,所述目标角度为所述虚拟视点在所述目标位置渲染的图片中,所述目标三维模型着色所需纹理贴图尺寸最大的角度。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述根据所述角度分辨率和所述空间分辨率对所述目标三维模型进行预渲染,获得预渲染结果,包括:
当所述虚拟视点位于指定位置和指定角度时,基于所述空间分辨率和所述角度分辨率对所述目标三维模型进行预渲染,获得所述预渲染结果。
9.一种数据处理的设备,其特征在于,包括:获取模块、空间分辨率计算模块、角度分辨率计算模块和预渲染模块;
所述获取模块,用于获取待渲染数据,所述待渲染数据包括目标三维模型;
所述空间分辨率计算模块,用于计算虚拟视点位于目标位置和目标角度时所述目标三维模型的空间分辨率,向所述渲染模组发送所述空间分辨率;
所述角度分辨率计算模块,用于根据环境光参数和所述目标三维模型的材质参数确定所述目标三位模型的角度分辨率,向所述渲染模组发送所述参考分辨率;
所述预渲染模块,用于根据所述角度分辨率和所述空间分辨率对所述目标三维模型进行预渲染,获得预渲染结果。
10.根据权利要求9所述的设备,其特征在于,所述***还包括:
配置接口,用于接收调整信息,所述调整信息指示对所述空间分辨率和/或所述角度分辨率进行调整;
渲染模组,用于根据调整后的空间分辨率和/或调整后的所述角度分辨率,对所述目标三维模型进行渲染。
11.根据权利要求10所述的设备,其特征在于,所述***还包括:
价格计算模组,用于根据所述调整后的空间分辨率和/或所述调整后的所述角度分辨率,计算渲染花费;
显示模组,用于显示所述渲染花费。
12.根据权利要求9至11任一所述的设备,其特征在于,角度分辨率计算模块,具体用于:
获取所述目标三维模型所在环境的环境光采样方差和所述目标三维模型的材质采样方差;
将所述环境光采样方差和所述目标三维模型的材质采样方差输入角度分辨率预测模型,获得所述角度分辨率。
13.根据权利要求9至12中任一所述的设备,其特征在于,所述获取模块,还用于获取所述待渲染数据的场景类型;
角度分辨率计算模块,具体用于根据所述环境光参数、所述目标三维模型的材质参数和所述场景类型,确定所述目标三维模型的角度分辨率;
空间分辨率计算模块,具体用于基于所述场景类型,计算所述虚拟视点位于所述目标位置和目标角度时的所述空间分辨率。
14.根据权利要求9至13任一项所述的设备,其特征在于,所述获取模块,还用于获取所述待渲染数据的渲染预算;
所述角度分辨率计算模块,具体用于根据所述环境光参数、所述目标三维模型的材质参数和所述渲染预算,确定所述目标三维模型的角度分辨率;
所述空间分辨率计算模块,具体用于基于所述渲染预算,计算所述虚拟视点位于所述目标位置和目标角度时的所述空间分辨率。
15.根据权利要求9至14任一项所述的设备,其特征在于,所述目标位置为所述相机的活动空间内距离所述目标物体最近的位置,所述目标角度为相机在所述目标位置渲染的图片中,所述目标物体着色所需纹理贴图尺寸最大的角度。
16.根据权利要求9至15任一项所述的设备,其特征在于,所述预渲染模块,具体用于当所述虚拟视点位于指定位置和指定角度时,基于所述空间分辨率和所述角度分辨率对所述目标三维模型进行预渲染,获得所述预渲染结果。
17.一种数据处理的设备,其特征在于,包括一个或多个处理器,所述一个或多个处理器和存储器耦合,所述存储器存储有程序,当所述存储器存储的程序指令被所述一个或多个处理器执行时实现权利要求1至8中任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上运行时,使计算机执行权利要求1至8中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210379388.5A CN116958386A (zh) | 2022-04-12 | 2022-04-12 | 一种数据处理的方法、***和设备 |
PCT/CN2022/143167 WO2023197689A1 (zh) | 2022-04-12 | 2022-12-29 | 一种数据处理的方法、***和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210379388.5A CN116958386A (zh) | 2022-04-12 | 2022-04-12 | 一种数据处理的方法、***和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116958386A true CN116958386A (zh) | 2023-10-27 |
Family
ID=88328772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210379388.5A Pending CN116958386A (zh) | 2022-04-12 | 2022-04-12 | 一种数据处理的方法、***和设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116958386A (zh) |
WO (1) | WO2023197689A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101334188B1 (ko) * | 2011-11-25 | 2013-11-28 | 삼성전자주식회사 | 볼륨 데이터의 렌더링 장치 및 방법 |
CN107516335A (zh) * | 2017-08-14 | 2017-12-26 | 歌尔股份有限公司 | 虚拟现实的图形渲染方法和装置 |
CN114255315A (zh) * | 2020-09-25 | 2022-03-29 | 华为云计算技术有限公司 | 一种渲染方法、装置及设备 |
CN112370784B (zh) * | 2021-01-15 | 2021-04-09 | 腾讯科技(深圳)有限公司 | 虚拟场景显示方法、装置、设备以及存储介质 |
CN113888392A (zh) * | 2021-08-27 | 2022-01-04 | 清华大学 | 一种图像渲染方法、装置、电子设备及存储介质 |
CN114299216A (zh) * | 2021-12-29 | 2022-04-08 | 网易(杭州)网络有限公司 | 灯光贴图分辨率的确定方法、装置、电子设备及存储介质 |
-
2022
- 2022-04-12 CN CN202210379388.5A patent/CN116958386A/zh active Pending
- 2022-12-29 WO PCT/CN2022/143167 patent/WO2023197689A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023197689A1 (zh) | 2023-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11551418B2 (en) | Image rendering of laser scan data | |
AU2014363213B2 (en) | Image rendering of laser scan data | |
US9508191B2 (en) | Optimal point density using camera proximity for point-based global illumination | |
EP4213102A1 (en) | Rendering method and apparatus, and device | |
JPH0757117A (ja) | テクスチャマップへの索引を生成する方法及びコンピュータ制御表示システム | |
CN111862295B (zh) | 一种虚拟对象的展示方法、装置、设备和存储介质 | |
CN112184873B (zh) | 分形图形创建方法、装置、电子设备和存储介质 | |
CN116485984B (zh) | 全景影像车辆模型全局光照模拟方法、装置、设备及介质 | |
CN110648274A (zh) | 鱼眼图像的生成方法及装置 | |
US9401044B1 (en) | Method for conformal visualization | |
US20180213215A1 (en) | Method and device for displaying a three-dimensional scene on display surface having an arbitrary non-planar shape | |
CN116758208A (zh) | 全局光照渲染方法、装置、存储介质及电子设备 | |
US6975319B1 (en) | System, method and article of manufacture for calculating a level of detail (LOD) during computer graphics processing | |
RU2295772C1 (ru) | Способ генерирования текстуры в реальном масштабе времени и устройство для его реализации | |
JP4584956B2 (ja) | グラフィックスプロセッサおよび描画処理方法 | |
CN116664752B (zh) | 基于图案化光照实现全景显示的方法、***及存储介质 | |
US20230206567A1 (en) | Geometry-aware augmented reality effects with real-time depth map | |
KR100489572B1 (ko) | 화상 처리 방법 | |
US20210090322A1 (en) | Generating and Modifying Representations of Objects in an Augmented-Reality or Virtual-Reality Scene | |
KR101118597B1 (ko) | 모바일용 컴퓨터 그래픽 랜더링 방법 및 시스템 | |
CN116958386A (zh) | 一种数据处理的方法、***和设备 | |
JP2973413B2 (ja) | コンピュータグラフィックスの照度計算方法及び表示装置 | |
US20230090732A1 (en) | System and method for real-time ray tracing in a 3d environment | |
Karlsson et al. | Rendering Realistic Augmented Objects Using a Image Based Lighting Approach | |
CN115731331A (zh) | 一种对应用进行渲染的方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |