【发布时间】:2013-06-18 09:21:54
【问题描述】:
这是基于我提出的问题here,但我想我可能以错误的方式提出了这个问题。这是我的问题: 我正在写一个科学的射线追踪器。 IE。尽管概念相同,但不适用于图形。
我从水平面向抛物面发射光线,焦距为 100m(和完美的镜面反射)。我在菜的焦点上有一个目标。光线不是从平面垂直发射,而是受到一定角度的扰动,以模拟太阳不是点源而是天空中的圆盘这一事实。
然而,来自太阳的通量在太阳圆盘上并不是径向恒定的。中间比边缘更热。如果你曾经在朦胧的日子里看过太阳,你会看到太阳周围有一个环。
由于是抛物面,Target 上的反射图像应该是太阳的图像。即它应该在中间比边缘更亮(更热,更多通量)。这是由强度与强度的图表给出的。到中心的径向距离
有两种方法可以模拟这个。
首先:均匀采样:每条光线都以相等(均匀)的概率从 0 和太阳圆盘大小之间的角度射出。然后,我根据该角度对应的通量值缩放射线携带的通量。
二:任意采样:每条光线都是根据Intensity Vs的分布从平面射出的。径向距离。因此,朝向外边缘的光线将比中心内的光线少。这对我来说似乎更有效率。但我无法让它工作。有什么建议吗?
这就是我所做的:
一致
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 是一个均匀随机数,theta 是太阳圆盘的对角。
任意抽样
alpha = arccos (1-(1-cos(theta)) B1)
其中B 是使用第 27 页 here 上的算法从任意分布生成的随机数。
我急于解决这个问题。
【问题讨论】:
-
这永远不会真正问问题。
-
我相信您正在尝试做的事情称为“重要性抽样”,是的,如果您可以让它发挥作用,它应该会更有效。
标签: graphics raytracing sampling montecarlo