飞跃小河 |
2020-05-25 17:35 |
新一代光学工程仿真软件RED MPC支持的功能
(GPU光线追迹和分析)> 支持的功能 {b!{~q .`IhxE~mN 概要 w;,34qbf 实体分析 H_?rbz} o 表面分析 o898pg 探测器实体 v6 5C
j2ec 方向分析实体 BHr ,jC 结果节点分析 *H/>96 膜层 :Q`Of}# 分布计算 TnQ>v{Rx 几何体 T
6D+@i 表面 "WKOlfPa 表面属性 ~9]vd| 非表面几何体节点 s~7a-J 关键字 9G[
DuYJI 数值精度 )^(gwE 光线 `Wx|
4 光线类型 ?;l@yx 光线属性 A}lxJ5h0 光线追迹路径 |"}rdOV) 光线追迹属性 FGn"j@m0 散射 AGFA;X 散射模型 %V=%ARP| 重点采样 MnD}i&k[ 脚本 Ts.2\-+3 光源 N[cIr{XBGN 光谱 %UI^+:C 表面粗糙度 DQ8/]Z{H )5@P|{FF 分析实体 S})f`X9_} 分析表面 {z>!Fw GPUs不支持并会忽略分析表面。当在GPUs使用光线追迹时,应该使用平面类型探测器实体而不是分析表面。 0PkX- . vhF9|('G 探测器实体 48 -j 如果在模型中存在一个配置正确且支持的探测器实体(DE)类型,GPU光线追迹可以使用它生产分析结果节点(ARNs)。下表逐条列出了GPUs所支持的探测器实体类型。任意未支持的DE类型或者未支持的参数都会被GPUs忽略。 ;87PP7~ xuUEJ
a&
)Ra:s> Mst%]@TG 每个探测器实体使用一系列参数来定义其尺寸、像素分辨率以及计算类型等。下面的表格列出了GPU支持的每个参数。 $R'?OK(` A
l;a~45
N5K(yY_T ;?{^LiD+F ~B[e*|d 1. 配置了“illuminance”分析的探测器实体不会执行所要求的分析,但如果“Abosorb rays”标志设置未True则会使GPU上的光线停止。 -. *E<% 2. 光线滤波器 u0#KBXRo a. 在GPUs上,仅当计算时间设置为“at trace end”模式,才会应用DE上的光线滤波器标准。在“During Trace”模式下,光线滤波器会被忽略,并且所有被DE截断的光线都会包含在结果中。 \HB
fM& b. 在Monte-Carlo模式下,在光线追迹的最后可以获得所有的光线并进行光线过滤处理。 u43Mo\"<&% c. 在光线分裂模式下,在光线追迹末端仅能够获取”母”光线并进行光线过滤处理。这意味着,例如,当GPUs上的光线追迹为光束分裂模式时,其不能使用光线滤波器分理处“子“散射光线。不推荐在光线分裂模式下使用光线滤波器。 ,6]ID1o:y d. 在探测器实体方面,光线过滤应用的基本标准是光线必须被DE拦截。例如,若一个DE的光线过滤为“散射光线“模型,预期只有与DE相交的散射光线才会对结果分析有贡献。 w!"A$+~ e. 光线过滤对每条光线进行属性操作。通过对GPU光线追迹模式使用如下规则,以进行光线属性测试并与光线关联: y CHOg 追迹CPU光线模式 K{d3)lVYCS i. 光线通过CPU光线缓冲区进行创建并初始化所有光线属性 pT=^o ii. 光线复制到GPU光线并用于追迹 6-\Mf:%B iii. 光线在GPU上进行追迹 80Y%C-Y: iv. 光线从GPU中复制回到其在CPU光线缓冲区的原始光线 fBh" v. GPU不支持的任意的CPU光线属性都跟初始值意义 t<te{yt% vi. 相应地,使用GPU不支持的属性的任意过滤操作都将在原始不变的CPU光线数据上进行测试 -o~zb-E 追迹GPU光线模式 j)/Vtf i. GPU上创建的光线具有GPU支持的属性 |"K%Tvxe ii. 光线在GPU进行追迹 K\ Wzh; iii. 光线从GPU复制到一个临时默认的CPU光线 ; s(bd#Q iv. 相应地,任何使用GPU不支持的属性的过滤操作都将测试默认光线的设置 9iT9ZfaW 方向分析实体 07SW$INb 方向分析实体(DAEs)将会在一个GPU光线追迹的最后自动生成一个分析结果节点(ARN)。一个DAE光线选择的标准会在光线追迹结束时使用,这样计算时间等同于一个探测器实体构造的“追迹终止“模式。请参考探测器实体部分文档以获得GPUs光线评价标准更完整的描述。 >h8m8J z$1|D{ 分析结果节点 Rng-o! 如果在模式中激活了一个正确配置的探测器实体(DE)或者方向分析实体(DAE),则GPUs可以生成分析结果。如果一个正确配置的DE或者DAE出现在GPU光线追迹中,在GPU光线追迹结束时,分析结果节点将会添加到FRED文档对象树。 Mo@{1K/9 膜层 J t.<Z& 下方的表格逐条列出了如何指定膜层类型以使用GPUs进行处理。在GPUs上的膜层不会有透射或者反射相位系数,空间相关性或者偏振相关性。透射和反射功率系数将会作为S和P偏振的平均值进行计算。 ^GV'Y ,JI] Eij^
&PXT$x[i !r.-7hR $ 1. 反射和透射会忽略相位条件。 *i*\dl 2. 简单表格搜寻(最近邻值)不包含角度插值。透射和反射是S和P分量的平均值。 pF6u3] 3. 近似为一种入射材料为空气,基板材料为简单玻璃的一般采样膜层类型。对于所有激活的光源的每个激活的波长,膜层将会在方向余弦0到0.9999之间采样8个角度。 _f2rz+ 4. 对于所有的偏振态,将会100%传播。 TNh&g. 分布计算 Otu?J_ d3 当使用FRED的分布式计算功能时,可以使用远程节点进行GPU光线追迹。 ,l AZ4 几何体 f~l pa7 表面 ?J6Ek*E# 当在GPUs上描述一个表面时,既可以进行精确描述,也可以进行近似描述。对于一个精确描述的给定表面,需要满足以下要求: ;S^"Y:7) • 表面类型具有一个GPU实现 D0 k ,8| • 表面可追迹 gm5%X'XL • 没有应用表面修剪参数 M>=@Z*u/+ • 没有使用点乘表面修建参数 o,j_eheAM • 表面不是布尔实体单元 ;m]
n l_vg 当上述条件不符合一个给定的表面,在GPUs上使用三角网格来近似的描述表面(此处可认为是CAD的*.OBJ或者*.STL格式)。 6v{&, q 将一个表面网格化一般会降低表面描述精度(除了网格化平面表面的情况),且跟CPU追迹结果相比,在GPU追迹中会成为错误的来源。 }{+?>!qD t 当一个表面使用三角网格近似时,用于近似表面的三角块是从两种不同的来源并根据表面类型来进行采集的。 7}qxWz • 隐式表面是由一个函数形式,f(x,y,z)来进行定义的。例如,球体、圆锥和柱体都是隐式表面。 >7@,,~3 • 显式表面是由参数化形式,f(u,v)来定义的。例如,直纹表面、拉伸表面和朗伯面都是显式表面。 :o`
<CO 对于三角网格近似: Ib{#dhV • 隐式表面使用内部算法,最终用户不能获得其控制的参数。用户无法访问提高网格质量的控键。 CV
HKP[- • 显式表面使用FRED的3D查看器中的三角块。使用FRED的可视化属性对话框增加曲面细分会在GPUs上生成更高质量的近似表面。 mKTF@DED 下面表格指出了哪些表面类型具有精确的GPU实现,哪些使用三角网格近似。 (ID%U gHh(QRA
R-$w*=Y G "+[@| +uF}mZS^ 1. 仅当前端和后端的半孔径是理想(例如,柱脊沿Z轴为常数)情况下,则可完全支持柱面类型。如果柱脊是倾斜的,则在GPUs上使用三角网格来近似描述表面。 5f_x.~ymA 2. 在上述表格中未指定的表面类型将会在GPUs上使用三角网格来进行近似。 _LgP r[):'ys,C 表面属性 q/w5Dx|: 在FRED模型中每个表面都有一系列属性以描述几何体性质。这些属性可以是物理属性,FRED特定属性需要用于光线追迹或者FRED的可视化属性要用于渲染。
vC]r1q.( uUS~"\`fk 下方的表格指出了GPUs是否支持,部分支持或者忽略一个给定表面性质。 CC@U'9]bH 一个受支持属性并不意味着在GPU上的实现和在FRED中CPU光线追迹的本来的实现是意义的。请参考此文档关于每个受支持或者部分受支持属性相应的部分以获得更多的信息。 IA}vN3 5fs,UH
pno}`Cer hc$m1lLn 1. 如果对一个表面应用了Advanced Dot-product Surface Trimming Specifications,则会使用三角网格将表面转换为一个近似表面。 VQf^ y q 2. 如果一个表面应用了Surface Trimming Specifications,则会使用三角网格将表面转换为一个近似表面。 U`N?<zm<oO 非表面几何体节点 CUTjRWQ 在光线追迹中,光线与表面相交。然而,在几何体层级中非表面节点会用来增强表面描述属性。例如,曲线在FRED中可以用于构建表面或者定义表面自定义孔径。或者一个表面的位置可能取决于其上方一个自定义元件在树中的位置。 ((AK7hb 下方表格逐条列出了GPUs支持的非表面几何体节点。 _3u3b/%J? dVq9'{[3
yS
K81` ?.ObHV*k `B& | |