PY[Sz=[ 
(GPU光线追迹和分析)> 支持的功能
": mCZUt Pw0{.W~r 概要 <{3q{VW* 实体分析
@ARAX\F 表面分析
HJnv'^yn 探测器实体
'SsPx&)l 方向分析实体
Ej-=y2j{g 结果节点分析
&z7N\n 膜层
@hE7r-}] 分布计算
B)_!F`9 几何体
Pc/.*kOT 表面
&f
(sfM_n 表面属性
N )b| 非表面几何体节点
\r:m({G 关键字
A}az
m> 数值精度
k#{lt-a/ 光线
fx8y`8}_ 光线类型
X; e`y:9 光线属性
1^n5CI|7u 光线追迹路径
JS<e`#c& 光线追迹属性
"~.8eKRQ 散射
\c5#\1< 散射模型
,Y78Q 重点采样
r*~n` 脚本
(ouRf;\6$8 光源
a!s.850@ 光谱
GQEI f$ 表面粗糙度
'fp<FeTg eLe,= 分析实体 \i&vOH' 分析表面 3G:NZ) p GPUs不支持并会忽略分析表面。当在GPUs使用
光线追迹时,应该使用平面类型探测器实体而不是分析表面。
A8A:@-e8A >"PqQO 探测器实体 S)Ub/`f{s 如果在模型中存在一个配置正确且支持的探测器实体(DE)类型,GPU光线追迹可以使用它生产分析结果节点(ARNs)。下表逐条列出了GPUs所支持的探测器实体类型。任意未支持的DE类型或者未支持的
参数都会被GPUs忽略。
,_wm, =Qjw.6@
S'v V" .=et{\ 每个探测器实体使用一系列参数来定义其尺寸、像素分辨率以及计算类型等。下面的表格列出了GPU支持的每个参数。
WF3DGqs_] ,?7xb]h
y~4SKv
$ &deZ URmAI8fq*M 1. 配置了“illuminance”分析的探测器实体不会执行所要求的分析,但如果“Abosorb rays”标志设置未True则会使GPU上的光线停止。
b7>,-O 2. 光线滤波器
{7ZtOe a. 在GPUs上,仅当计算时间设置为“at trace end”模式,才会应用DE上的光线滤波器标准。在“During Trace”模式下,光线滤波器会被忽略,并且所有被DE截断的光线都会包含在结果中。
0C"PC:h5 b. 在Monte-Carlo模式下,在光线追迹的最后可以获得所有的光线并进行光线过滤处理。
l&e5_]+% c. 在光线分裂模式下,在光线追迹末端仅能够获取”母”光线并进行光线过滤处理。这意味着,例如,当GPUs上的光线追迹为
光束分裂模式时,其不能使用光线滤波器分理处“子“散射光线。不推荐在光线分裂模式下使用光线滤波器。
i_jax)m% d. 在探测器实体方面,光线过滤应用的基本标准是光线必须被DE拦截。例如,若一个DE的光线过滤为“散射光线“模型,预期只有与DE相交的散射光线才会对结果分析有贡献。
HL}sqcp e. 光线过滤对每条光线进行属性操作。通过对GPU光线追迹模式使用如下规则,以进行光线属性测试并与光线关联:
E'Fv *UA 追迹CPU光线模式
~|0F?~eR7 i. 光线通过CPU光线缓冲区进行创建并初始化所有光线属性
)Yy#`t ii. 光线复制到GPU光线并用于追迹
]iE.fQ?;J iii. 光线在GPU上进行追迹
E<98ahZ?l iv. 光线从GPU中复制回到其在CPU光线缓冲区的原始光线
@?^LxqAWA v. GPU不支持的任意的CPU光线属性都跟初始值意义
d-#u/{jG) vi. 相应地,使用GPU不支持的属性的任意过滤操作都将在原始不变的CPU光线数据上进行测试
]Lb?#S 追迹GPU光线模式 p'uqh
e X i. GPU上创建的光线具有GPU支持的属性
g~$GE},, ii. 光线在GPU进行追迹
|4?}W , iii. 光线从GPU复制到一个临时默认的CPU光线
h.}t${1ZC iv. 相应地,任何使用GPU不支持的属性的过滤操作都将测试默认光线的设置
J4*:.8Ki 方向分析实体 Gn2bZ%l 方向分析实体(DAEs)将会在一个GPU光线追迹的最后自动生成一个分析结果节点(ARN)。一个DAE光线选择的标准会在光线追迹结束时使用,这样计算时间等同于一个探测器实体构造的“追迹终止“模式。请参考探测器实体部分文档以获得GPUs光线评价标准更完整的描述。
I[cV"BDa +|}K5q \ 分析结果节点 NP<F==, 如果在模式中激活了一个正确配置的探测器实体(DE)或者方向分析实体(DAE),则GPUs可以生成分析结果。如果一个正确配置的DE或者DAE出现在GPU光线追迹中,在GPU光线追迹结束时,分析结果节点将会添加到FRED文档对象树。
%M0mwty] 膜层 x(/@Pt2B 下方的表格逐条列出了如何指定膜层类型以使用GPUs进行处理。在GPUs上的膜层不会有透射或者反射相位系数,空间相关性或者偏振相关性。透射和反射功率系数将会作为S和P偏振的平均值进行计算。
$<>EwW
aJa^~*N/Aa &xiDG=I# 8#d1}Y 1. 反射和透射会忽略相位条件。
bsk=9K2_2t 2. 简单表格搜寻(最近邻值)不包含角度插值。透射和反射是S和P分量的平均值。
X
gx2 3. 近似为一种入射
材料为空气,基板材料为简单玻璃的一般采样膜层类型。对于所有激活的
光源的每个激活的
波长,膜层将会在方向余弦0到0.9999之间采样8个角度。
*n|0\V< 4. 对于所有的偏振态,将会100%传播。
vxilQp 分布计算
EV?47\~ 当使用FRED的分布式计算功能时,可以使用远程节点进行GPU光线追迹。
VM V]TPks> 几何体
BJ.8OU*9]S 表面
L@k;L 当在GPUs上描述一个表面时,既可以进行精确描述,也可以进行近似描述。对于一个精确描述的给定表面,需要满足以下要求:
XnI
;7J • 表面类型具有一个GPU实现
x[O#(^q • 表面可追迹
?3"D|
cS1 • 没有应用表面修剪参数
BHJ'[{U*w • 没有使用点乘表面修建参数
mJDKxgGK • 表面不是布尔实体单元
fj
t_9-. 当上述条件不符合一个给定的表面,在GPUs上使用三角网格来近似的描述表面(此处可认为是CAD的*.OBJ或者*.STL格式)。
AZ9\>U@hD 将一个表面网格化一般会降低表面描述精度(除了网格化平面表面的情况),且跟CPU追迹结果相比,在GPU追迹中会成为错误的来源。
^ yukn*L 当一个表面使用三角网格近似时,用于近似表面的三角块是从两种不同的来源并根据表面类型来进行采集的。
b]g&rwXYt • 隐式表面是由一个函数形式,f(x,y,z)来进行定义的。例如,球体、圆锥和柱体都是隐式表面。
_AFt6\ • 显式表面是由参数化形式,f(u,v)来定义的。例如,直纹表面、拉伸表面和朗伯面都是显式表面。
Ignv|TYG 对于三角网格近似:
>%p
m"+h{ • 隐式表面使用内部算法,最终用户不能获得其控制的参数。用户无法访问提高网格质量的控键。
\gI:`>-
x • 显式表面使用FRED的3D查看器中的三角块。使用FRED的可视化属性对话框增加曲面细分会在GPUs上生成更高质量的近似表面。
|C)UZ4A/p 下面表格指出了哪些表面类型具有精确的GPU实现,哪些使用三角网格近似。
<K=B(-~ :kiO
>eG&gc@$1$ Pdm6u73 q
V
UUuyF 1. 仅当前端和后端的半孔径是理想(例如,柱脊沿Z轴为常数)情况下,则可完全支持柱面类型。如果柱脊是倾斜的,则在GPUs上使用三角网格来近似描述表面。
`F+x]<m! 2. 在上述表格中未指定的表面类型将会在GPUs上使用三角网格来进行近似。
iZq@W3GL
C kW2nrkF 表面属性 72`/xryY 在FRED模型中每个表面都有一系列属性以描述几何体性质。这些属性可以是物理属性,FRED特定属性需要用于光线追迹或者FRED的可视化属性要用于渲染。
3P^gP32 >pH775I= 下方的表格指出了GPUs是否支持,部分支持或者忽略一个给定表面性质。
Z/05 wB 一个受支持属性并不意味着在GPU上的实现和在FRED中CPU光线追迹的本来的实现是意义的。请参考此文档关于每个受支持或者部分受支持属性相应的部分以获得更多的信息。
(8-lDoW =@jMx^A"
~~:8Yv[( ;Y|~!%2~ 1. 如果对一个表面应用了Advanced Dot-product Surface Trimming Specifications,则会使用三角网格将表面转换为一个近似表面。
}
@fu~V/ 2. 如果一个表面应用了Surface Trimming Specifications,则会使用三角网格将表面转换为一个近似表面。
%M,d/4=P 非表面几何体节点 7" STS7_ 在光线追迹中,光线与表面相交。然而,在几何体层级中非表面节点会用来增强表面描述属性。例如,曲线在FRED中可以用于构建表面或者定义表面自定义孔径。或者一个表面的位置可能取决于其上方一个自定义元件在树中的位置。
FvNSu"O~K1 下方表格逐条列出了GPUs支持的非表面几何体节点。
R5;eR(24G JTh=JHJ
eeJt4DV8v }B
'*8^S V-ouIqnI 1. 表面是一个元件组合结构的一部分,其在GPUs上将会被自动转化为一个近似三角网格描述。
kdMS"iN8x 关键词 B{o\RNU 关键词不支持并被忽略。模型构建中关键词的利用和模型管理。同样地,为了进行光线追迹,对GPUs来说,关键词没有值。
L,A-G"z0Z 材料 73z|'0. 下方表格逐条列出了如何确定GPUs处理的材料类型。
//u76nQ
PLD'Q,R 2SPFjpG8n 1. 对于所有光源的所有激活波长,会计算实部和虚部折射率。
5<?c_l9X^ 2. 所有未支持材料类型,会自动转化未采样材料。对于所有光源的所有激活波长,会计算正入射时实部和虚部折射率。
A{Htpm ~ 表格下方逐条列出了如何确定GPUs所处理的材料属性。
ryp$|?ckJ P "_}F
8!%"/*P$ &aAo:pj 4Z~Dxo 数值精度 b
G5 所有的GPU计算都是单精度。
7C?mD75j 光线类型 :+^$?[6] GPU支持的光线类型在下方表格逐条列出并提供了一个好的初始点以用于评估FREDMPC是否能够用于一个给定的分析。
zu*G4?]~h ApJf4D<V
ZFuJ2 : ;q&D,4r] XhD fI
& 1. 偏振光a. 如果支持光源配置,而且激活了偏振标志,光线仍然可以通过Trace GPU Rays调用生成,但是会忽略偏振信息(即光线会被认为是非偏振,不相干的光源)
y'O{8Q8T b. 如果光源是在FRED生成的,然后需要用Trace CPU Rays调用GPU来追迹,那么在GPU上追迹的光线的偏振信息会被忽略,但是当光线回到FRED中时,偏振信息会回到CPU上。这些光线的偏振数据是无效的,不能使用这些光线数据来分析偏振2. 相干光
MHyl=5 a. 使用Trace GPU Rays光线追迹模式,在GPU上不会生成相干光b. 使用Trace CPU Rays光线追迹模式,将光线从FRED光线缓冲区推送到GPU时,在GPU光线追迹之前,相干属性将从光线中移除,然后在光线返回到FRED时在CPU上被替换。这些在GPU上追迹的光线,不能用来进行辐射度计算
RowiSW 光线属性 每条光线都有一组属性(例如位置,方向,功率,波长等),这些属性由各种分析功能使用。下表列出了GPU支持的光线属性
JR<-'
bl>b/u7/6
z(X6%p0 z slEUTj) 1. 光“强度”是一种仅适用于Trace Render光线追迹模式以生成渲染图形的属性。
wBHDof
xX 2. 目前仅支持一组有限的状态属性代码,支持的状态代码为ray is halted, reason ray is halted, ray intersected, ray interacted, ray reflected, ray transmitted, scatter ray, specular ray, unresolvable material error, TIR error
EM
w(%}8w 3. 请务必注意,尽管可以使用MPC Trace Advanced选项请求光线追迹路径数据,但在GPU光线追迹期间,不会更新路径#的光线属性。因此,在执行GPU光线追迹之后,不支持基于路径#的光线选择过滤。基于路径的分析仅限于Raytrace Path表和Stray Light Report表中显示的信息
A^@ <+? 追迹路径
u\geD 当模型在适用的光线追迹属性定义上使用蒙特卡洛父光线说明符时,可以在GPU上追迹光线获得Raytrace Paths。当GPU上发生光线分裂时,将不会追迹Raytrace Paths。
@d^h/w 必须在光线追迹之前将用户提供的用于路径追迹的最大总事件计数提供给GPU。此选项位于GUI中的MPC Trace Advanced对话框中。只有总事件计数小于或等于此用户提供的值(默认值= 10个事件)的路径才能在GPU光线追迹结束时在Raytrace Paths表或Stray Light Report中查看。
)9 jQ_ 在GPU光线追迹结束时,在输出窗口中报告超过最大总事件计数限制的光线追迹路径的数量以及这些路径中的总功率。
Jb.u^3R@ 目前不支持在CPU上生成重绘光线跟踪路径(如果它们已由GPU生成)。
|<
FCt-U 目前不支持使用光线执行基于路径的分析(例如,分析路径#X的辐照度分布)。
dsZ( D:) 光线追迹属性
PQ"%Z.F" 下表列出了GPU如何处理光线跟踪属性的特定属性。
Bg0cC G( \1{"!
v]U;5Uo
`srZ#F5 |B$\3, \` ^Tbn: 1. 父光线和光线分裂
G5f57F a. 使用蒙特卡罗以外的父光线说明符时,必须注意正确配置GPU缓冲区,以确保为光线生成保留适当数量的资源。特别是,通过设置GPU设备支持的最大总祖先级别(镜面反射+散射),在MPC Trace Advanced对话框中指定用于光线分割的GPU内存分配。
*`.{K12T b. 当使用蒙特卡罗以外的父光线说明符和Trace CPU Rays模式时,只有父光线将返回到CPU光线缓冲区。这限制了在GPU光线追迹期间光线分割处于激活状态时可用的光线数据跟踪后分析。
B]F7t4Y! 散射
l4reG:uYG 散射模型
jyH_/X5i7 下表列出了对GPU上散射模型的支持。 以下行为适用于GPU上的散射模型:
AHD%6 \$ 如果是不支持的散射模型,那么GPU会忽略它
$[CA#AXE Total Integrated Scatter(TIS)表在7个入射角处预先计算,作为散射模型表示的一部分,然后在GPU光线追迹期间进行插值。
y]4`d "$pgmf2
Ht^2)~e~: 5w{pX1z1 1. 如果是不支持的散射模型,那么GPU会忽略它
*Y0,d`
每个散射模型定义都包含进一步描述散射行为的其他属性。这些属性在FRED GUI中显示为散射模型对话框底部的“Additional Data”,或者作为用户脚本散射模型定义的一部分。
mM{v>Em2K# R0<