Page MenuHome

Cycles: use more PMJ patterns and make their size adaptive.
ClosedPublic

Authored by Nathan Vegdahl (cessen) on Nov 20 2022, 6:19 AM.

Details

Summary

This resolves some issues with correlation artifacts at higher
sample counts. See T101356

Diff Detail

Repository
rB Blender
Branch
variable_pmj_table_size (branched from master)
Build Status
Buildable 24753
Build 24753: arc lint + arc unit

Event Timeline

Nathan Vegdahl (cessen) requested review of this revision.Nov 20 2022, 6:19 AM
Nathan Vegdahl (cessen) created this revision.
Nathan Vegdahl (cessen) edited the summary of this revision. (Show Details)Nov 20 2022, 6:19 AM

I'm not totally sure I've done everything here correctly, particularly in terms of handling alloc/free and passing the pattern size around.

Sorry for nit-picking.
In intern/cycles/kernel/sample/jitter.h on line 19 you have:
/* NUM_TAB_SOBOL_SAMPLES should be a power of two... */
Shouldn't it be NUM_PMJ_SAMPLES since we haven't switched over to tabulated Sobol yet?

Gah! Yes, thanks for catching that. Copy-paste mistake.

  • Fix copy-paste error in comment.
  • Run clang-format.

Seems to work well in my tests, including converging to consistent result with test file from T101356.

This revision is now accepted and ready to land.Nov 21 2022, 7:08 PM