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方向上改变符号。

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

图1.方向矢量坐标系

除了设置 Excel 对象和指定方向向量之外,脚本中只有几个散射模型本身的特定命令。使用特定于 scatter 的脚本命令包括:

FindScatter–返回散射模型的节点编号。

ScatterPrepareForEval–对内部初始化散射模型进行评估。此操作必须在 ScatterEval 命令之前运行。

GetMieScatter– 将mie散射模型的设置加载到 T_MIESCATTER 结构类型中。 ApplyRefl 结构成员则确定是以反射还是透射方式绘制。

ScatterEval– 返回一组给定的入射方向向量、镜面反射方向向量和散射方向向量的BSDF值。

ScatterTIS– 返回请求模式的总积分散射整合。

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

登录后免费查看全文
立即登录
App下载
技术邻APP
工程师必备
  • 项目客服
  • 培训客服
  • 平台客服

TOP