返回介绍

3ds Max 帮助

3ds Max 帮助归档

“随机”子操作符

发布于 2022-07-23 00:46:27 字数 9044 浏览 0 评论 0 收藏 0

“受控的混乱”的概念是粒子系统的本质。若要将混乱应用到“数据”操作符,请使用“随机”子操作符。“随机”子操作符使用不同的算法以标量和向量格式生成随机值,如本部分中所述。

  • “粒子视图” “数据图标/操作符/图标测试/测试” 单击“编辑数据流”。 添加或选择“随机”。

检查随机示例

现在我们从如何以混乱的方式将粒子放置在参考对象周围的示例开始:请参见附带的文件 RandomPositioning.max

在以上所示的数据流中,“几何体”子操作符 (1.) 将随机点均匀地分布在参考对象的曲面上。其“对”数据输出分割为两个不同的“转换”子操作符:面局部坐标 (2.) 和复合索引 (3.),复合索引包含随机点所在的面索引。

若要获得参考对象周围粒子的理想体积分布,我们需要从曲面“升起”粒子;此操作可以通过修改面局部坐标向量的 Z 分量实现。Z 分量是在面法线方向距面的距离。

“随机”子操作符 (4.) 可用于定义“升起”的量。对于此示例,我们使用“指数”分布,这是正向分布且在零附近分布更密集。这样,距曲面越近,粒子越多,密度随着与曲面距离的增加而逐渐减小。

然后修改的面局部坐标值和复合索引将转换回“对”数据格式,该格式用于在“几何体”子操作符 (5.) 中计算粒子在世界坐标中的位置。

让我们仔细查看“随机”子操作符的“分布”参数。该参数定义子操作符中使用的随机函数的类型。函数类型还取决于“随机”子操作符生成的数据类型。

在接下来的讨论中,打开附带的场景文件 RandomTemplate.max ,从中可以使用不同的分布函数来演示效果。

您将从简单的分布类型开始:“统一离散”。如果“随机”子操作符设置为“整数”数据类型,这将是唯一可用的类型。离散与连续相对。“随机”子操作符生成在最小值和最大值之间均匀分布的整数数据(从这种意义上说,它是离散的),如 UI 中所定义。在下一示例 ( RandomTemplate01.max ) 中,最小值和最大值设置为 0 和 30。因此,可以看到粒子位置沿 X 坐标线(0、1、2、3 等,最大为 30)分布。以下是有关“统一离散”分布理论的详细信息。

“实数”数据输出类型提供了各种可用的分布类型。

“统一”分布类型非常类似于“统一离散”类型,拥有最小值和最大值以定义分布范围,但现在输出值连续分布在范围间隔内。以下是有关“统一”分布的详细信息。

“指数”分布选项通常用于可靠性工程。它可用于建模单位的行为,该单位具有完全随机的恒定故障率。指数分布的另一个示例是在放射性衰变中的不稳定粒子的个别生命周期分布。

“指数”分布选项只生成正值。大约一半的生成值小于“平均值”参数值;更多的生成值接近于零。生成的值可以是任意大;但是,值越大生成的可能性越小。在此示例 ( RandomTemplate02.max ) 中,平均值为 10;因此,大多数生成的值介于 0 和 70 之间。以下是有关“指数”分布的详细信息。

正态(或高斯)分布选项描述了观测值的独立随机误差的分布。其他通常采用正态分布或接近正态分布的示例包括体温、鞋的尺码、树的直径等。正态分布图是对称的钟形曲线。“平均值”参数定义了生成值的平均值(钟形曲线中心),“Sigma”参数则定义了生成值可以与平均值偏差多少。大多数值 (99.7%) 在 3 个 Sigma 偏移区间 [平均值 - 3*Sigma, 平均值 + 3*Sigma] 内生成。在以下示例 ( RandomTemplate03.max ) 中,“平均值”参数是 30,“Sigma”参数设置为 10,因此大多数生成值落到区间 [0.0, 60] 中。正态分布生成负值和正值。生成的值可以是任意大;但是,值越大生成的可能性越小(请参见上方的 3 Sigma 规则)。以下是有关“正态”分布的详细信息。

“三角形”分布选项是一种描述随机现象的简单方法,随机现象倾向于某个峰值,并受最小值和最大值范围的限制。在此示例 ( RandomTemplate04.max ) 中,“三角形”分布模拟上一个示例中的“正态”分布。以下是有关“三角形”分布的详细信息。

“韦伯”分布方法将“指数”分布延伸到不完全随机的事件;分布通常用于可靠性和具有老化过程的生命周期建模。在此示例 ( RandomTemplate05.max ) 中,“速率”参数等于 1.0,从而使“韦伯”分布等于“指数”分布,其“平均值”参数作为“韦伯缩放”参数。

您可以使用“韦伯”分布建模时间,直到给定的技术设备发生故障。如果设备的故障率会随时间的推移而减小,则设置“速率”< 1。如果设备的故障率会随时间的推移而增大,则设置“速率”> 1。“韦伯”分布也可以用于建模地球上给定位置的风速的分布 - 每个位置的特征用特定的“速率”和“缩放”参数表示。在此示例 ( RandomTemplate06.max ) 中,故障率等于 4,“缩放”等于 10,从而使大多数生成的随机值位于区间 [3.0, 15.0] 中。以下是有关“韦伯”分布的详细信息。

可以使用“噪波 R”、“噪波 V”、“噪波 V+T”、“湍流 V”和“湍流 V+T”选项在输入实数、向量和/或时间数据的基础上生成伪随机噪波类型值。“缩放”参数设置输入和输出数据之间的依存关系速率。较大的值产生更为平滑的噪波,较小的值产生锯齿现象更严重的噪波。“强度”参数控制输出值的大小。

“湍流”选项有“迭代次数”参数,它控制迭代次数或用于生成分形噪波的八度。较小的“迭代次数”值会创建更平滑的输出。“迭代次数”参数范围从 1.0 到 10.0。“噪波”选项生成正和负输出值;“湍流”选项只生成正值。

此示例 ( RandomTemplate07.max ) 使用粒子的随机 X 坐标生成 Y 坐标的相似噪波随机值:

在下一示例 ( RandomTemplate08.max ) 中,粒子随机放置在“数据”操作符图标的表面,然后使用“噪波 V”选项将其位置用作“随机”子操作符的输入。输出数据用于定义粒子的高度(Z 轴位置)。

通过关联“绝对时间”到“...+T”选项的“时间”输入,生成的噪波可以轻松设置动画,如本示例 ( RandomTemplate09.max ) 中所示:

“湍流”选项非常类似于“噪波”选项。您只需定义“迭代次数”参数,如此示例 ( RandomTemplate10.max ) 中所示。

和此示例 ( RandomTemplate11.max ) 中所示:

最后一个类别的分布选项输出“向量”数据。

“统一”分布选项使用 X 分量的限值 [–Max X, Max X]、Y 分量的限值 [–Max Y, Max Y] 和 Z 分量的限值 [–Max Z, Max Z] 在边界框内生成随机向量值。具有足够数量的粒子时,边界框可填充随机向量点 ( RandomTemplate12.max ):

“球体曲面”选项可用于将粒子放置在球体的曲面上。但是,最常见的用法是沿随机方向生成一个向量。在这种情况下,“半径”参数定义向量的长度 ( RandomTemplate13.max ):

或者您可能希望通过随机点填充整个“球体体积”( RandomTemplate14.max ):

您也可以使用“正态(高斯)”选项来填充球体体积,但使用此选项没有球体边界 - 靠近球体中心生成更多的点,并向外部逐渐减少。与以前一样的 3 Sigma 规则可以应用于此处:99.7% 的点在半径等于 3*Sigma 的球体内部生成 ( RandomTemplate15.max )。

“噪波 V”、“噪波 V+T”、“湍流 V”和“湍流 V+T”选项类似于相同名称的“实数”数据选项,只是它们生成的是“向量”数据。要显示输出数据,我们可以将其插入到后续步骤中的速度通道,并在前期步骤中将速度设置为零。按这种方式,粒子不会移动至任何位置,但我们可以绘制输出作为速度线。在此示例 ( RandomTemplate16.max ) 中,将粒子随机放置在矩形中,然后使用“噪波 V”选项将其位置用作“随机”子操作符的输入:

在这里 ( RandomTemplate17.max ) 使用的设置相同,但采用了“噪波 V+T”选项。我们使用当前时间作为“随机”子操作符的输入以设置“噪波”输出的动画:

我们可以将“随机”输出关联到“速度”通道,并使用“位置”通道作为“随机”子操作符的输入(这可用于模拟风湍流)。这是场景文件 RandomTemplate18.max 的第 98 帧:

界面

输出类型
选择要输出的数据类型:
  • 整数
  • 实数
  • 向量

“输出类型”设置确定“分布”组中可用的参数。

“分布”组

“分布”下拉列表的内容取决于“输出类型”选项。“分布”选项反过来又确定“分布”组中的剩余参数。

请参见前面讨论的有关“分布”选项和相关参数的特定信息。

参数动画同步
如果对子操作符参数进行了动画设置,则软件可以从动画的开始帧或当前事件的第一帧开始,将此动画应用于所有粒子,或根据每个粒子的年龄应用于相应粒子。这些选项包括:
  • 绝对时间为参数设置的任意关键点在为其设置关键点的实际帧处应用。
  • 事件持续时间为参数设置的任意关键点相对于每个粒子第一次进入事件的帧应用于每个粒子。
  • 粒子年龄为参数设置的任意关键点在每个粒子存在的相应帧处应用。
  • 粒子寿命将参数动画缩放/映射到粒子寿命期间。例如,如果在 0 至 100 帧中从 5 至 20 帧为参数值设置动画,则当粒子出生时该参数的值为 5,当粒子死亡时该参数的值为 20。例如,用这种方法可以定义粒子的缩放在其寿命期间发生的更改。

    为了使此选项正常工作,必须在流中将“删除”操作符设置为“按粒子年龄”,以定义粒子寿命。

  • 时间数据输入将时间输入添加到子操作符中,您可以将输出时间格式的数据的任何其他子操作符链接到该子操作符。
E6
添加相等类型数据输入,用于控制“动画同步”值。这可以仅从“类型”设置为“动画同步”的“参数”子操作符接收输入。
唯一性
可以改变“随机”子操作符生成的随机数序列。手动输入一个“种子”值或单击“新建”以使软件生成一个“种子”值。
E7
添加相等类型数据输入,用于控制“唯一性”值。这可以仅从“类型”设置为“唯一性”的“参数”子操作符接收输入。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文