一种天空光投影计算方法及装置与流程
未命名
08-09
阅读:123
评论:0
1.本发明涉及计算机辅助设计技术领域,具体涉及一种天空光投影计算方法及装置,
背景技术:
2.在现代建筑数据化、信息化产品中,随着人们对美感的不断提升,人们除了关注数字化建筑结构本身外,也对数字化建筑产品的展示效果提出了更高的要求。从而,数字化建筑真实感渲染效果也就变得相当的重要。那么从数字化建筑渲染分类来看,自然光效果是一种非常常见的渲染。
3.在自然光效果渲染模拟时,人们一般会把自然光拆分成太阳光和天空光两部分。太阳光主要是指来自太阳所有频谱的电磁辐射。在地球,阳光显而易见是当太阳在地平线之上,经过地球大气层过滤照射到地球表面的太阳辐射。天空光主要是指太阳光在地球大气层中反复反射及空间介质的作用,形成是柔和漫散射光。
4.在用图形渲染模拟自然光效果时,人们一般将太阳光用一盏平行光模拟,也就是说将太阳光假设是一盏离被照射物无穷远的光源发出来的光。基于这种假设,实现太阳光渲染模拟就相对比较简单了。相比太阳光来说真实天空光渲染模拟就要复杂很多了。因为天空光是一种柔和漫散射光,它是来自四面八方的光源投射出来的效果。
5.模拟真实天空光渲染复杂的点是如何计算天空光的投影,在现代光栅化图形渲染中,一般只会模拟渲染天空光颜色,不考虑天空的投影。因此如何确定天空光的投影成为模拟真实天空光渲染亟待解决的问题。
技术实现要素:
6.有鉴于此,本发明实施例提供了一种天空光投影计算方法及装置以解决现有技术中难以确定天空光投影的问题。
7.根据第一方面,本发明实施例提供了一种天空光投影计算方法,包括:
8.在半球表面设置若干光源;
9.基于每个光源对应的灯光空间对目标场景进行渲染,得到目标场景中模型对象与不同光源对应的深度纹理图像;
10.获取所述模型对象的在模型空间的位置以及各个光源对应的灯光空间与模型空间的转换矩阵;
11.基于各个光源对应的灯光空间与模型空间的转换矩阵,将所述位置转换至各个光源对应的灯光空间,得到所述模型对象在不同光源对应灯光空间的深度信息;
12.基于所述深度信息与所述深度纹理图像的对比结果,确定所述模型对象的天空光投影。
13.可选地,所述在半球表面设置若干光源,包括:
14.获取半球表面需要设置光源的数量;
15.基于所述半球表面对应的球面半径及半球表面需要设置光源的数量,确定各个光源在所述半球表面的设置位置。
16.可选地,所述基于所述半球表面对应的球面半径及半球表面需要设置光源的数量,确定各个光源在所述半球表面的设置位置,包括:
17.基于所述球面半径按照加入黄金分割比的斐波那契算法依次计算各个光源在所述半球表面的设置位置。
18.可选地,所述基于每个光源对应的灯光空间对目标场景进行渲染,得到目标场景中模型对象与不同光源对应的深度纹理图像,包括:
19.基于当前光源的设置位置对所述目标场景进行渲染,得到目标场景中模型对象与所述当前光源对应的深度纹理图像。
20.可选地,所述基于所述深度信息与所述深度纹理图像的对比结果,确定所述模型对象的天空光投影,包括:
21.获取所述模型对象在当前光源对应的深度纹理图像以及深度信息中的深度值;
22.基于所述模型对象在当前光源对应的深度纹理图像以及深度信息中的深度值,确定所述模型对象在当前光源的灯光空间中的阴影区域;
23.基于所述模型对象在不同光源的灯光空间中的阴影区域确定所述模型对象的天空光投影。
24.可选地,所述基于所述模型对象在当前光源对应的深度纹理图像以及深度信息中的深度值,确定所述模型对象在当前光源的灯光空间中的阴影区域,包括:
25.获取所述模型对象上的当前点在当前光源对应的深度纹理图像中的第一深度值以及深度信息中的第二深度值;
26.判断所述第一深度值是否小于所述第二深度值;
27.当所述第一深度值小于所述第二深度值时,将所述当前点确定为阴影点;
28.基于所述模型对象上所有的阴影点确定所述模型对象在当前光源的灯光空间中的阴影区域。
29.可选地,所述基于所述模型对象在不同光源的灯光空间中的阴影区域确定所述模型对象的天空光投影,包括:
30.将所述模型对象在不同光源的灯光空间中的阴影区域进行分组;
31.依次计算每一组中阴影区域的重叠区域;
32.基于当前组中阴影区域的重叠区域,对上一组对应的上一重叠区域进行更新,得到当前组对应的当前重叠区域;
33.基于最后一组对应的最后重叠区域确定所述模型对象的天空光投影。
34.根据第二方面,本发明实施例提供了一种天空光投影计算装置,包括:
35.第一处理模块,用于在半球表面设置若干光源;
36.第二处理模块,用于基于每个光源对应的灯光空间对目标场景进行渲染,得到目标场景中模型对象与不同光源对应的深度纹理图像;
37.第三处理模块,用于获取所述模型对象的在模型空间的位置以及各个光源对应的灯光空间与模型空间的转换矩阵;
38.第四处理模块,用于基于各个光源对应的灯光空间与模型空间的转换矩阵,将所
述位置转换至各个光源对应的灯光空间,得到所述模型对象在不同光源对应灯光空间的深度信息;
39.第五处理模块,用于基于所述深度信息与所述深度纹理图像的对比结果,确定所述模型对象的天空光投影。
40.根据第三方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令被处理器执行时实现本发明第一方面及其任意一种可选方式所述的方法。
41.根据第四方面,本发明实施例提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行本发明第一方面及其任意一种可选方式所述的方法。
42.本发明技术方案,具有如下优点:
43.本发明实施例提供了一种天空光投影计算方法及装置,通过在半球表面设置若干光源;基于每个光源对应的灯光空间对目标场景进行渲染,得到目标场景中模型对象与不同光源对应的深度纹理图像;获取模型对象的在模型空间的位置以及各个光源对应的灯光空间与模型空间的转换矩阵;基于各个光源对应的灯光空间与模型空间的转换矩阵,将位置转换至各个光源对应的灯光空间,得到模型对象在不同光源对应灯光空间的深度信息;基于深度信息与深度纹理图像的对比结果,确定模型对象的天空光投影。从而通过在半球表面设置若干光源来模拟天空光,将天空光离散化为若干光源,然后通过比较模型对象在每个光源的深度信息与深度纹理图像得到模型对象的天空光投影,从而实现了带投影的天空光效果,使得对模型对象的渲染效果更加接近于真实天空光的效果。
附图说明
44.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
45.图1为本发明实施例中天空光投影计算方法的流程图;
46.图2为本发明实施例中天空光投影计算装置的结构示意图;
47.图3为本发明实施例中的电子设备的结构示意图。
具体实施方式
48.下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
49.此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
50.在自然光效果渲染模拟时,人们一般会把自然光拆分成太阳光和天空光两部分。太阳光主要是指来自太阳所有频谱的电磁辐射。在地球,阳光显而易见是当太阳在地平线之上,经过地球大气层过滤照射到地球表面的太阳辐射。天空光主要是指太阳光在地球大
气层中反复反射及空间介质的作用,形成是柔和漫散射光。
51.在用图形渲染模拟自然光效果时,人们一般将太阳光用一盏平行光模拟,也就是说将太阳光假设是一盏离被照射物无穷远的光源发出来的光。基于这种假设,实现太阳光渲染模拟就相对比较简单了。相比太阳光来说真实天空光渲染模拟就要复杂很多了。因为天空光是一种柔和漫散射光,它是来自四面八方的光源投射出来的效果。
52.模拟真实天空光渲染复杂的点是如何计算天空光的投影,在现代光栅化图形渲染中,一般只会模拟渲染天空光颜色,不考虑天空的投影。因此如何确定天空光的投影成为模拟真实天空光渲染亟待解决的问题。
53.基于上述问题,本发明实施例提供了一种天空光投影计算方法,如图1所示,该天空光投影计算方法具体包括如下步骤:
54.步骤s101:在半球表面设置若干光源。
55.其中,半球表面对应球面半径的大小以及光源的设置数量可以根据用户所需的渲染效果及渲染速率的要求进行灵活的设置,在本发明实施例中是以球面半径为10cm,光源数量为1000个灯为例进行的说明,本发明并不以此为限。具体地,球面半径越大、半球表面设置的光源数量越多最终渲染效果越接近真实天空光,但是渲染性能将受影响,耗时较长,反之,球面半径越小、半球表面设置的光源数量越少渲染性能越好,渲染速率快,但是最终渲染效果会变差。
56.步骤s102:基于每个光源对应的灯光空间对目标场景进行渲染,得到目标场景中模型对象与不同光源对应的深度纹理图像。
57.其中,目标场景为真实场景如:教室、卧室等,在目标场景中的模型对象为在真实场景中的物体,如:黑板、床等,在一个目标场景中可以包括一个或多个模型对象。
58.具体地,通过基于当前光源的设置位置对目标场景进行渲染,得到目标场景中模型对象与当前光源对应的深度纹理图像。在实际应用中,通过以当前光源的设置位置来模拟场景渲染时摄像机所在位置,来模拟一次摄像机完整的场景渲染过程,利用指定着色器进行渲染即可得到一张深度纹理,具体渲染过程为现有技术的内容在此不再进行赘述。
59.步骤s103:获取模型对象的在模型空间的位置以及各个光源对应的灯光空间与模型空间的转换矩阵。
60.具体地,模型对象上的每一个点都对应一个模型空间的坐标,每个光源对应的灯光空间与模型空间的转换矩阵描述的是模型空间到灯光空间的坐标转换关系,具体的计算方式可参照现有技术中的方法进行计算,在此不再进行赘述。
61.步骤s104:基于各个光源对应的灯光空间与模型空间的转换矩阵,将位置转换至各个光源对应的灯光空间,得到模型对象在不同光源对应灯光空间的深度信息。
62.其中,模型对象上任意一点由模型空间的坐标转换为灯光空间的坐标即为该点在灯光空间的深度值。
63.步骤s105:基于深度信息与深度纹理图像的对比结果,确定模型对象的天空光投影。
64.具体地,模型对象上的任意一点如果其在灯光空间的深度值大于其在深度纹理图像的深度值,则说明该点在灯光空间中被遮挡,属于阴影部分。
65.通过执行上述步骤,本发明实施例提供的天空光投影计算方法,通过在半球表面
设置若干光源来模拟天空光,将天空光离散化为若干光源,然后通过比较模型对象在每个光源的深度信息与深度纹理图像得到模型对象的天空光投影,从而实现了带投影的天空光效果,使得对模型对象的渲染效果更加接近于真实天空光的效果。
66.具体地,在一实施例中,上述步骤s101具体包括如下步骤:
67.步骤s201:获取半球表面需要设置光源的数量。
68.其中,在本发明实施例中光源的设置数量为1000。
69.步骤s202:基于半球表面对应的球面半径及半球表面需要设置光源的数量,确定各个光源在半球表面的设置位置。
70.具体地,上述步骤s202通过基于球面半径按照加入黄金分割比的斐波那契算法依次计算各个光源在半球表面的设置位置。
71.为了更加真实的模拟天空光,需要在球面分布均匀、密集的光源,在本发明实施例中通过将黄金分割比加入到斐波那契数列中,利用球面斐波那契点集近似公式,计算出球面每个光源设置位置的坐标。从而进一步保证对照天空光投影效果更加接近真实的天空光,给用户提供更加真实的视觉体验。
72.具体的计算公式为,设球面半径为1,一共要取n个点布置光源,则第n个点的坐标由下列公式给出:
73.zn=(2n-1)/n-1
ꢀꢀꢀ
(1)
[0074][0075][0076]
其中,常数φ为黄金分割比。
[0077]
具体地,在一实施例中,上述步骤s105具体包括如下步骤:
[0078]
步骤s301:获取模型对象在当前光源对应的深度纹理图像以及深度信息中的深度值。
[0079]
步骤s302:基于模型对象在当前光源对应的深度纹理图像以及深度信息中的深度值,确定模型对象在当前光源的灯光空间中的阴影区域。
[0080]
具体地,上述步骤s302具体通过获取模型对象上的当前点在当前光源对应的深度纹理图像中的第一深度值以及深度信息中的第二深度值;判断第一深度值是否小于第二深度值;当第一深度值小于第二深度值时,将当前点确定为阴影点;基于模型对象上所有的阴影点确定模型对象在当前光源的灯光空间中的阴影区域。
[0081]
通过把物体上的饿一点从模型空间转换到灯光空间中,得到的深度值z拿去和深度纹理中的值比较。如果当前z大于深度纹理中保存的值就说明这个电在灯光空间里被遮挡了,是阴影部分。从而通过比较深度值可以准确确定每个光源对应的阴影区域。
[0082]
步骤s303:基于模型对象在不同光源的灯光空间中的阴影区域确定模型对象的天空光投影。
[0083]
具体地,上述步骤s303具体通过将模型对象在不同光源的灯光空间中的阴影区域进行分组;依次计算每一组中阴影区域的重叠区域;基于当前组中阴影区域的重叠区域,对上一组对应的上一重叠区域进行更新,得到当前组对应的当前重叠区域;基于最后一组对应的最后重叠区域确定模型对象的天空光投影。
[0084]
从而通过对模型对象在不同光源的灯光空间中的阴影区域进行分组计算的方式,进一步提高了计算速度,同时避免单帧计算容易出现输出带有锯齿的图片的问题,进一步改善最终的渲染效果,使得渲染结果更加接近真实天空光。
[0085]
下面将结合具体应用示例,对本发明实施例中天空光投影的具体计算过程进行详细的说明。
[0086]
在实际应用中,由于半球表面布置的光源数量比较多,假设需要的光源samples数量为1000。由于完整光栅化渲染一帧需要处理很多渲染pass比如:prepass(预生成z-buffer阶段)、shadowdepthpass(深度阴影生成阶段)、basepass(生成g-buffer阶段)、lightpass(灯光计算阶段)、postprocesspass(后处理阶段)等,上述各个pass均为现有技术,在此不再进行赘述。真正和灯光阴影计算有关系的pass就是shadowdepthpass(深度阴影生成阶段),如果用多帧计算方案(即每帧只计算一张光源的阴影部分)的话,势必有很多浪费的pass计算。如果采用在单帧内计算的方案的话,虽然整体的计算速度是提升了很多,但是由于单帧计算就无法使用taa算法抗锯齿了,使得最终输出带锯齿的图片。因此,在本发明实施例中采用多帧计算,但是一帧内不仅仅计算一个光源的阴影部分,而是分组同步计算多个光源的阴影部分,然后依次计算每一组中阴影区域的重叠区域,并采用taa算法进行抗锯齿处理,与上一组的结果进行叠加(比如1000个光源分10帧计算,每帧计算100个光源),通过首先开辟出一块内存空间来储存历史数据,每帧从半球空间采样100个光源采样点,并将每帧的计算结果与历史数据叠加,再将叠加后的数据更新历史数据。等到第10帧计算完成后,将历史数据更新成最终的效果。从而通过将天空光离散成若干光源的方法,实现带投影的天空光效果。
[0087]
具体地,上述taa算法,全称temporal anti-aliasing(帧间抗锯齿技术),通过加权混合相邻多帧达到抗锯齿效果,从理论上解释就是将计算量分摊至多帧的超采样。每帧将单帧计算结果与历史帧加权平均,并将加权平均后的数据更新历史帧,最终起到抗锯齿的作用。关于taa算法的具体实现过程参见现有技术的相关描述,在此不再进行赘述。
[0088]
通过执行上述步骤,本发明实施例提供的天空光投影计算方法,通过在半球表面设置若干光源来模拟天空光,将天空光离散化为若干光源,然后通过比较模型对象在每个光源的深度信息与深度纹理图像得到模型对象的天空光投影,从而实现了带投影的天空光效果,使得对模型对象的渲染效果更加接近于真实天空光的效果。
[0089]
本发明实施例还提供了一种天空光投影计算装置,如图2所示,该天空光投影计算装置具体包括:
[0090]
第一处理模块101,用于在半球表面设置若干光源。详细内容参见上述方法实施例中步骤s101的相关描述,在此不再进行赘述。
[0091]
第二处理模块102,用于基于每个光源对应的灯光空间对目标场景进行渲染,得到目标场景中模型对象与不同光源对应的深度纹理图像。详细内容参见上述方法实施例中步骤s102的相关描述,在此不再进行赘述。
[0092]
第三处理模块103,用于获取模型对象的在模型空间的位置以及各个光源对应的灯光空间与模型空间的转换矩阵。详细内容参见上述方法实施例中步骤s103的相关描述,在此不再进行赘述。
[0093]
第四处理模块104,用于基于各个光源对应的灯光空间与模型空间的转换矩阵,将
位置转换至各个光源对应的灯光空间,得到模型对象在不同光源对应灯光空间的深度信息。详细内容参见上述方法实施例中步骤s104的相关描述,在此不再进行赘述。
[0094]
第五处理模块105,用于基于深度信息与深度纹理图像的对比结果,确定模型对象的天空光投影。详细内容参见上述方法实施例中步骤s105的相关描述,在此不再进行赘述。
[0095]
上述各个模块的更进一步的功能描述与上述对应方法实施例相同,在此不再赘述。
[0096]
通过上述各个组成部分的协同合作,本发明实施例提供的天空光投影计算装置,通过在半球表面设置若干光源来模拟天空光,将天空光离散化为若干光源,然后通过比较模型对象在每个光源的深度信息与深度纹理图像得到模型对象的天空光投影,从而实现了带投影的天空光效果,使得对模型对象的渲染效果更加接近于真实天空光的效果。
[0097]
本发明实施例还提供了一种电子设备,如图3所示,该电子设备可以包括处理器901和存储器902,其中处理器901和存储器902可以通过总线或者其他方式连接,图3中以通过总线连接为例。
[0098]
处理器901可以为中央处理器(central processing unit,cpu)。处理器901还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
[0099]
存储器902作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的方法所对应的程序指令/模块。处理器901通过运行存储在存储器902中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法。
[0100]
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需要的应用程序;存储数据区可存储处理器901所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至处理器901。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0101]
一个或者多个模块存储在存储器902中,当被处理器901执行时,执行上述方法。
[0102]
上述电子设备具体细节可以对应参阅上述方法实施例中对应的相关描述和效果进行理解,此处不再赘述。
[0103]
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid-state drive,ssd)等;存储介质还可以包括上述种类的存储器的组合。
[0104]
以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体
实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。
技术特征:
1.一种天空光投影计算方法,其特征在于,包括:在半球表面设置若干光源;基于每个光源对应的灯光空间对目标场景进行渲染,得到目标场景中模型对象与不同光源对应的深度纹理图像;获取所述模型对象的在模型空间的位置以及各个光源对应的灯光空间与模型空间的转换矩阵;基于各个光源对应的灯光空间与模型空间的转换矩阵,将所述位置转换至各个光源对应的灯光空间,得到所述模型对象在不同光源对应灯光空间的深度信息;基于所述深度信息与所述深度纹理图像的对比结果,确定所述模型对象的天空光投影。2.根据权利要求1所述的方法,其特征在于,所述基于所述深度信息与所述深度纹理图像的对比结果,确定所述模型对象的天空光投影,包括:获取所述模型对象在当前光源对应的深度纹理图像以及深度信息中的深度值;基于所述模型对象在当前光源对应的深度纹理图像以及深度信息中的深度值,确定所述模型对象在当前光源的灯光空间中的阴影区域;基于所述模型对象在不同光源的灯光空间中的阴影区域确定所述模型对象的天空光投影。3.根据权利要求2所述的方法,其特征在于,所述基于所述模型对象在当前光源对应的深度纹理图像以及深度信息中的深度值,确定所述模型对象在当前光源的灯光空间中的阴影区域,包括:获取所述模型对象上的当前点在当前光源对应的深度纹理图像中的第一深度值以及深度信息中的第二深度值;判断所述第一深度值是否小于所述第二深度值;当所述第一深度值小于所述第二深度值时,将所述当前点确定为阴影点;基于所述模型对象上所有的阴影点确定所述模型对象在当前光源的灯光空间中的阴影区域。4.根据权利要求2所述的方法,其特征在于,所述基于所述模型对象在不同光源的灯光空间中的阴影区域确定所述模型对象的天空光投影,包括:将所述模型对象在不同光源的灯光空间中的阴影区域进行分组;依次计算每一组中阴影区域的重叠区域;基于当前组中阴影区域的重叠区域,对上一组对应的上一重叠区域进行更新,得到当前组对应的当前重叠区域;基于最后一组对应的最后重叠区域确定所述模型对象的天空光投影。5.根据权利要求1所述的方法,其特征在于,所述在半球表面设置若干光源,包括:获取半球表面需要设置光源的数量;基于所述半球表面对应的球面半径及半球表面需要设置光源的数量,确定各个光源在所述半球表面的设置位置。6.根据权利要求5所述的方法,其特征在于,所述基于所述半球表面对应的球面半径及半球表面需要设置光源的数量,确定各个光源在所述半球表面的设置位置,包括:
基于所述球面半径按照加入黄金分割比的斐波那契算法依次计算各个光源在所述半球表面的设置位置。7.根据权利要求1所述的方法,其特征在于,所述基于每个光源对应的灯光空间对目标场景进行渲染,得到目标场景中模型对象与不同光源对应的深度纹理图像,包括:基于当前光源的设置位置对所述目标场景进行渲染,得到目标场景中模型对象与所述当前光源对应的深度纹理图像。8.一种天空光投影计算装置,其特征在于,包括:第一处理模块,用于在半球表面设置若干光源;第二处理模块,用于基于每个光源对应的灯光空间对目标场景进行渲染,得到目标场景中模型对象与不同光源对应的深度纹理图像;第三处理模块,用于获取所述模型对象的在模型空间的位置以及各个光源对应的灯光空间与模型空间的转换矩阵;第四处理模块,用于基于各个光源对应的灯光空间与模型空间的转换矩阵,将所述位置转换至各个光源对应的灯光空间,得到所述模型对象在不同光源对应灯光空间的深度信息;第五处理模块,用于基于所述深度信息与所述深度纹理图像的对比结果,确定所述模型对象的天空光投影。9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机指令,所述计算机指令被处理器执行时实现如权利要求1-7中任一项所述的方法。10.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,以执行如权利要求1-7中任一项所述方法。
技术总结
本发明提供了一种天空光投影计算方法及装置,该方法包括:在半球表面设置若干光源;基于每个光源对应的灯光空间对目标场景进行渲染,得到目标场景中模型对象与不同光源对应的深度纹理图像;获取模型对象的在模型空间的位置以及各个光源对应的灯光空间与模型空间的转换矩阵;基于转换矩阵,将位置转换至各个光源对应的灯光空间,得到模型对象在不同光源对应灯光空间的深度信息;基于深度信息与深度纹理图像的对比结果,确定模型对象的天空光投影。通过在半球表面设置若干光源来模拟天空光,将天空光离散化为若干光源,比较模型对象在每个光源的深度信息与深度纹理图像得到模型对象的天空光投影,从而实现了带投影的天空光效果。光效果。光效果。
技术研发人员:郑卫福
受保护的技术使用者:广联达科技股份有限公司
技术研发日:2022.01.27
技术公布日:2023/8/8
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种LED灯生产装配设备的制作方法 下一篇:一种组合式折叠铁箱的制作方法
