主页 Forums Games202-高质量实时渲染 [作业1] PCSS中计算光源Size的计算问题

Tagged: 

Viewing 2 reply threads
  • Author
    Posts
    • #8460 Score: 0
      Maha
      Participant

      各位大佬在查看Nvidia的PCSS实现代码中,有两个地方没有看懂,闫老师好像也没有提到。请各位大佬不吝指教。

      问题1:
      图1中的Light_Size_UV代表了什么?是怎么计算出来的?为什么拿LightSize在世界坐标系的宽度除以光的锥体宽度就是light在UV坐标下的大小?

      问题2:
      图2中的filterRadiusUV计算中,需要LIGHT_SIZE_UV * NEAR_PLANE / coords.z,这个NEAR_PLANE / coords.z是不是图3中所说的kernel size。

      感觉是不太懂光源大小的计算,才会有这些问题。请路过的大佬指教!

      所有截图都在附件里。文章链接如下:
      (图1、2)https://developer.download.nvidia.cn/whitepapers/2008/PCSS_Integration.pdf
      (图3) https://developer.download.nvidia.cn/shaderlibrary/docs/shadow_PCSS.pdf

      Attachments:
      You must be logged in to view attached files.
    • #8465 Score: 0
      Cute Loong
      Participant

      我觉得可能是限制pcf的kernel size,避免需要过大的bias,再这篇文章里面有写As the kernel size increases, larger and larger depth biases need to be used to avoid false self-shadowing.

    • #9141 Score: 0
      fAther
      Participant

      http://research.michael-schwarz.com/publ/files/shadowcourse-eg10.pdf 84页,相比课上说的增加了一步就是计算完w_penumbra 之后如何计算在shadowmap上对应的采样范围,也就是LIGHT_SIZE_UV * NEAR_PLANE / coords.z,另外 这里的coords.z应该是这个点到shadowmap投影的近平面的距离,而不是真正到到光源的距离,因此在作业2的代码中有一句注释 float zReceiver = coords.z; // Assumed to be eye-space z in this code

      • #9171 Score: 0
        Maha
        Participant

        感谢大佬的回复,我看懂了。顺便网站也收藏了,拜谢!

Viewing 2 reply threads
  • You must be logged in to reply to this topic.