sample_normal
float sample_normal(float u)
float sample_normal(float mean, float stddev, float u)
float sample_normal(float origmean, float origstddev, float minvalue, float maxvalue, float u)
vector2 sample_normal(vector2 u)
vector sample_normal(vector u)
vector4 sample_normal(vector4 u)
u
一个或多个在 [0,1)
范围内的数值。
mean
分布的均值,未指定时默认为0。
origmean
不考虑 minvalue
和 maxvalue
范围限制时的原始分布均值。
stddev
分布的标准差(尺度参数),未指定时默认为1。
origstddev
不考虑 minvalue
和 maxvalue
范围限制时的原始分布标准差。
minvalue
,maxvalue
当提供这两个参数时,将采样范围限制在 [minvalue,maxvalue]
内的正态分布。
根据指定的 mean
和 stddev
参数采样正态分布,可选择性地使用 minvalue
和 maxvalue
限制范围。
给定 [0,1)
区间内的均匀随机数 u
,该函数将返回符合正态分布的随机数。返回值相对于 u
是单调递增的。
vector2
、vector
和 vector4
版本返回均值为0、标准差为1的多个采样值。这些向量的分布具有天然的等向性(isotropic),即旋转分布不会改变其特性,这在模拟中很有用。
若要在保持分布等向性的同时限制与原点的最大距离,可使用:
sample_normal(0,1,0,maxdist,u.x) * sample_direction_uniform(set(u.y,u.z))