虚拟场景光源生成方法、装置、设备以及存储介质与流程
未命名
09-29
阅读:100
评论: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.数据获取模块,用于获取虚拟光源参数与虚拟场景展示画面中的指定照亮位置;
其中,虚拟场景展示画面由虚拟摄像机对三维虚拟场景进行拍摄得到;
46.区域确定模块,用于确定出指定照亮位置在三维虚拟场景中对应的指定照亮区域;
47.向量计算模块,用于确定出指定照亮区域所在平面的法线向量,以及指定照亮区域和虚拟摄像机之间的入镜光线向量;
48.直线计算模块,用于将入镜光线向量相对于法线向量的对称向量的所在直线,作为虚拟光源的光源中心所在直线;其中,光源中心所在直线穿过指定照亮区域;
49.光源生成模块,用于基于光源中心所在直线和虚拟光源参数,在三维虚拟场景中生成虚拟光源。
50.第三方面,本技术还提供了一种虚拟场景光源生成设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器调用时,执行第一方面提供的虚拟场景光源生成方法。
51.第四方面,本技术还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如第一方面提供的虚拟场景光源生成方法。
52.本技术实施例提出的一种虚拟场景光源生成方法,方法包括:获取虚拟光源参数与虚拟场景展示画面中的指定照亮位置;确定出指定照亮位置在三维虚拟场景中对应的指定照亮区域;确定出指定照亮区域所在平面的法线向量,以及指定照亮区域和虚拟摄像机之间的入镜光线向量;将入镜光线向量相对于法线向量的对称向量的所在直线,作为虚拟光源的光源中心所在直线;基于光源中心所在直线和虚拟光源参数,在三维虚拟场景中生成虚拟光源。
53.由此可见,本技术实施例在进行虚拟场景的光源搭建时,通过建模人员在虚拟摄像机所拍摄的虚拟场景展示画面中指定一指定照亮位置,然后以三维虚拟场景中指定照亮位置对应的指定照亮区域为反射光斑所在位置,依据光线反射原理,利用虚拟摄像机的虚拟镜头接收的入镜光线向量计算出光源中心所在直线,从而可以在不移动当前虚拟摄像机的情况下,结合虚拟光源参数自动在虚拟场景中生成可以照亮指定照亮区域的虚拟光源,进而提高虚拟场景中生成虚拟光源的效率。
附图说明
54.图1为本技术虚拟场景光源生成设备结构示意图;
55.图2为本技术虚拟场景光源生成方法第一实施例的流程示意图;
56.图3为本技术入镜光线向量、法线向量和对称向量的几何关系示意图;
57.图4为本技术虚拟场景光源生成方法第二实施例的流程示意图;
58.图5为本技术虚拟场景光源生成装置的模块示意图。
59.本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
60.应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
61.在游戏、动画视频、场景模拟等虚拟场景中,为了更加真实,不仅仅包括虚拟物体,
还需要构建虚拟光源,从而模拟光源照亮虚拟物体的效果。如在虚拟游戏场景中,往往会在该虚拟游戏场景内模拟出现实场景中的众多物体,比如,模拟出人物、风景、建筑等。且为了让虚拟游戏场景中的各个对象看起来更加真实,还会生成虚拟光源,以模拟光源照亮场景中各个对象,从而使得最终渲染得到的虚拟场景较为真实。
62.但是,相关技术中,为虚拟场景添加虚拟光源时,需要反复移动虚拟光源在虚拟场景中的具体位置、光线传播方向等参数,甚至于需要在此过程中不断地调整虚拟摄像机的视野,才能实现将虚拟场景中的指定位置照亮的目的。
63.为此,本技术提供了一种解决方案,通过建模人员在虚拟摄像机所拍摄的虚拟场景展示画面中指定一指定照亮位置,然后三维虚拟场景中指定照亮位置对应的指定照亮区域为反射光斑所在位置,依据光线反射原理,利用虚拟摄像机的虚拟镜头接收的入镜光线向量计算出光源中心所在直线,从而可以在不移动当前虚拟摄像机的情况下,自动在虚拟场景中生成可以照亮指定照亮位置的虚拟光源,进而提高虚拟场景中生成虚拟光源的效率。
64.下面结合一些具体实施例进一步阐述本技术的发明构思。
65.参照图1,图1为本技术实施例方案涉及的硬件运行环境的虚拟场景光源生成设备的结构示意图。
66.如图1所示,该虚拟场景光源生成设备可以包括:处理器1001,例如cpu,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括语音拾取模块,如麦克风阵列等,可选用户接口1003还可以是显示屏(display)、输入单元比如键盘(keyboard)等。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
67.可以理解的是,虚拟场景光源生成设备还可以包括网络接口1004,网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。可选地,虚拟场景光源生成设备还可以包括rf(radio frequency,射频)电路,传感器、音频电路、wifi模块等等。
68.本领域技术人员可以理解,图1中示出的虚拟场景光源生成设备结构并不构成对虚拟场景光源生成设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
69.基于上述虚拟场景光源生成设备的硬件结构但不限于上述硬件结构,本技术提供一种虚拟场景光源生成方法第一实施例。参照图2,图2示出了本技术虚拟场景光源生成方法第一实施例的流程示意图。
70.需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
71.本实施例中,虚拟场景光源生成方法包括:
72.步骤s100、获取虚拟光源参数与虚拟场景展示画面中的指定照亮位置。
73.其中,虚拟场景展示画面由虚拟摄像机对三维虚拟场景进行拍摄得到。
74.本实施例中,虚拟场景光源生成方法的执行主体为虚拟场景光源生成设备,该虚拟场景光源生成设备可以是智能手机、笔记本电脑、个人数字助理(pda)、平板电脑(pad)等用户设备(userequipment,ue),或者手持设备、车载设备、可穿戴设备、计算设备或连接到
无线调制解调器的其它处理设备以及移动台(mobile station,ms)等。其中,虚拟场景光源生成设备具有显示屏,用于展示虚拟场景展示画面。虚拟场景光源生成设备还可具有鼠标和/键盘等外围设备,以便于建模人员输入相应的数据,如虚拟光源参数等。或者,当显示屏305是触摸显示屏时,显示屏还具有采集在显示屏的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器进行处理。此时,显示屏还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘,以便于建模人员输入虚拟光源参数,或者建模人员在虚拟场景展示画面中的指定照亮位置。
75.具体的,三维虚拟场景提供有一三维虚拟空间,在该三维虚拟空间中具有多个虚拟物体,或者虚拟实例。虚拟物体可以是根据真实物体尺寸构建的三维物体模型,还可以是根据虚拟形象设计尺寸构建的虚拟形象模型。而在搭建过程中,或者在具体展示时,虚拟场景光源生成设备所呈现的虚拟场景展示画面为通过在该三维虚拟空间中的虚拟摄像机进行拍摄得到的二维图像。容易理解的,随着虚拟摄像机的平移、转动等运动,所呈现的虚拟场景展示画面也发生变化。
76.在当前虚拟摄像机提供的虚拟场景展示画面中,建模人员可指定一指定照亮位置。该指定照亮位置即为欲构建的虚拟光源应当照亮的区域。可以理解的,指定照亮位置为虚拟场景展示画面中的某个区域,该区域可以是点状的,也可以是块状的。为了便于提高计算速度,指定照亮位置为一点状区域,即为建模人员在虚拟场景展示画面中指定的一个点。
77.而虚拟光源参数为构造虚拟光源所需的参数,其可以是虚拟光源的外形尺寸参数、和光源亮度、颜色等性能参数。建模人员可在生成虚拟光源时通过虚拟场景光源生成设备提供的交互接口输入虚拟光源参数,或者虚拟场景光源生成设备可在生成虚拟光源时通过读取导入文件等方式调用建模人员预置的虚拟光源参数。
78.作为本实施例的一种实施方式,在执行步骤s100时,可以响应于监测到展示界面中的点击事件,确定界面触发坐标;然后基于界面触发坐标,确定出在虚拟场景展示画面中的指定照亮位置。其中,展示界面展示虚拟场景展示画面。
79.具体而言,可通过三维模型软件搭建三维虚拟场景,该三维模型软件提供一三维模型软件的展示界面。建模人员可通过鼠标对展示界面进行点击,从而输入一界面触发坐标,如此,虚拟场景光源生成设备可基于界面触发坐标,计算得到在虚拟场景展示画面中的指定照亮位置。
80.也即是本实施例提供的虚拟光源搭建场景中,建模人员可通过鼠标交互的方式,快速指定照亮位置,虚拟场景光源生成设备自动执行后续步骤,从而实现一键添加照亮指定位置的光源,进而提高打光效率,以及提高营造虚拟场景氛围的效率。
81.步骤s200、确定出指定照亮位置在三维虚拟场景中对应的指定照亮区域。
82.可以理解的,指定照亮位置为在二维的虚拟场景展示画面中的区域,而虚拟场景展示画面为利用虚拟摄像机对三维虚拟场景拍摄得到。因此,指定照亮位置在三维虚拟场景中对应有一指定照亮区域。指定照亮区域为三维虚拟场景中某一虚拟物体中的一部分的表面区域。如对于游戏虚拟场景物体而言,指定照亮区域可以是游戏虚拟形象模型的一部分的表面区域,还可以是游戏背景模型的一部分的表面区域。可以理解的,当指定照亮位置为一点状区域时,指定照亮区域也为一点状区域,下文以点状区域为例进行阐述。
83.值得一提的是,指定照亮区域所处的实例表面在三维虚拟场景并非是必然是一平
面区域,其具体的空间形状特征由其所在的虚拟物体的空间形状特征决定。如指定照亮区域所处的实例表面为虚拟形象头部的额头处,则其构造呈不规则的弧形面。或者,指定照亮区域所处的实例表面为虚拟岩石的倾斜的顶面中的一点,则其构造呈一斜面。
84.步骤s300、确定出指定照亮区域所在平面的法线向量,以及指定照亮区域和虚拟摄像机之间的入镜光线向量。
85.且可以理解的,对于虚拟实例的实例表面而言,其具有相应的模型外表面和模型内表面,也即是指定照亮区域的法线向量是确定的。从而在三维虚拟场景的三维空间中确定指定照亮区域后,即知晓其在三维空间中的空间坐标信息以及所处的实例表面后,可在三维空间中确定出指定照亮区域所在平面的法线向量。也即是指定照亮区域所在平面的法线向量为起点为指定照亮区域,方向垂直于指定照亮区域所在平面的向量。
86.入镜光线向量为虚拟摄像机的虚拟镜头所采集的虚拟光线的传播路径所在的向量。可以理解的,入镜光线向量的起点为指定照亮区域,终点为虚拟摄像机的镜头,方向为从指定照亮区域至虚拟摄像机的虚拟镜头。
87.步骤s400、将入镜光线向量相对于法线向量的对称向量的所在直线,作为虚拟光源的光源中心所在直线。
88.其中,光源中心所在直线穿过指定照亮区域。
89.请参阅图3,可以理解的,由于指定照亮区域即为反射光斑所在区域,也即是光线的入射点,而虚拟光源发出的虚拟光线在此反射后沿入镜光线向量传播至虚拟摄像机的虚拟镜头内。因此,根据光线反射原理,入射光线和反射光线相对于入射点的法线对称,从而可以将入镜光线向量相对于法线向量的对称向量的所在直线,作为虚拟光源的光源中心所在直线。也即是得到虚拟光源在三维虚拟场景中的方向。
90.可以理解的,该光源中心所在直线的起点即为指定照亮区域。
91.步骤s500、基于光源中心所在直线和虚拟光源参数,在三维虚拟场景中生成虚拟光源。
92.在计算得到虚拟光源在三维虚拟场景中的方向后,即可在不改变当前虚拟摄像机的前提下,直接在该方向所在的直线上布置得到虚拟光源。当然,虚拟光源的尺寸、性能参数或者虚拟光源在直线上的具体位置可基于虚拟光源参数进行配置。
93.作为本实施例的一种选择,若虚拟光源的光源类型为方向光源,虚拟场景光源生成设备在执行步骤s500时,则可直接根据光源亮度等性能参数生成虚拟光源。
94.或者,作为本实施例的另一种选择,虚拟光源参数包括光源类型和光源配置参数;光源类型为球形光源,光源配置参数包括距离参数、光源半径和光源亮度,且距离参数为虚拟光源和指定照亮区域之间的距离。
95.此时,虚拟场景光源生成设备在执行步骤s500时,则基于光源配置参数的距离参数,在光源中心所在直线上确定出光源位置;然后基于光源半径和光源亮度,在光源位置处生成虚拟光源。
96.如此,在计算球形光源的方位时,可以先计算得到球形光源的球心位置,也即是光源位置,然后再基于光源半径即可得到球形光源在三维虚拟场景中的具体形状,再结合光源亮度即可生成所需的虚拟光源。
97.具体的,参阅图3,入镜光线向量在三维虚拟场景中可表示为法线向量可表示为则根据向量之间的对称计算公式,计算得到入镜光线向量相对于法线向量的对称向量且
98.为了避免在计算距离时产生误差,还可以对对称向量进行归一化操作,从而得到将对称向量的单位向量作为对称向量。也即是
99.此时,在得到虚拟光源所在方向后,根据距离参数计算得到虚拟光源的具体方位信息,也即是得到虚拟光源在三维虚拟场景中的空间坐标信息,即光源位置。
100.具体的,三维虚拟场景内具有一三维空间坐标系xyz,指定照亮区域为点p,则根据虚拟光源和指定照亮区域之间的几何关系,光源位置pos通过坐标表示为:
[0101][0102]
其中,pos.x为光源位置pos在x轴上的坐标,pos.y为光源位置pos在y轴上的坐标,pos.z为光源位置pos在z轴上的坐标。target.x为点p在x轴上的坐标,target.y为点p在y轴上的坐标,target.z为点p在z轴上的坐标。为光线发射路径向量在x轴上的投影,为光线发射路径向量在y轴上的投影,为光线发射路径向量在z轴上的投影。dis为距离参数。
[0103]
在得到球形光源的球心位置后,结合光源半径和光源亮度,即可在三维虚拟场景中搭建出虚拟光源。
[0104]
或者,作为本实施例的另一种选择,虚拟光源参数包括光源类型和光源配置参数。光源类型为矩形面光源,光源配置参数包括距离参数、光源长度、光源宽度和光源亮度;距离参数为虚拟光源和指定照亮区域之间的距离。
[0105]
此时,虚拟场景光源生成设备在执行步骤s500时,可以将垂直于光源中心所在直线、且与指定照亮位置之间的距离等于距离参数的平面,确定为光源所在平面;然后在光源所在平面上,基于光源长度、光源宽度和光源亮度,生成虚拟光源。
[0106]
可以理解的,矩形面光源的中心坐标计算方式仍可参照球形光源的球心坐标计算方式,此处不再赘述。在计算得到矩形面光源的中心坐标后,即可在此光源中心所在直线上确定出光源所在平面。也即是将垂直于光源中心所在直线、且与指定照亮区域之间的距离等于距离参数的平面,确定为光源所在平面。然后,在该光源所在平面上,以中心坐标为矩形面光源的中心,然后根据光源长度和光源宽度即可搭建出虚拟光源。
[0107]
当然,此时搭建的虚拟光源的长度方向和宽度方向没有限定。为了减少向量计算
时的精度误差,特别是在计算虚拟光源和指定照亮区域之间的距离时归一化处理的误差,需要先判断光源法线的最小方向。
[0108]
因此,在执行步骤s500时,还需要执行下述步骤:
[0109]
(1)对对称向量进行归一化处理,得到光线发射路径向量。
[0110]
(2)确定光线发射路径向量在虚拟场景空间坐标系的第一坐标轴上的第一投影长度、第二坐标轴上的第二投影长度以及第三坐标轴的第三投影长度。
[0111]
其中,第一坐标轴、第二坐标轴和第三坐标轴中任意两者之间彼此垂直。
[0112]
(3)若第一投影长度小于第二投影长度以及第三投影长度,则将第一投影向量的位于第三坐标轴相异侧的垂直向量,作为光源第一边向量。
[0113]
(4)若第二投影长度小于第一投影长度以及第三投影长度,则将第二投影向量的位于第三坐标轴相异侧的垂直向量,作为光源第一边向量;
[0114]
(5)若第三投影长度小于第一投影长度以及第二投影长度,则将第三投影向量的位于第二坐标轴相异侧的垂直向量,作为光源第一边向量;
[0115]
(6)对光源第一边向量进行归一化处理,得到光源第一单位边向量;
[0116]
(7)将光线发射路径向量和光源第一单位边向量的向量积,作为光源第二边向量;
[0117]
(8)对光源第二边向量进行归一化处理,获得光源第二单位边向量;
[0118]
(9)基于光源第一单位边向量、光源第二单位边向量、光源长度和光源宽度,在虚拟场景中生成虚拟光源。
[0119]
其中,第一投影向量为光线发射路径向量在第一参考平面上的投影向量,第一参考平面由第二坐标轴和第三坐标轴限定得到;其中,第二投影向量为光线发射路径向量在第二参考平面上的投影向量,第二参考平面由第一坐标轴和第三坐标轴限定得到;其中,第三投影向量为光线发射路径向量在第三参考平面的投影向量,第三参考平面为第一坐标轴和第二坐标轴限定得到。
[0120]
具体的,矩形面光源具有光源第一边向量和光源第二边向量当然,光源第一边向量可以是矩形面光源的长度向量,光源第二边向量可以是矩形面光源的宽度方向。或者,光源第一边向量可以是矩形面光源的宽度向量,光源第二边向量可以是矩形面光源的长度方向,本实施例对此并不限制。
[0121]
以光源第一边向量是矩形面光源的长度向量,光源第二边向量是矩形面光源的宽度方向为例。本实施例中,先判断光源法线,即光线发射路径向量的最小方向,即光线发射路径向量在三维空间坐标系xyz各坐标轴的投影长度和之间的大小关系。然后根据判断结果和公式一估计得到光源第一边向量
[0122]
公式一为:
[0123]
然后对光源第一边向量进行归一化处理,得到光源第一单位边向量即
[0124]
由于矩形面光源的光源第一边向量垂直于光源第二边向量且光源第一边向量和光源第二边向量均垂直于光线发射路径向量
[0125]
从而可以将光线发射路径向量和光源第一单位边向量的向量积,作为光源第二边向量
[0126]
即
[0127]
然后对光源第二边向量进行归一化处理,得到光源第二单位边向量即
[0128]
然后结合光源长度length和光源宽度width,计算得到矩形面光源的长度向量为:
[0129][0130]
宽度向量为:
[0131][0132]
然后以计算得到的长度向量、宽度向量、光源位置和光源亮度,构建得到虚拟光源。
[0133]
另外,在本技术可能的一实施例中,虚拟光源为光源簇,光源簇包括主光源和多个副光源。虚拟光源参数包括主光源对应的第一虚拟光源参数、与多个副光源一一对应的多个第二虚拟光源参数以及与多个副光源一一对应的光源间相对位置参数。
[0134]
也即使本实施例中,虚拟光源为光源簇,当然,其中的主光源可以是球形光源、也
可以是矩形面光源。副光源也可以是球形光源、也可以是矩形面光源。且各个副光源之间可彼此独立,即多个副光源里面既可以均为矩形面光源,或者均为球形光源,也可同时均具有。
[0135]
则各个副光源和主光源的位置关系可通过光源间相对位置参数进行确定。
[0136]
此时,虚拟场景光源生成设备在执行步骤s500时,具体包括:
[0137]
s501、基于光源中心所在直线和第一虚拟光源参数,在三维虚拟场景中生成主光源。
[0138]
s502、基于主光源和各光源间相对位置参数,在三维虚拟场景中确定各副光源位置。
[0139]
s503、基于各副光源位置和第二虚拟光源参数,在三维虚拟场景中生成各副光源。
[0140]
具体而言,先根据前述实施例提供的方法构建出主光源,具体的计算方式根据主光源的类型确定,如主光源为矩形面光源时按照矩形面光源计算。然后在三维虚拟场景所在空间内,根据空间几何关系,即基于主光源和各光源间相对位置参数,在三维虚拟场景中确定各副光源位置,然后结合各个副光源的类型或者性能参数等搭建出各个副光源。
[0141]
不难看出,本实施例在进行虚拟场景的光源搭建时,通过建模人员在虚拟摄像机所拍摄的虚拟场景展示画面中指定一指定照亮位置,然后三维虚拟场景中指定照亮位置对应的指定照亮区域为反射光斑所在位置,依据光线反射原理,利用虚拟摄像机的虚拟镜头接收的入镜光线向量计算出光源中心所在直线,从而可以在不移动当前虚拟摄像机的情况下,自动在虚拟场景中生成可以照亮指定照亮位置的虚拟光源,然后建模人员就可以修改场景材质、性能参数等,进而提高虚拟场景中搭建虚拟场景的效率。
[0142]
基于上述实施例,参阅图4,提出本技术虚拟场景光源生成方法第二实施例。
[0143]
本实施例中,方法还包括:
[0144]
步骤s600、调整虚拟光源的实时参数。
[0145]
实时参数包括但不限于光源尺寸参数和光源性能参数。
[0146]
具体而言,在搭建得到虚拟光源后,还可以根据发光效果,来对虚拟光源的实时参数进行调整。如调整构建的虚拟光源的亮度、灯光颜色、距离、半径和宽高等,来达到建模人员所需的效果。
[0147]
基于同一发明构思,参阅图5,本技术实施例还提供一种虚拟场景光源生成装置,包括:
[0148]
数据获取模块,用于获取虚拟光源参数与虚拟场景展示画面中的指定照亮位置;其中,虚拟场景展示画面由虚拟摄像机对三维虚拟场景进行拍摄得到;
[0149]
区域确定模块,用于确定出指定照亮位置在三维虚拟场景中对应的指定照亮区域;
[0150]
向量计算模块,用于确定出指定照亮区域所在平面的法线向量,以及指定照亮区域和虚拟摄像机之间的入镜光线向量;
[0151]
直线计算模块,用于将入镜光线向量相对于法线向量的对称向量的所在直线,作为虚拟光源的光源中心所在直线;其中,光源中心所在直线穿过指定照亮区域;
[0152]
光源生成模块,用于基于光源中心所在直线和虚拟光源参数,在三维虚拟场景中生成虚拟光源。
[0153]
需要说明的是,本实施例中的关于虚拟场景光源生成装置的各实施方式以及其达到的技术效果可参照前述实施例中虚拟场景光源生成方法的各种实施方式,这里不再赘述。
[0154]
此外,本技术实施例还提出一种计算机存储介质,存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上文的虚拟场景光源生成方法的步骤。因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本技术所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本技术方法实施例的描述。确定为示例,程序指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
[0155]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random accessmemory,ram)等。
[0156]
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本技术提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0157]
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用cpu、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本技术而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例的方法。
[0158]
以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
技术特征:
1.一种虚拟场景光源生成方法,其特征在于,包括:获取虚拟光源参数与虚拟场景展示画面中的指定照亮位置;其中,所述虚拟场景展示画面由虚拟摄像机对三维虚拟场景进行拍摄得到;确定出所述指定照亮位置在所述三维虚拟场景中对应的指定照亮区域;确定出所述指定照亮区域所在平面的法线向量,以及所述指定照亮区域和所述虚拟摄像机之间的入镜光线向量;将所述入镜光线向量相对于所述法线向量的对称向量的所在直线,作为虚拟光源的光源中心所在直线;其中,所述光源中心所在直线穿过所述指定照亮区域;基于所述光源中心所在直线和所述虚拟光源参数,在所述三维虚拟场景中生成所述虚拟光源。2.根据权利要求1所述的虚拟场景光源生成方法,其特征在于,所述虚拟光源参数包括光源类型和光源配置参数;所述光源类型为球形光源,所述光源配置参数包括距离参数、光源半径和光源亮度,且所述距离参数为所述虚拟光源和所述指定照亮区域之间的距离;所述基于所述光源中心所在直线和所述虚拟光源参数,在所述三维虚拟场景中生成所述虚拟光源,包括:基于所述光源配置参数的距离参数,在所述光源中心所在直线上确定出光源位置;基于所述光源半径和所述光源亮度,在光源位置处生成所述虚拟光源。3.根据权利要求1所述的虚拟场景光源生成方法,其特征在于,所述光源虚拟光源参数包括光源类型和光源配置参数;所述光源类型为矩形面光源,所述光源配置参数包括距离参数、光源长度、光源宽度和光源亮度;所述距离参数为所述虚拟光源和所述指定照亮区域之间的距离;所述基于所述光源中心所在直线和所述虚拟光源参数,在所述三维虚拟场景中生成所述虚拟光源,包括:将垂直于所述光源中心所在直线、且与所述指定照亮区域之间的距离等于所述距离参数的平面,确定为光源所在平面;在所述光源所在平面上,基于所述光源长度、所述光源宽度和所述光源亮度,生成所述虚拟光源。4.根据权利要求3所述的虚拟场景光源生成方法,其特征在于,所述在所述光源所在平面上,基于所述光源长度和所述光源宽度,生成所述虚拟光源,包括:对所述对称向量进行归一化处理,得到光线发射路径向量;确定所述光线发射路径向量在虚拟场景空间坐标系的第一坐标轴上的第一投影长度、第二坐标轴上的第二投影长度以及第三坐标轴的第三投影长度;其中,所述第一坐标轴、第二坐标轴和所述第三坐标轴中任意两者之间彼此垂直;若所述第一投影长度小于所述第二投影长度以及所述第三投影长度,则将第一投影向量的位于所述第三坐标轴相异侧的垂直向量,作为光源第一边向量;其中,所述第一投影向量为所述光线发射路径向量在第一参考平面上的投影向量,所述第一参考平面由所述第二坐标轴和所述第三坐标轴限定得到;对所述光源第一边向量进行归一化处理,得到光源第一单位边向量;
将所述光线发射路径向量和所述光源第一单位边向量的向量积,作为光源第二边向量;对所述光源第二边向量进行归一化处理,获得光源第二单位边向量;基于所述光源第一单位边向量、所述光源第二单位边向量、所述光源长度和所述光源宽度,在所述虚拟场景中生成所述虚拟光源。5.根据权利要求4所述的虚拟场景光源生成方法,其特征在于,所述对所述光源第一边向量进行归一化处理,得到光源第一单位边向量之前,所述方法还包括:若所述第二投影长度小于所述第一投影长度以及所述第三投影长度,则将第二投影向量的位于所述第三坐标轴相异侧的垂直向量,作为所述光源第一边向量;其中,所述第二投影向量为所述光线发射路径向量在第二参考平面上的投影向量,所述第二参考平面由所述第一坐标轴和所述第三坐标轴限定得到;和/或若所述第三投影长度小于所述第一投影长度以及所述第二投影长度,则将第三投影向量的位于所述第二坐标轴相异侧的垂直向量,作为所述光源第一边向量;其中,所述第三投影向量为所述光线发射路径向量在第三参考平面的投影向量,所述第三参考平面为所述第一坐标轴和所述第二坐标轴限定得到。6.根据权利要求1所述的虚拟场景光源生成方法,其特征在于,所述虚拟光源为光源簇,所述光源簇包括主光源和多个副光源;所述虚拟光源参数包括所述主光源对应的第一虚拟光源参数、与多个所述副光源一一对应的多个第二虚拟光源参数以及与多个所述副光源一一对应的光源间相对位置参数;所述基于所述光源中心所在直线和所述虚拟光源参数,在所述三维虚拟场景中生成所述虚拟光源,包括:基于所述光源中心所在直线和所述第一虚拟光源参数,在所述三维虚拟场景中生成所述主光源;基于所述主光源和各所述光源间相对位置参数,在所述三维虚拟场景中确定各副光源位置;基于各所述副光源位置和所述第二虚拟光源参数,在所述三维虚拟场景中生成各所述副光源。7.根据权利要求1所述的虚拟场景光源生成方法,其特征在于,所述基于所述光源中心所在直线和所述虚拟光源参数,在所述三维虚拟场景中生成所述虚拟光源之后,所述方法还包括:调整所述虚拟光源的实时参数。8.根据权利要求1至7任一项所述的虚拟场景光源生成方法,其特征在于,获取虚拟场景展示画面中的指定照亮位置,包括:响应于监测到展示界面中的点击事件,确定界面触发坐标;其中,所述展示界面展示所述虚拟场景展示画面;基于所述界面触发坐标,确定出在所述虚拟场景展示画面中的指定照亮位置。9.一种虚拟场景光源生成装置,其特征在于,包括:数据获取模块,用于获取虚拟光源参数与虚拟场景展示画面中的指定照亮位置;其中,所述虚拟场景展示画面由虚拟摄像机对三维虚拟场景进行拍摄得到;
区域确定模块,用于确定出所述指定照亮位置在所述三维虚拟场景中对应的指定照亮区域;向量计算模块,用于确定出所述指定照亮区域所在平面的法线向量,以及所述指定照亮区域和所述虚拟摄像机之间的入镜光线向量;直线计算模块,用于将所述入镜光线向量相对于所述法线向量的对称向量的所在直线,作为虚拟光源的光源中心所在直线;其中,所述光源中心所在直线穿过所述指定照亮区域;光源生成模块,用于基于所述光源中心所在直线和所述虚拟光源参数,在所述三维虚拟场景中生成所述虚拟光源。10.一种虚拟场景光源生成设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器调用时,执行所述权利要求1至8任一项所述的虚拟场景光源生成方法。11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的虚拟场景光源生成方法。
技术总结
本申请公开了一种虚拟场景光源生成方法、装置、设备以及存储介质,涉及深度学习技术领域。方法包括:获取虚拟光源参数与虚拟场景展示画面中的指定照亮位置;确定出指定照亮位置在三维虚拟场景中对应的指定照亮区域;确定出指定照亮区域所在平面的法线向量,以及指定照亮区域和虚拟摄像机之间的入镜光线向量;将入镜光线向量相对于法线向量的对称向量的所在直线,作为虚拟光源的光源中心所在直线;基于光源中心所在直线和虚拟光源参数,在三维虚拟场景中生成虚拟光源。本申请可以在不移动当前虚拟摄像机的情况下,自动在虚拟场景中生成可以照亮指定照亮区域的虚拟光源,进而提高在虚拟场景中生成虚拟光源的效率。拟场景中生成虚拟光源的效率。拟场景中生成虚拟光源的效率。
技术研发人员:李欢 张欣 陈杰
受保护的技术使用者:杭州海康威视数字技术股份有限公司
技术研发日:2023.06.30
技术公布日:2023/9/25
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/