一、球面相对均匀的随机单位向量
vec3 rndunit(float seed) {
return normalize(tan(hash3(seed)));
}
这个函数从给定的种子生成一个随机的单位向量。它依赖于一个名为 “hash3” 的函数(一个参数生成三维的向量我把它简称为 “一生三” 的 hash 函数),该函数会生成一个在 [-1,1] 范围内的随机 vec3。
它与直接标准化向量(即 normalize)的简单方法稍有不同。假设我们直接将一个方框中的向量映射到一个球面上的向量,我们会得到的是 沿着立方体的边角聚集起来 的向量。tan 调用本质上是考虑