Note: This is an archived version of the Blender Developer Wiki (archived 2024). The current developer documentation is available on developer.blender.org/docs.

User:OmarSquircleArt/WeeklyReports/2023

Week 1

March 7 to March 13.

  • Bicubic interpolation support for Realtime Compositor. cbf569523c.
  • Allow access to multiple EXR passes and layers in Realtime Compositor by fixing missing GPU texture updates. PR #105547.
  • Refactor GPU texture samplers. Allow per-axis image repetition in Realtime Compositor. PR #105642.

Week 2

March 21 to March 27.

  • Fix: Realtime compositor outputs wrong EXR passes. 04d128f545.
  • Continued working on refactoring GPU texture samplers. PR #105642.
  • Implement Fog Glow Glare node. PR #106042.
  • Implement Anti-Aliasing node. 2f4a7d67b7.
  • Fix: Glare has an offset on low quality settings. c42370d577.
  • Use luminance coefficients in SMAA. 3d06905ac4.
  • Spent some time debugging dynamic linking issues when using RenderDoc to debug Blender. Found the root cause and looking into either fixing it or documenting the workaround somewhere.

Week 3

April 4 to April 10.

  • GPU: Refactor texture samplers. ff3b2226fb.
  • Realtime Compositor: Implement Z Combine node. b939b60c3f.
  • Realtime Compositor: Implement Displace node. 625ba3cb5d.
  • Realtime Compositor: Implement Fog Glow Glare node. cc5128f6ca.
  • Realtime Compositor: Implement ID Mask node. PR #106593.
  • Realtime Compositor: Implement Map UV node. PR #106765.

Week 4

April 18 to April 24.

Shorter week because of two days of a national holiday.

  • Fix #106751: No implicit conversion for group inputs. c10e8e4166.
  • Realtime Compositor: Implement ID Mask node. 3d6117994c.
  • Investigate adjustments with identity settings in the Hue Correction node. #106965.
  • Realtime Compositor: Implement Texture node. PR #107291.

Week 5

April 24 to May 1.

  • Realtime Compositor: Implement Denoise node. PR #107375.
  • Realtime Compositor: Implement Stabilize 2D node. PR #107401.
  • Realtime Compositor: Implement Texture node. 151a53110c.
  • Realtime Compositor: Implement Corner Pin node. fa2dbceadd.
  • Realtime Compositor: Implement Mask node. 3f6912ece2.
  • Realtime Compositor: Split cache into containers. 1c3d67d4cc.
  • Realtime Compositor: Optimize image textures. a32dbb892f.
  • Realtime Compositor: Prioritize Viewer output node. 5fa8f7746c.
  • Fix #106965: HSV/HSL conversion differ from CPU compositor. 59b6e8900f.
  • Realtime Compositor: Add missing domain priority for mask nodes. b68b3e7b8f.

Week 6

May 9 to May 15.

  • Realtime Compositor: Implement Convert Color Space node. d91f0bf8d2.
  • Realtime Compositor: Implement Plane Track Deform node. 6698e8f4a0.
  • Fix #107583: HSV node differ from CPU compositor. f9b5b0efd2.
  • Realtime Compositor: Implement Denoise node. e8c660b855.
  • Realtime Compositor: Implement Stabilize 2D node. 88d03d15c1.

Week 7

May 23 to May 29.

  • Realtime Compositor: Implement Movie Distortion node. PR #108230.
  • Realtime Compositor: Implement Keying node. PR #108393.
  • Reviewed: Add Fractal Voronoi Noise V.2. PR #106827.
  • Investigate and try to make sense of the Sun Beams node.

Week 8

June 6 to June 12.

  • Realtime Compositor: Implement Movie Distortion node. f06929766b.
  • Realtime Compositor: Implement Sun Beams node. 9ddc8504fa.
  • Realtime Compositor: Support Viewer nodes. 5400fe941e.
  • Nodes: Add bNodeInstanceKey to DerivedNodeTree. PR #108900.
  • Realtime Compositor: Add support for node previews. PR #108904.
  • Reviewed a number of pull requests related to compositing.

Week 9

June 20 to June 26.

Had to take one day off this week.

  • Nodes: Add bNodeInstanceKey to DerivedNodeTree. 740baefb16.
  • Realtime Compositor: Add support for node previews. b450101000.
  • Fix: Sun Beams shader does not work on Metal. 75b519eb89.
  • Fix: Wrong reference count for shader operation. d6cd3db13b.
  • Realtime Compositor: Add node previews for shader operations. 753747e859.
  • Nodes: Compute logically linked sockets to outputs. c6e5be9a36.
  • Realtime Compositor: Implement Keying node. c9e6399fe1.
  • Realtime Compositor: Implement Classic Kuwahara. PR #109292.
  • Worked on support for Summed Area Tables for the compositor.
  • Reviewed a number of pull requests related to compositing and shading.

Week 10

July 4 to July 10.

Most of the week was spent on prerequisites to the Classic Kuwahara node PR #109292, including:

  • A Summed Area Table implementation algorithm.
  • Full float extension to compositor results.
  • A library for evaluating the computed SAT.

Week 11

July 18 to July 24.

  • Fix #109676: GPU compositor crashes on muting output nodes. 5be226699f.
  • Fix #109869: Switch View node crashes on editing. 4c72dc98c2.
  • Realtime Compositor: Implement Classic Kuwahara. 940558f9ac.
  • Fix #109868: Keying node differ between GPU and CPU. bdb042c243.
  • Fix #110281: Keying node despill is wrong on GPU. 6400190836.
  • Compositor: Use average color variance in Kuwahara node. a939f46350.
  • Researched and worked on an optimized version of Anisotropic Kuwahara node for the Realtime Compositor.

Week 12

August 1 to August 7.

  • Realtime Compositor: Implement Anisotropic Kuwahara. PR #110786.

Week 13

August 14 to August 21.

  • BLI: Add 2D transformation matrix decomposition. 85a3f61150.
  • Realtime Compositor: Support realization of transformations. 726ba534fc.
  • BLI: Add square function. 110cb5d0d5.
  • Realtime Compositor: Implement Anisotropic Kuwahara. 9ef2310e5f.
  • Realtime Compositor: Realize rotation for filter nodes. PR #111213.
  • Realtime Compositor: Realize rotation and scale for filter nodes. PR #111216.
  • Fix: Bokeh Blur not affected by transforms. #102252.
  • Patch review and research on Gabor noise.
  • Research parallel algorithms necessary for Inpaint and Double Edge Mask nodes. 1+JFA and PBA+ algorithms.

Week 14

August 29 to September 4.

  • Implement 1+JFA algorithm. PR #111792.
  • Realtime Compositor: Implement Inpaint node. PR #111792.
  • Realtime Compositor: Implement Double Edge Mask node. (Not submitted yet.)
  • Code review.

Week 15

September 11 to September 15.

  • Realtime Compositor: Immediately realize transformations. PR #112332.
  • Realtime Compositor: Allow more result types. PR #112414.
  • Compositor: Use RBF Interpolation in Keying Screen node. PR #112480.
  • Realtime Compositor: Implement Inpaint node. PR #111792.
  • Realtime Compositor: Implement Double Edge Mask node. PR #112223.

Week 16

September 25 to September 29.

  • Fix: Cached distortion grids are not reset. 869d0aeaa1.
  • Realtime Compositor: Use Int2 images in JFA algorithm. f217380128.
  • Realtime Compositor: Implement Keying Screen node. PR #113055.
  • Compositor: Use RBF Interpolation in Keying Screen node. PR #112480.
  • Realtime Compositor: Allow variable Kuwahara size. PR #112946.
  • Realtime Compositor: Implement Inpaint node. acb88528a5.
  • Realtime Compositor: Implement Double Edge Mask node. 5008938a1c.
  • Realtime Compositor: Allow more result types. 6b53fd5cf6.
  • Code review.

Week 17

October 2 to October 6.

  • Realtime Compositor: Implement File Output node. PR #113204.
  • Fix: GPU compositor always returns first view. 8860dc9910.
  • Cleanup: Clarify the use of DrawDataList. a609af06f9.
  • Realtime Compositor: Implement Keying Screen node. 17bdf18397.
  • Compositor: Use RBF Interpolation in Keying Screen node. 75c947a467.
  • Realtime Compositor: Allow variable Kuwahara size. PR #112946.
  • Full float precision support, not yet submitted.

Week 18

October 9 to October 13.

  • Compositor: Allow variable size Kuwahara. 203559757a.
  • Realtime Compositor: Support full float compositing. PR #113476.
  • Realtime Compositor: Immediately realize transformations. e592763940.
  • Write manual for 4.0. 1f038f05e7. e66b06de85.
  • Fix #112883: GPU compositor crops viewed image. 405ec79a0a.
  • Fix: GPU Compositor rotation transposes the image. 444241fbcf.
  • Realtime Compositor: Immediately realize wrapped translations. PR #113669.
  • Investigate Kuwahara precision issues and alternative File Output node implementation.

Week 19

October 16 to October 20.

  • Realtime Compositor: Immediately realize wrapped translations. PR #113669.
  • Cleanup: Move compositor headers to c++. 9f1538b586.
  • Fix #113768: GPU compositor is leaking memory. cea5ea4096.
  • Fix: Texture pool resources are freed in wrong context. edfa6f3235.
  • Compositor: Refactor File Output node. PR #113982.
  • Investigate a number of reports regarding experimental GPU compositor and new transformation method.

Week 20

October 23 to October 27.

  • Compositor: Refactor File Output node. PR #113982.
  • Fix #112716: Custom sockets ignore draw_color method. PR #114148.
  • Fix #113864: Compositor translation is doubled. 3f49d286cc.
  • Realtime Compositor: Improve classic Kuwahara precision. PR #114191.
  • Fix #113811: Blender freezes upon adding a Cryptomatte node. 01a2bd0369.
  • Patch review.

Week 21

October 30 to November 3.

  • Cleanup: Generalise input reading in compositor. f79b3ffe12.
  • Cleanup: Use input reading shaders for Movie Clip node. 56ffa441b9.
  • Fix #114260: Compositor sometimes produces straight alpha. PR #114305.
  • IMB: Support rgba and V channels in single-layer EXR. b54a26ede4.
  • Fix #112716: Custom sockets ignore draw_color method. cbcfca0a19.
  • Realtime Compositor: Support full float compositing. PR #113476.
  • Realtime Compositor: Immediately realize wrapped translations. 1500a594ad.
  • Fix #114422: Inpaint node ignores semi-transparent pixels. PR #113476.

Week 22

November 6 to November 10.

Shorter week, had to take Thursday off due to moving home.

  • Nodes: Draw using draw_color_simple as a fallback. 54e35e7388.
  • Fix #114530: Cryptomatte node not link drag searchable. ae739a6173.
  • Cleanup: Fix warnings due to disabled OCIO. 571bddb6c8.
  • Fix #114260: Compositor sometimes produces straight alpha. 5258b17ef6.
  • Realtime Compositor: Support full precision compositing. 474b6fa070.
  • Researched parallel acceleration of diffusion based inpainting methods.
  • Started a rewrite of the Inpaint Node.
  • Code review.

Week 23

November 13 to November 17.

  • Fix #113653: Compositor superfluously executes on scene changes. c98308a77e.
  • Realtime Compositor: Rewrite inpaint node. PR #114849.
  • Compositor: Refactor File Output node. PR #113982.
  • Fix #114648: Compositor executes upon editing non-compositor trees. 7ea54b7472.
  • Viewport Compositor: Allow access to depth pass. c5eb420c74.
  • Fix: Link errors due to different linkage in recent refactor. b71cddb6b4.
  • Worked on cryptomatte support for the realtime compositor.
  • Code review.

Week 24

November 20 to November 24.

  • Compositor: Refactor File Output node. PR #113982.
  • Fix: DEG: Image updates are flushed for initial evaluation. PR #115240.
  • Realtime Compositor: Rewrite inpaint node. 48d7d60c96.
  • IMB: Read single-layer XYZ channels as a combined image. PR #115290.
  • Fix #115043: Compositor crashes for huge render sizes. PR #115299.
  • Cached images for realtime compositor. Needs a proper solution to PR #115240.
  • Code review.

Week 25

November 27 to December 1.

  • Fix #115043: Compositor crashes for huge render sizes. 5af7d3e2be.
  • IMB: Read single-layer XYZ channels as a combined image. PR #115290.
  • Realtime Compositor: Add static cached images. PR #115511.
  • Fix: Missing compositor update upon changing tree options. 5e370ee643.
  • Realtime Compositor: Implement zero cost external images. 07e051d7cd.
  • Realtime Compositor: Add utilities to handle texture formats. b8f4c45638.

Week 26

December 4 to December 8.

  • Fix: Dangling pointer in Split Viewer versioning. 771a0cf4e7.
  • Compositor: Disable preview of Split node by default. b183a1cd12.
  • Compositor: Add High Precision option to Kuwahara. PR #115763.
  • Fix #107465: Compositor Texture node produces artifacts. 689040db2f.
  • Fix #115859: Cryptomatte node considers preview channels. 45dcc61fd2.
  • Realtime Compositor: Implement Cryptomatte node. PR #115884.
  • Realtime Compositor: Add static cached images. PR #115511.
  • Code review.

Week 27

December 11 to December 15.

I only worked part of Friday due to a personal life event.

  • Researched and worked on the Defocus node, still a work in progress.
  • Compositor: Use full precision inputs for GPU compositor. eabe386e8e.
  • Realtime Compositor: Cache bokeh kernel image. bcea221021.
  • Fix #116037: Corner Pin mask retains original alpha. a6948310b9.
  • IMB: Read single-layer XYZ channels as a combined image. 23df139aaf.
  • Cleanup: Move Cryptomatte node defines into enums. 123da3412b.
  • GPU: Add function for setting float array uniforms. 048f70e7c2.
  • Realtime Compositor: Add static cached images. 356480fabb.
  • Realtime Compositor: Implement Cryptomatte node. a8e13994b8.
  • Compositor: Refactor File Output node. 931c188ce5.
  • Code review.

Week 28

December 18 to December 22.

  • Compositor: Only execute compositor if result is viewed. e165624885.
  • Realtime Compositor: Implement Defocus node. e055db6605.
  • Viewport Compositor: Add option to exempt Grease Pencil. PR #116425.
  • Fix: Crash in single value input to Glare node. dea7d65ee7.
  • Fix #116432: Crash when changing source of image node. 9bbe81b630.
  • Compositor: Support viewer offset in GPU compositor. 7a8e349b73.
  • Investigate and read literature on motion blur. The plan is to use the same method used by EEVEE.
  • Code review.

Week 29

December 25 to December 29.

I had to take Friday off.

  • Read the literature on motion blur and started implementing an EEVEE-equivalent implementation.
  • Compositor: Support viewer offset in GPU compositor. 7a8e349b73.
  • Fix: Bokeh images missing write usage flag. 92a0dfed94.
  • Fix #116522: Compositor incorrectly extrapolates values. dc082f432a.
  • Code review.