FRED案例展示:绘制表面颗粒(Mie) 散射图

于大多数散射模型,透射散射和反射散射之间的BSDF值没有差异,因此无需指定绘图是透射还是反射。
然而,表面颗粒 (Mie) 散射模型具有向前和向后的散射分量,在BSDF绘图中需要加以考虑,但FRED中的默认绘图类型仅适用于反射散射。
本文章中包含的FRED文件加载了一个嵌入式脚本,该脚本将BSDF数据写入 Microsoft Excel进行交互绘图,并说明该模型在传输过程中的应用。
①脚本概述
创建绘图的嵌入式脚本利用FRED软件功能,可调用COM和ScatterEval脚本功能与Microsoft Excel等程序进行交互。该脚本的伪代码如下:
1.找到 Mie 散射节点并获取其属性;
2.创建 Excel 应用程序对象和工作簿文件;
3.开始循环入射角结构程序;
a.设置入射和镜面方向矢量(考虑透射或反射)。
b.开始循环散射角结构程序。
a.散射角度范围设置在 -89.5 °至 89.5 °之间。
b.使用ScatterEval函数根据入射向量、镜面反射向量和散射向量计算 BSDF 值。
c.将BSDF数据导入Excel文件中。
4.在Excel文件中绘制最终结果。
用于入射、镜面反射和散射方向矢量的坐标系如下图1所示。在透射的情况下,镜面方向矢量与入射方向矢量相同。在反射的情况下,镜面方向矢量在z方向上改变符号。
图1.方向矢量坐标系
除了设置 Excel 对象和指定方向向量之外,脚本中只有几个散射模型本身的特定命令。使用特定于 scatter 的脚本命令包括:
FindScatter–返回散射模型的节点编号。
ScatterPrepareForEval–对内部初始化散射模型进行评估。此操作必须在 ScatterEval 命令之前运行。
GetMieScatter– 将mie散射模型的设置加载到 T_MIESCATTER 结构类型中。 ApplyRefl 结构成员则确定是以反射还是透射方式绘制。
ScatterEval– 返回一组给定的入射方向向量、镜面反射方向向量和散射方向向量的BSDF值。
ScatterTIS– 返回请求模式的总积分散射整合。

工程师必备
- 项目客服
- 培训客服
- 平台客服
TOP
