一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

分层式非序列光线追迹方法

2023-01-15 07:56:30 来源:中国专利 TAG:


1.本发明涉及光学技术领域,特别涉及一种分层式非序列光线追迹方法。


背景技术:

2.随着光学系统指标需求的提高,光学系统外部杂散光仿真和分析也被广泛的应用在各类高像质、高杂散抑制比的光学系统当中。光学系统外部杂散光仿真和分析主要通过非序列光线追迹技术,将杂散光转化为带有方向、能量的光线,追迹所有外部杂散光光线,并在像面处进行统计最后得到杂散光的路径和结果。
3.目前,传统的非序列光线追迹技术较多针对的是以图形渲染为目的的光线追迹技术,且现有的非序列光线追迹直接遍历所有光线从而完成光源到接收器的计算。以渲染方程为核心的技术以视觉效果和逼真程度为主要目的,不适用于高精度、高效分析光学系统杂散光。传统的非序列光线遍历追迹方法在速度上和分析能力上,受到遍历法的影响,每条光线均需追迹完成才能进行下一条光线追迹。因此,存在着追迹过程不能打断,追迹结果来源不易分析,追迹速度收到光线数量和能量阈值影响大的问题。


技术实现要素:

4.鉴于上述问题,本发明的目的是提出一种分层式非序列光线追迹方法;以基于渲染方程的非序列光线追迹法精度难以达到光学系统外部杂散光分析需求的情况,通过将光线到达表面后生成光线属性划分,将不同种类的出射光线进行分类,可以根据分析需求,控制出射光线种类。实现追迹过程易控制,将仿真实验关注的光线优先分配追迹资源,结合gpu分配任务方法,可将追迹速度极大程度提升。
5.为实现上述目的,本发明采用以下具体技术方案:
6.本发明提供一种分层式非序列光线追迹方法,包括以下步骤:
7.s1、对光线系统中的入射光线进行追迹以获取光线信息;
8.s2、对光学系统的表面属性进行分层并对每一层分别设置权重值和开关,以实现出射光线的生成和控制;
9.s3、根据光学系统表面属性分层后的权重信息对入射光线在每一层的光线能量进行分配;
10.s4、根据步骤s3中的能量分配原则对出射光线进行分层式非序列追迹,并依据分层优先级分配gpu计算;
11.s5、重复步骤s4,直到所有最大梯度值的光线追迹完成,光线追迹结束,得到非序列光线追迹结果并计算接收面内每个单元格内的照度,通过查询光线分层来源,最终实现光线来源分析。
12.优选地,每条光线信息包括:光源起始坐标(x,y,z)、光线方向向量(l,m,n)、光线携带能量e、光线分层来源。
13.优选地,在步骤s2中将光学系统的表面属性分为三层,分别为:
14.将反射类光线和透射光线划分为斯涅耳层,前向散射光线和后向散射光线划分为散射层,吸收光线分为吸收层;
15.并分别设置斯涅耳层权重值k
snell
、散射层权重值k
scatter
、吸收层权重值k
absorb
和分层开关。
16.优选地,在步骤s3中:
17.斯涅耳层光线能量分配公式如下:
18.φ
snell
=φ
in
*k
snell
=φ
t
φr19.φ
t
=φ
snell
*t
20.φr=φ
snell
*r
21.其中,k
snell
为斯涅耳层权重值;
22.t为透射率,r为反射率;
23.φ
snell
为斯涅耳层光线能量;
24.φ
in
为入射光线能量;
25.φr为斯涅耳层透射光线能量;
26.φ
t
为斯涅耳层反射光线能量。
27.优选地,在步骤s3中:
28.散射层光线能量分配公式如下:
29.φ
scatter
=φ
in
*k
scatter
=φ
scatterfront
φ
scatterback
30.φ
scatterfront
=φ
scatter
*tis
front
31.φ
scatterback
=φ
scatter
*tis
back
32.其中,
33.k
scatter
为散射层权重;
34.tis
front
为前向散射光线的总累积散射;
35.tis
back
为后向散射光线的总累积散射;
36.φ
scatter
为散射层光线能量;
37.φ
scatterfront
为散射层中前向散射光线的总累积散射能量;
38.φ
scatterback
为散射层中后向散射光线的总累积散射能量。
39.优选地,在步骤s3中:
40.吸收层光线能量分配公式如下:
41.φ
absorb
=φ
in
*(1-k
scatter-k
snell
)
42.其中,
43.φ
absorb
为散射层光线能量。
44.优选地,设置斯涅耳层、散射层和吸收层的能量阈值为10e-8;即相对于光源能量,当斯涅耳层、散射层和吸收层计算出射光线能量低于光源能量的10e-8倍后,不再生成出射光线。
45.优选地,在步骤s5中:
46.首先计算接受面上的单元格面积区域;
47.而后计算单元格面积区域中的光线,累加得到每个单元格的光线数;
48.累加每个单元格的光线能量,除以光线数后得到每个单元格的光通量;
49.每个单元格的光通量除以对应的单元格面积区域,得到每个单元格的照度;
50.通过查询光线分层来源,最终实现光线来源分析。
51.与现有的技术相比,本发明具有以下优点:
52.(1)路径分析方便
53.本发明通过光线分层法,将各类出射光线分离,改善非序列光线追迹各类光线混杂的问题。首先,通过索引到达像面的光线分层来源,迅速定位杂散光产生位置或杂散光关键面,且根据吸收光线,可快速分析杂散光光线的消失路径,供照度分析。其次,可以根据分层光线优先级,保证重要光线优先完成追迹。最后,通过开关光学属性各个分层,可以快速仿真光学系统鬼像、冷反射、一次散射光线。
54.(2)计算速度快
55.本发明通过属性分层,将各类生成光线算法固定与各个分层属性中,再通过任务分解,将追迹过程转化为指令集,通过gpu并行处理多阶梯光线,实现gpu加速的梯度非序列光线追迹,速度更快,处理大规模光线追迹情况下,更加节省算力资源。
56.(3)追迹过程易控制
57.本发明通过对分层开关设置,可以控制各个表面生成光线类型,也可以通过改变分层权重来适应调整光学系统表面属性更改的后的变化,无需再次进行额外仿真。由于可以控制分层光线,因此可以对光学系统某个特定位置进行单独详细分析,此功能对光学系统的杂散光抑制手段有较大帮助。
附图说明
58.图1是根据本发明实施例提供的分层式非序列光线追迹方法的流程示意图。
59.图2是根据本发明实施例提供的分层式非序列光线追迹方法的程序框图。
60.图3是根据本发明实施例提供的分层式非序列光线追迹方法中的分层方法示意图。
具体实施方式
61.在下文中,将参考附图描述本发明的实施例。在下面的描述中,相同的模块使用相同的附图标记表示。在相同的附图标记的情况下,它们的名称和功能也相同。因此,将不重复其详细描述。
62.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,而不构成对本发明的限制。
63.图1示出了根据本发明实施例提供的分层式非序列光线追迹方法的流程示意图。
64.图2示出了根据本发明实施例提供的分层式非序列光线追迹方法的程序框图。
65.如图1-2所示,本发明实施例提供的分层式非序列光线追迹方法首先统计光学系统所有表面属性,将光线入射表面后所有能生成的光线划分为透射光线、反射光线、全反射光线、前向散射光线、后向散射光线和吸收光线。而后,将斯涅耳反射类光线和斯涅耳透射光线划分为斯涅耳层,前向散射光线、后向散射光线划分为散射层,吸收光线分为吸收层。当非序列光线追迹时,光线到达任一表面时,将生成光线分成三层,优先计算斯涅耳层,再
计算散射层最后余下为吸收层光线。通过开关三层追迹,且三层属性可多层叠加,仿真精度更高,可以实现快速完成鬼像、冷反射等仿真实验。最后,由于分层追迹,各层计算方法和数据格式清晰,将三层追迹分别进行任务分解,实现gpu加速,快速完成整个非序列追迹过程。
66.具体包括以下步骤:
67.s1、对光线系统中的入射光线进行追迹以获取入射光线信息。
68.光线追迹中,是以光线信息为核心。每条光线由发出点和方向构成的线段组合成(追迹过程中,每个计算节点也以此划分)。获取节点信息求交、计算出射信息,并以此为追迹记录节点,每次进行求交、判定、计算后都进行记录,并以之为新的出发点进行不断追迹。因此,在光线追迹过程中,每一段都会更新光线信息。光线信息包括:该段起始坐标、方向向量、光线携带能量,分层信息。
69.以光源发出1万条光线l1~l
10000
为例,每条光线信息包括:光源起始坐标(x,y,z)、方向向量(l,m,n)、光线携带能量e、光线分层来源。
70.s2、对光学系统的表面属性进行分层并对每一层分别设置权重值和开关,以实现出射光线的生成和控制。
71.图3示出了根据本发明实施例提供的分层式非序列光线追迹方法中的分层方法示意图。
72.如图3所示,表面的光学属性在光学系统导入光线追迹算法时,已附于每个表面上。光学属性根据光学系统本身物理性质设置,其中可将该属性分为斯涅耳反射、斯涅耳透射、全反射、前向散射、后向散射以及吸收。此六类光学属性可以叠加,组合成符合实际光学系统表面属性。
73.光线分层法通过将六类属性转化为依附于光学系统表面的三层属性,其中反射类和透射光线划分为斯涅耳层,前向、后向散射光线划分为散射层,吸收光线分为吸收层。通过控制这三层属性的开关,实现出射光线的生成和控制。三层分别设置权重值和开关以确定是否符合实际光学系统表面属性。
74.在本发明提供的实施例中:
75.当斯涅耳层开启,其他分层关闭时,可处理理想光学表面的反射、透射和全反射光线;
76.当斯涅耳层和吸收层开启,可处理带吸收的光学表面生成光线;
77.当三层全部开启,可处理带有散射、吸收的光学表面生成的光线;
78.当仅散射层和吸收层,可处理各类带有吸收或无吸收的各类涂层或抛光等表面的生成光线。
79.斯涅耳层、散射层和吸收层分别设置斯涅耳层权重值k
snell
、散射层权重值k
scatter
、吸收层权重值k
absorb
和分层开关以确定是否符合实际光学系统表面属性。
80.s3、根据光线系统表面属性分层后的权重信息对入射光线在每一层的光线能量进行分配。
81.光线到达表面后,根据斯涅耳层权重值k
snell
、散射层权重值k
scatter
、吸收层权重值k
absorb
进行光线能量的分配。
82.其中斯涅耳层首先进行分配,分配能量根据该层占比划分,且该层内部属性(反射、透射、全反射)也可根据实际属性进行设置,置零则该层无此类光线;
83.斯涅耳层光线能量分配公式如下:
84.φ
snell
=φ
in
*k
snell
=φ
t
φr85.φ
t
=φ
snell
*t
86.φr=φ
snell
*r
87.其中,k
snell
为斯涅耳层权重值;
88.t为透射率,r为反射率;
89.φ
snell
为斯涅耳层光线能量;
90.φ
in
为入射光线能量;
91.φr为斯涅耳层透射光线能量;
92.φ
t
为斯涅耳层反射光线能量。
93.散射层则包括前向散射和后向散射,散射层光线能量分配公式如下:
94.φ
scatter
=φ
in
*k
scatter
=φ
scatterfront
φ
scatterback
95.φ
scatterfront
=φ
scatter
*tis
front
96.φ
scatterback
=φ
scatter
*tis
back
97.其中,
98.k
scatter
为散射层权重;
99.tis
front
为前向散射的总累积散射;
100.tis
back
为后向散射的总累积散射。
101.φ
scatter
为散射层光线能量;
102.φ
scatterfront
为散射层中前向散射的总累积散射能量;
103.φ
scatterback
为散射层中后向散射的总累积散射能量。
104.吸收层则为前两层剩余权重,吸收层光线能量分配公式如下:
105.φ
absorb
=φ
in
*(1-k
scatter-k
snell
)
106.其中,
107.φ
absorb
为散射层光线能量;
108.在三层属性中:
109.斯涅耳层以斯涅耳定律计算出射方向,以上述分配法分配能量给光线;
110.散射层机生成散射光线方向,在根据角度计算相应brdf值,得到相应brdf值计算每条光线通量占比;
111.吸收层则用于剩余能量,产生吸收光线,吸收光线应用于杂散光分析。
112.本案例中,设置各层的能量阈值为10e-8,即相对于光源能量,各层计算出射光线能量低于光源能量10e-8倍后,不再生成出射光线。
113.s4、根据步骤s3中的能量分配原则对出射光线进行分层式非序列追迹,并依据分层优先级分配gpu计算。
114.当光源发出光线,开始对光线进行追迹后,光线到达交点表面,读取表面属性设置。每根光线到达任意表面,自动由分层权重将该光线能量分配给各个分层,再由分层内部进行计算和分配生成光线的能量和方向,分层能量和方向如步骤s3中所示。
115.在追迹过程中可以分配三层追迹优先级,优先级高的分层可以进行优先追迹。由于各层算法固定,因此,可以将追迹任务分解成密集型计算任务,可实现多线程cpu计算和
gpu并行计算。
116.由于光线之间相互独立,因此光线可以并行计算。此类计算属于密集型指令计算,因此,采用gpu加速方法对算法进行优化,利用cuda并行计算架构使gpu实现并行通用计算。
117.优先将分层优先级高的光线进行计算,将求交、出射计算、阈值判断分解任务,其中,将待追迹光学系统结构导入cuda运行环境,将求交、出射计算、阈值判断转化为函数作为接口,每一层入射光线数据作为输入,即可完成任务分解,实现构造适于gpu并行处理的指令集。在gpu计算分层优先级高的光线时,利用cpu与gpu结合处理,同时并行多层光线,保证gpu处于适当的高效运行效率。依次循环,直到所有光线追迹完成,本次追迹结束。
118.s5、重复步骤s4,直到所有光线追迹完成,光线追迹结束,得到非序列光线追迹结果并计算接收面内每个单元格内的照度,通过查询光线分层来源,最终实现光线来源分析。
119.光学系统杂散光非序列光线追迹完成,通过分析接收器面,可实现杂散光仿真。
120.首先,计算单元格面积区域,而后计算单元格区域中的光线,累加得到每个单元格的光线数。累加每个单元格的光线能量,除以初始光线数后得到每个单元格的光通量。每个单元格的光通量除于对应的单元格区域,得到每个格子的照度。通过查询光线分层来源,可实现光线来源分析。
121.在本发明提供的实施例中:接收面单元格网络划分为101
×
101,通过分别计算单元格内照度,可完成整个接受面杂散光照度分布。
122.尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
123.以上本发明的具体实施方式,并不构成对本发明保护范围的限定。任何根据本发明的技术构思所作出的各种其他相应的改变与变形,均应包含在本发明权利要求的保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献