我正在编写一个光线追踪器,我希望根据某种分布将光线从点p发射到该点上方的半球。
1)我推导出了一种在p 图像上方的立体角(由 theta 定义)内均匀采样的方法
phi = 2*pi*X_1
alpha = arccos (1-(1-cos(theta))*X_2)
x = sin(alpha)*cos(phi)
y = sin(alpha)*sin*phi
z = -cos(alpha)
哪里X
是统一随机数
那行得通,我对此很满意。但我的问题是,如果我不想要均匀分布会发生什么。
我从这里开始使用第 27 页的算法,我可以从分段任意分布中抽取样本。但是,如果我简单地说:
alpha = arccos (1-(1-cos(theta)) B1)
哪里B
是从任意分布生成的随机数。它表现得不好......我做错了什么?提前致谢。我真的很需要帮助
附加: 也许我在问一个引导性问题。退后一步:有没有办法根据任意分布在半球上生成点。我有一种用于均匀采样半球的方法和一种用于余弦加权半球采样的方法。(pg 663-669 pbrt.org )