Home Forums Games202-高质量实时渲染 请教讨论一下关于PCF思想的两个问题

Tagged: 

Viewing 1 reply thread
  • Author
    Posts
    • #7979 Score: 0
      zpo
      Participant

      参考Lecture3 Page32

      for point P on the floor,
      (1) compare its depth with all pixels in the red box, e.g. 3×3
      (2) get the compared results, e.g.
      1, 0, 1,
      1, 0, 1,
      1, 1, 0,
      (3) take avg. to get visibility, e.g. 0.667

      Q1:如果从光源看向一个没有遮挡物体的地板,也类似这么做,取着色点P的深度,和Shadow Map中其附近纹素存储的深度值对比,P应该是小于近处地板的深度(不可见),大于远处的地板深度(可见),这样看即便没有任何遮挡visibility也<1。如果是PCSS的话可以理解,会在一定范围内搜索blocker并自适应filter大小,如果没有blocker就可以设置filter大小为该P点本身,就不会出现这样的情况。但是不太清楚PCF思想中怎么处理这样的情况,是类似自遮挡问题那样加上一定的误差吗?

      Q2:为什么PCF选择在Shadow Map中取P点附近的纹素对比算平均,而不是取P点附近的其他着色点深度分别对比其对应纹素的深度得出其可见性再算平均呢?是从实现的难易程度考虑吗?

    • #7981 Score: 1
      flyingSnow
      Participant
      5 pts

      Q1,从我实验结果来看,确实也需要bias。

      Q2的话,我理解既然是面光源,入射光不止从一个方向来,所以稍微变动一下入射光角度,用P点和周围遮挡物取平均,得出的是P点受角度略不同的周围遮挡物的影响。
      而不是把周围点受遮挡物的影响取平均,周围点是否受遮挡和P点没有关系。

      This post has received 1 vote up.
      • This reply was modified 3 years, 8 months ago by flyingSnow.
      • #7983 Score: 0
        zpo
        Participant

        非常感谢一次就解答了我的两个疑问。Q2的确是我没有考虑面光源的问题,从面光源的视角看,确实应该是取Shadow Map中P点周围纹素来计算该着色点的平均可见度,这也是软阴影产生的本质原因,即部分光源能看到P点部分光源看不到。

        才发现课件中的这个图也解释了…
        面光源PCF

Viewing 1 reply thread
  • You must be logged in to reply to this topic.