跳转到内容

sample_hemisphere

vector sample_hemisphere(vector2 u)

vector sample_hemisphere(vector center, vector2 u)

vector sample_hemisphere(float bias, vector2 u)

vector sample_hemisphere(vector center, float bias, vector2 u)

center

半球中心的朝向向量。该向量不需要归一化处理。 若未指定,默认中心方向为x轴方向(1,0,0)。

bias

控制朝向中心方向的偏置系数,取值范围为-1到无穷大:

  • 0表示无偏置
  • -1表示所有点强制朝向边缘
  • 无穷大表示所有点强制朝向中心 当提供该参数时,u.y会被替换为1-pow(1-u.y, 1.0/(bias+1.0))。若要在更通用的sample_direction_conesample_sphere_cone及相关函数中实现类似偏置效果,可在调用这些函数前对u.x进行相同变换。

u

取值范围在0到1之间的数值对。

返回基于u生成的单位向量(长度为1的向量)。 当输入均匀随机的u数值对(值域[0,1))时:

  • bias为0,返回的单位向量将在以center为中心的半球面上呈现均匀随机分布,且相对于u保持连续性
  • bias大于0,单位向量将平滑地向center方向偏置
  • bias在-1到0之间,单位向量将背离center方向,向边缘偏置