在PBRT的蒙特卡罗一章中,在分布之间的转换一节中,他们说“因此可以导出相对于\theta和\phi的密度”,但是他们从
我的问题是,怎样才能看出这是真的呢?我知道,如果你同意,那么用d\omega = \sin \theta \ d\theta \ d\phi代替它会给出如下的结果,但是我甚至不知道如何读到这条起跑线,比如它是说“关于\theta和\phi times d\theta times d\phi定义的函数等于定义了关于\omega times d\omega的函数”吗?
不管怎么说,看起来应该是
根据5.5条?(用\theta和\phi表示函数,并使用d\omega = \sin \theta \ d\theta \ d\phi。)
发布于 2022-09-24 22:30:26
正如注释中提到的那样,这里有一件令人困惑的事情是,两个不同的函数被称为p。类似于C++中的函数重载,p(\omega)和p(\theta, \phi)是两个不同的函数,它们具有不同的域和对它们的输入的不同依赖,尽管在某种意义上它们抽象地表示相同的分布。
另一件让人困惑的事情是,这些函数返回的值不仅仅是数字。由于这些是概率密度函数,所以它们的值带有反面积的单位。此外,这两个函数表示不同区域的密度:p(\omega)是单位球面上的每个区域的概率,而p(\theta, \phi)是\theta-\phi平面上的单位面积的概率--由\theta和\phi作为笛卡尔坐标(就像x-y平面)形成的抽象2D平面。这些面积度量是相互关联的,但并不相同:正如您所观察到的,d\omega = \sin \theta \, d\theta \, d\phi。
像d\omega和d\theta \, d\phi这样的表示法是指这些面积度量。正如注释中提到的,这可以被数学地形式化为微分形式(下面是一个介绍,我发现它很有用)。
因为p(\omega)是单位球面上的每个区域的概率密度,如果d\omega是在点\omega周围的单位球面上的一个“小”区域,那么p(\omega) \, d\omega计算出的是一个概率--不是密度,而是一个普通的老概率数。在d\omega是无穷小的极限下,p(\omega) \, d\omega是d\omega区域内包含的概率量。
类似地,p(\theta, \phi) \, d\theta \, d\phi是包含在\theta-\phi平面的“小”区域内的概率量。声明
它的意思是:单位球面小面积内的概率量等于\theta-\phi平面上相应的小区域内的概率量。换句话说,概率是通过这两个区域之间的映射来守恒的。这是使这两个函数抽象地表示“相同”分布的条件,尽管使用了不同的变量进行了参数化。
条件需要这样写,因为概率密度不是无单位数。如果我们有一个函数,它的值只是普通数字,没有附加单元,我们想用不同的变量重新参数化它,条件是f(\omega) = f(\theta, \phi):当我们改变变量时,函数应该将相同的值保持在“同一”点。但是在概率密度下,我们不想要相同的函数值,我们希望在区域的每个部分都有相同的概率。
利用这个“概率守恒”条件p(\omega) \, d\omega = p(\theta, \phi) \, d\theta \, d\phi,再加上两个面积测度d\omega = \sin \theta \, d\theta \, d\phi之间的关系,我们可以导出:
这表明,要用\theta, \phi来表示球面分布,不仅要改变变量,还要用\sin \theta乘以函数来保持概率。这个\sin \theta因子被称为“逆Jacobian",它解释了转换是如何在域的不同部分扩展区域的。
https://computergraphics.stackexchange.com/questions/12991
复制相似问题