首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用GGX对问题进行一致采样

用GGX对问题进行一致采样
EN

Computer Graphics用户
提问于 2020-11-11 22:22:08
回答 1查看 69关注 0票数 0

我已经做了一个程序,统一采样环境地图和计算照明使用GGX。

我已经做了一个小例子,重现了我正在面对的问题。您可以在线查看:简写/tvzGY

该算法的工作原理如下:

  1. 我们计算V,从表面指向摄像机的单位向量。FPosition是片段在相机空间中的位置,所以我们可以用它来计算V
  2. 我们将在均匀随机方向上取几个样本方向L。这些样本是在正常N方向的半球内采集的。
  3. 在实际程序中,我们将使用L来示例环境映射,但为了简单起见,在提供的示例中,我只是假设一个复杂的白色环境(问题无论如何都会发生)。
  4. 对于每个样本,我们用GGX计算渲染方程,并将其累积到一个变量中。
  5. 最后,我们除以样本数。

我正在使用我在这个站点中找到的GGX公式:http://graphicrants.blogspot.com/2013/08/specular-brdf-reference.html

我的问题是看上去不太对劲。如果你打开链接,你会看到这个。

粗糙度= 0.1,金属= 1.0,numSamples = 10。

在右上角,切换到球体。你就会看到这个。

你看这些亮点,它们的数量与样品的数量相关。也许这是有道理的。但是当我把样本数增加到100个时,我们得到了这个。

有更多的斑点,但他们也是较小和模糊。我想我一定是做错了什么,因为它看起来不像金属。还是因为取样的均匀性?即使每像素有1000个样本,在我看来也不太对。

EN

回答 1

Computer Graphics用户

回答已采纳

发布于 2020-11-11 23:10:13

你是如何随机抽取样本的?在我看来,也许图像中所有像素的随机值都是相同的,这就解释了为什么当你有10个样本时,你会看到10个相干的亮点。

每个像素的样本应该被重新随机化。这应该会产生一个嘈杂的结果,一个模糊的亮点,而不是10个(或许多)相干的亮点。

票数 2
EN
页面原文内容由Computer Graphics提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://computergraphics.stackexchange.com/questions/10390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档