Home Forums GAMES在线课程(现代计算机图形学入门)讨论区 大作业重要性采样及多重重要性采样实现中遇到的问题

  • This topic has 7 replies, 2 voices, and was last updated 3 years ago by Bob.
Viewing 6 reply threads
  • Author
    Posts
    • #9886 Score: 0
      Bob
      Participant

      1、在完成了作业7的提高项———对物体采用微表面渲染以获得更多材质之后,渲染结果在Roughness较大时噪点较少,但在Roughness较小时噪点急剧增加。

      2、于是决定改善采样函数sample() 和 pdf(), 采用了cos_weighted采样和NDF_weighted(法线分布函数,即D这一项)采样相结合的方式,来采样渲染方程。由于BRDF = Kd / PI + Ks * DFG / (cos1*cos2) , Kd / PI 采用cos_weighted采样, Ks * DFG / (cos1*cos2)采用NDF_weighted采样。具体实现是生成一个随机数a,若 a < Kd, 则用cos_weighted, 反之则使用NDF_weighted.

      3、本以为实现了重要性采样之后,蒙托卡洛积分会更迅速收敛到渲染方程积分的真实值,从而使图像噪点大幅减少,没想到,试了几次 物体Roughness = 0.1, 墙壁Roughness = 0.8, SPP = 32 下得出的图像噪点都很大,甚至在物体Roughness较大时,物体表面的噪点比原本实现前的效果还差。附件附上具体实现代码,望助教或同学看到不吝赐教,我已经被折磨出痛苦面具了。

      4、这里写一些上面没有提到的细节。在下面的代码中,我是把所有物体(包括墙面)都用微表面来建模的,舍弃了原本提供的diffuse材质。其次,castRAY()是求人眼发射出光打到的第一个点, 随后将该交点传入shade()函数,由shade()进行递归求交,这部分采用作业7 PDF中提供的伪代码实现。

      Attachments:
      You must be logged in to view attached files.
    • #9888 Score: 0
      Bob
      Participant

      附上代码

      Attachments:
      You must be logged in to view attached files.
    • #9893 Score: 0
      Bob
      Participant

      +++

      Attachments:
      You must be logged in to view attached files.
    • #9897 Score: 0
      Bob
      Participant

      效果图

      Attachments:
      You must be logged in to view attached files.
    • #9899 Score: 0
      Bob
      Participant

      实现重要性采样后的效果图

    • #9900 Score: 0
      Bob
      Participant

      第一张是采用老师提供的pdf()和sample()采样的效果图, 没有重要性采样
      第二张是实现了重要性采样的效果图

      Attachments:
      You must be logged in to view attached files.
    • #10012 Score: 0
      lav
      Participant
      -1 pt

      为什么要加漫反射项? 这样的物体看起来明显更diffuse啊

      • #10016 Score: 0
        Bob
        Participant

        被网上的资料误导了,后来去掉了,效果就还可以

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