User:JoeEagar/Reports/2022

D12587 (temp-sculpt-colors)

 * Polished D1258 to get ready for master:
 * Fixed bugs
 * Added back color picker panel
 * Fixed icons
 * Updated patch for latest master (including new GPU subsurf);
 * Vertex color node now shows all color layers in its quick search list.

sculpt-dev

 * New automasking modes:
 * Mask by view normal, works similarly to front face only but with a falloff.
 * Mask by brush normal, compares normals with initial brush normal at start of stroke, see video.



January 10 to January 14

 * 1) Cleaned up sculpt temp attribute api.
 * 2) Fixed various bugs and crashes in sculpt-dev:
 * 3) Merged master into sculpt-dev and temp-sculpt-colors.
 * 4) Further cleaned up temp-sculpt-colors (D12587).
 * 5) Fixed bug with sculpt undo system losing track of the active color attribute.
 * 6) Made various requested changes.
 * 1) Merged master into sculpt-dev and temp-sculpt-colors.
 * 2) Further cleaned up temp-sculpt-colors (D12587).
 * 3) Fixed bug with sculpt undo system losing track of the active color attribute.
 * 4) Made various requested changes.

January 15 to January 21

 * 1) Cleaned up doc comments for sculpt_intern.h.
 * 2) Merged master -> sculpt-dev
 * 3) Fixed a few bugs in sculpt-dev
 * 4) Worked on blog post

January 23 to January 28
I think the stock OEM ones got broken by the upgrade to Windows 11.
 * 1) Worked on sculpt colors patch.
 * 2) Refined draft of blog post.
 * 3) Roughed out C++ backend for new brush engine system as a proof of concept.
 * 4) Spent an inordinate amount of time merging branches.
 * 5) Attempted to debug Wintab.  I ended up having to upgrade my drivers;

February 1 to February 5

 * 1) Made DynTopo in sculpt-dev use a new, unified edge heap (a min-max heap).
 * 2) Worked on sculpt colors patch.

February 7 to February 11

 * 1) Cleaned up some code in sculpt-dev.
 * 2) Worked on sculpt colors patch

== February 14 to February 18
 * 1) Worked on sculpt colors patch
 * 2) Did research for texture paint project.

February 21 to February 25

 * 1) Worked on sculpt colors patch
 * 2) Started work on texture paint prototype.
 * 3) Got seams to work in JS prototype.
 * 4) Ported vertex paint to C++
 * 5) Supports vertex and corner (float/byte) color layers.
 * 6) Added corner colors support to sculpt undo

February 28 to March 4

 * 1) Continued work on texture paint prototype.

March 7 to March 11

 * 1) Got texture paint to work on a proof of concept level.
 * 2) Figured out how to build neighbor lists for texels across triangle seams. JS prototype
 * 3) Worked on PBVH EEVEE patch D13897

March 14 to March 18

 * 1) Submitted patch to add triangle iterators to PBVH (in texture paint branch). D14339.
 * 2) Fix minor sculpt-dev bugs:
 * 3) Dyntopo fixes in sculpt-dev:
 * 4) Roughed out PBVH caching (plan is to implement and test in sculpt-dev before making a patch against either master, the texture paint branch or both).
 * 1) Dyntopo fixes in sculpt-dev:
 * 2) Roughed out PBVH caching (plan is to implement and test in sculpt-dev before making a patch against either master, the texture paint branch or both).
 * 1) Roughed out PBVH caching (plan is to implement and test in sculpt-dev before making a patch against either master, the texture paint branch or both).
 * 1) Roughed out PBVH caching (plan is to implement and test in sculpt-dev before making a patch against either master, the texture paint branch or both).
 * 1) Roughed out PBVH caching (plan is to implement and test in sculpt-dev before making a patch against either master, the texture paint branch or both).

March 21 to March 25

 * 1) Fixed various issues in sculpt vertex colors patch:
 * 2) Data transfer modifier
 * 3) Reverse/rotate face colors in editmode
 * 4) Changed various UI strings from "vertex colors" to "color attributes."
 * 5) Mask by color
 * 6) Alpha getting mangled for byte colors
 * 7) Layer auto creation
 * 8) Undo crash
 * 9) Improved smear brush in sculpt vertex colors patch
 * 10) Fixed various bugs in pbvh caching:
 * 11) Fix pbvh cache crashes in sculpt-vev:
 * 1) Fix pbvh cache crashes in sculpt-vev:
 * 1) Fix pbvh cache crashes in sculpt-vev:
 * 1) Fix pbvh cache crashes in sculpt-vev:
 * 1) Fix pbvh cache crashes in sculpt-vev:

March 28th to April 1

 * 1) Sculpt vertex colors patch
 * 2) Merge master into sculpt-dev
 * 1) Merge master into sculpt-dev
 * 1) Merge master into sculpt-dev
 * 1) Merge master into sculpt-dev
 * 1) Merge master into sculpt-dev
 * 1) Merge master into sculpt-dev
 * 1) Merge master into sculpt-dev
 * 1) Merge master into sculpt-dev
 * 1) Merge master into sculpt-dev
 * 1) Merge master into sculpt-dev
 * 1) Merge master into sculpt-dev
 * 1) Merge master into sculpt-dev
 * 1) Merge master into sculpt-dev
 * 1) Merge master into sculpt-dev
 * 1) Merge master into sculpt-dev

April 4 to April 8

 * 1) Land color attributes patch in master
 * 2) Merge master into sculpt-dev.
 * 3) Worked on D13897, PBVH draw patch.

April 11 to April 15

 * 1) Fix color attribute bugs:
 * 2) Fix cloth crash in sculpt-dev
 * 3) Merge master into sculpt-dev
 * 1) Fix cloth crash in sculpt-dev
 * 2) Merge master into sculpt-dev
 * 1) Fix cloth crash in sculpt-dev
 * 2) Merge master into sculpt-dev
 * 1) Fix cloth crash in sculpt-dev
 * 2) Merge master into sculpt-dev
 * 1) Merge master into sculpt-dev

April 18 to April 22

 * 1) Ported old vertex paint mode to C++
 * 2) Fix dyntopo crash with color attributes:
 * 3) Fix data transfer modifier bug
 * 4) Code cleanup
 * 5) Fix draw crash
 * 6) Fix crash in sculpt-dev
 * 7) Fix remesh crash in sculpt-dev
 * 8) Fix mask slice in sculpt-dev

== April 25 to April 29
 * 1) Make sculpt mask filter operator show redo panel
 * 2) Change how defaults for mask filter are set so redo panel remembers more of them
 * 3) Fix crash
 * 4) Fix crash
 * 5) Fix trim lasso radius bug
 * 6) Cleanup
 * 7) Fix color space error in vertex paint
 * 8) Fix PBVH draw cache invalidation crash

May 2 to May 6

 * 1) Implement PBVH texture node splitting:
 * 2) Initial implementation
 * 3) Debug visualization
 * 4) Fix merge bugs in sculpt-dev

May 9 to May 13

 * 1) PBVH texture node splitting:
 * 2) Fix bug in pixel row splitting
 * 3) Multithreading
 * 4) Fix broken vertex color node
 * 5) Sculpt-dev:
 * 6) Merge master into sculpt-dev
 * 7) Fix merge errors
 * 8) Fix large file sizes caused by brush settings system

May 16 to May 20

 * 1) Sculpt-dev:
 * 2) Fix brush stroke bug
 * 3) Cleanup brush strength api so all sculpt brushes support square shapes
 * 4) Dyntopo not initializing face set values correctly
 * 5)  Unprojected radius mode messes up sculpt texture radius
 * 6) Merge master into temp-pbvh-eevee

May 23 to May 27

 * 1) temp-pbvh-eevee: Fix active uv layer having wrong alias
 * 2) Merge master into sculpt-def

May 30 to June 3

 * 1) Shading artifacts on paint/mask anchored sculpt brushes
 * 2) Remove improper OPTYPE_UNDO flags
 * 3) Temporary fix for attribute convert undo
 * 4) GPU subdiv: Fix edit mode vertex color not being uploaded properly
 * 5) Sculpt-dev:
 * 6) Fix tip_roundness versioning bug
 * 7) Pmap bugs:
 * 8) Merge master into sculpt-dev
 * 9) Fix zeroing of last position on stroke start
 * 10) temp-pbvh-split: Use task api correctly.
 * 11) temp-sculpt-cavity-mask: Add caching

June 6 to June 10

 * 1) Move sculpt_automasking.c to c++
 * 2) Land pbvh EEVEE patch
 * 3) Fix image editor cursor disappearing
 * 4) Merge branch master into temp-pbvh-eevee
 * 5) temp-sculpt-cavity-mask:  Add custom curve support
 * 6) Cleanup: Move sculpt_automasking.c to c++
 * 7) temp-sculpt-cavity-mask: Move cavity mask settings into toolsettings
 * 8) Anchored mode not working for sculpt smear brush
 * 9) Sculpt-dev: fix bmesh python bug

June 13 to June 17

 * 1) sculpt-dev:
 * 2) Fix draw cache bug
 * 3) Merge master into sculpt-dev
 * 4) Fix undo bug
 * 5) PBVH active attrs only optimization is buggy

June 20 to June 24

 * 1) Fix crash when adding color attributes in editmode.
 * 2) Fix sculpt undo ignoring gravity with paint tools.
 * 3) Add second blur mode to cavity mask patch.
 * 4) Merge master into temp-pbvh-split.
 * 5) Looked at UV seam patch.
 * 6) Submitted normal automasking patch (https://developer.blender.org/D15297).
 * 7) Submitted automasking support for image paint patch (https://developer.blender.org/D15298).

June 27 to July 1st

 * 1) Cavity mask patch: Add automask baking tool
 * 2) Fix T98886: PBVH_GRIDS ignores face smooth flag on first gpu build
 * 3) Cleanup: Renamed SCULPT_TOOL_NEEDS_COLOR to SCULPT_tool_is_paint
 * 4) Fix T99196: sculpt_update_object calls paint updates for nonpaint tools
 * 5) Fix backwards normals in PBVH_GRIDS raycasting
 * 6) Fix T99231: Wrong anchored mode test for smear brush

July 4 to July 8

 * 1) Fix T98884: Fix edge case crashes in gpu subdiv cache code
 * 2) Cleanup: use local variable in smear code instead of ss->cache->bstrength
 * 3) Fix T98698: Division by zero in smear code when strength is zero
 * 4) Fix T94633: Sculpt mode missing check for hidden active object
 * 5) Submitted vertex color limit removal patch D15368

July 11 to July 15

 * 1) Fix T99383: Wrong origdata type in color filter
 * 2) Cavity mask patch: Remove original blur mode.
 * 3) Sculpt: Fix scene spacing mode (phase 1)
 * 4) Fix T99644: Anchored brush mode fails for negative brushes
 * 5) Normal automasking patch:
 * 6) Support normals automasking for sculpt filters
 * 7) Give automasking access to original normals
 * 8) SculptVertRef patch: Cleanup API
 * 9) Submitted PBVH draw patch: D15428
 * 10) Sculpt-dev: Cleanup sculpt temp attribute API before splitting into patch

July 18 to July 22

 * 1) Fix T99687: Cloth filter crash
 * 2) SculptVertRef patch: Make requested changes
 * 3) Submitted sculpt attribute API patch: D15496
 * 4) Updated Expose Face Sets In Python API patch: D15025

July 25 to July 29

 * 1) Sculpt: Fix T99779, pbvh gets wrong active vertex for multires
 * 2) Normal automasking patch:
 * 3) Implement new masking modes for factor cache
 * 4) Add occlusion mode
 * 5) Commit PBVHVertRef patch
 * 6) Sculpt: fix name collision in DynTopo temp attributes
 * 7) Normal automasking patch:
 * 8) Make occlusion suboption of view normal
 * 9) Implement new masking modes for factor cache
 * 10) Add occlusion mode

August 1 to August 5

 * 1) Wrote prototype of new pbvh draw system.
 * 2) Sculpt: Fix T99294: Voxel Remesher text is resized based on object scale
 * 3) Sculpt: fix broken triangle/vertex count for DynTopo
 * 4) Rebase sculpt attribute patch with master.
 * 5) Cavity mask patch update :
 * 6) Merge master.
 * 7) Invert curve behavior in invert mode
 * 8) Invert and normal cavity mask are now seperate modes and mutually exclusive.
 * 9) Automask bake operator now has option to use scene defaults.
 * 10) The automask boolean properties are now defined in a EnumPropertyItem list to avoid three sets of duplicate code.
 * 11)  Added a "Mask from cavity" menu operator.
 * 12) Wrote rough code for experimental version of sculpt-dev's brush property refactor based on RNA.

August 8th to August 12

 * 1) Brush Properties refactor
 * 2) Register sculpt brush op so it clears last operator panel
 * 3) Update cavity mask patch
 * 4)  Use automask curve for use_automask_settings
 * 5) Code cleanups
 * 6) Cleanup UI
 * 7) Cleanup bake cavity mask panel UI inside the properties editor
 * 1) Register sculpt brush op so it clears last operator panel
 * 2) Update cavity mask patch
 * 3)  Use automask curve for use_automask_settings
 * 4) Code cleanups
 * 5) Cleanup UI
 * 6) Cleanup bake cavity mask panel UI inside the properties editor
 * 1) Cleanup bake cavity mask panel UI inside the properties editor

August 15th to August 19th

 * 1) Brush Properties refactor
 * 2) Sculpt attribute patch:
 * 3) Fix anchored brush performance regression
 * 4) Improve PBVH debug draw
 * 5) Write documentation in sculpt_undo.c
 * 6) Fix sculpt undo bug related to undo push name errors
 * 7) Blank redo panel for stroke operator
 * 8) Created redo panel bugfix patch D15697.
 * 9) temp-pbvh-vbos: Add support for solid-shaded multires
 * 1) Fix sculpt undo bug related to undo push name errors
 * 2) Blank redo panel for stroke operator
 * 3) Created redo panel bugfix patch D15697.
 * 4) temp-pbvh-vbos: Add support for solid-shaded multires

August 22th to August 26th

 * 1) Sick this week.

August 29th to September 2nd

 * 1) Core: Remove color attribute limit from CustomData API
 * 2) Fix T100479: Memory corruption in sculpt_boundary_edit_data_init
 * 3) Cleanup: fix warnings from vcol limit commit
 * 4) temp-pbvh-vbo: merge master

September 5th to September 9th

 * 1) Sick this week.

September 12th to September 16th

 * 1) Worked on sculpt attribute patch
 * 2) Fix T100941: Draw cache invalidation loop
 * 3) Fix T100608: SCULPT_UNDO_FACE_SETS broken for redo
 * 4) Fix T101008: Missing CD_MDISPS layer:
 * 5) Finish initial implementation of PBVH draw cleanup patch:
 * 6) Landed sculpt attribute patch.
 * 7) Merge master into sculpt-dev

September 19th to September 23rd

 * 1) Sculpt: Fix bug with allocating duplicate attribute layers
 * 2) Cavity mask patch:
 * 3) Sculpt: Fix T100479: Boundary expand crash 32b766223a1b2a562e657a729e7d9f2926d42417
 * 4) Sculpt: fix memory corruption in new attribute api
 * 5) Normals automasking patch: Use a stroke id attribute for occlusion
 * 6) Merge master into sculpt-dev.

September 26th to September 30th

 * 1) Fix T101467: Improper vertex count in pbvh draw
 * 2) Fix sculpt face set undo creating duplicate face set layers
 * 3) Fix crash in relax face sets brush
 * 4) Fix T101430: Dyntopo undo crash
 * 5) Upload to gpu white for color attributes in multires in sculpt
 * 6) Fix T101503: Memory corruption in multires faceset drawing
 * 7) Fix T101430: Curve shown improperly in mask from cavity redo
 * 8) Fix stroke-only attributes not being freed at stroke end
 * 9) Fix T101465, crash in cloth filter with new automasking modes
 * 10) Fix T101464: Crash in mask from cavity
 * 11) Fix T101463: Don't initialize automask to zero in factor mode if topology or boundary modes are inactive
 * 12) Reset automask cache on non-color non-mask undo steps
 * 13) Fix draw face sets not updating on first stroke
 * 14) Fix missing nullptr check in pbvh draw
 * 15) Commit normals automasking patch
 * 16) Commit cavity mask patch:
 * 17) Commit pbvh draw rewrite patch:
 * 18) Merge master into sculpt-dev:
 * 19) temp-sculpt-cavity-mask: Make requested patch changes

October 3rd to October 7th

 * 1) Bugfixes for sculpt-dev:
 * 2) Merge master into sculpt-dev
 * 3) Sculpt: Fix crash in dyntopo draw
 * 4) Viewport: Enable draw_debug.cc code when WITH_DRAW_DEBUG is on
 * 5) Sculpt: Raise pbvh->leaf_limit to 400 for dyntopo
 * 6) Sculpt: Fix T101502: GPU tris miscounted for dyntopo
 * 7) Sculpt: Fix bug in sculpt attribute api
 * 8) Sculpt: Fix crash in face set init
 * 9) Sculpt: Fix crash in dyntopo draw
 * 10) Sculpt: Visibility bugfixes
 * 11) Sculpt: implement Reveal All for PBVH_BMESH
 * 12) Sculpt: Fix T101430: Blank stroke undo steps corrupt dyntopo
 * 13) Sculpt: Add debug code to print sculpt undo stack.

October 10th to October 14th

 * 1) temp-pbvh-split: Fix various crashes and memory corruption
 * 2) Sculpt: Fix face set relax being too strong
 * 3) Sculpt: Fix draw artifacts when drawing multires mask
 * 4) Sculpt: Ensure faces are uniquely assigned to PBVHNodes
 * 5) Sculpt: do not validate PBVH draw data in mesh_batch_cache_valid
 * 6) Sculpt: fix crash when instancing sculpt objects
 * 7) Sculpt: Fix mask from cavity not redrawing viewport with modifiers
 * 8) Sculpt: Fix T101595: sculpt_attribute_update_refs called in wrong place
 * 9) Sculpt: Fix T101718: Automasking crash with new texture paint
 * 10) Sculpt: Clean up Dyntopo's original triangle api
 * 11) Sculpt: Fix T101674: Passing null to GPU_batch_elembuf_set
 * 12) Sculpt: T101699: Face set change visibility crashes on no face sets
 * 13) Sculpt: Fix T101729: Automasking crash in elastic deform brush
 * 14) Merge master into sculpt-dev.
 * 15) Fix various sculpt-dev merge bugs
 * 16) Created PBVH face iterator patch.

October 17th to October 21st

 * 1) Sculpt: Fix T101864: Mask initialization not updating multires data
 * 2) sculpt-dev: Fix stroke id error in smooth code
 * 3) sculpt-dev: Roll mapping fixes
 * 4) sculpt-dev: Implement arc-length derivatives for BLI_arc_spline.hh
 * 5) sculpt-dev: More roll mapping fixes
 * 6) sculpt-dev: Write arc-length (evenly spaced) spline lib

October 24th to October 28th

 * 1) Attended Blender conference.
 * 2) Sculpt: fix T102067: Set material properly in new pbvh draw

October 31st to November 4th

 * 1) Fix T102253: Missing call to SCULPT_automasking_node_update
 * 2) Texture roll mapping patch  D16414

November 7th to November 11th

 * 1) Update face iterator patch.
 * 2) Sculpt: Fix T102209: Multiresolution levels greater than 6 crashes
 * 3) Sculpt: Change symmetrize merge threshold and expose in workspace panel
 * 4) Sculpt: Fix T102379: Crash in dyntopo
 * 5) temp-pbvh-face-iterators: Move initialization of static memory
 * 6) Merge master into temp-pbvh-face-iterators
 * 7) Merge master into temp-sculpt-brush-channel

November 14th to November 18th

 * 1) Sculpt: Fix T102349: improperly aliased enum
 * 2) Land sculpt face iterator API patch
 * 3) Sculpt: Fix T102567 (again)
 * 4) Sculpt: fix T102584
 * 5) Sculpt: Fix mask from cavity settings issues
 * 6) temp-sculpt-roll-mapping: Implement symmetry/tile/radial modes
 * 7) temp-sculpt-roll-mapping: New strategy for spline tex mapping
 * 8) temp-sculpt-roll-mapping: mirror symmetry fixes
 * 9) temp-sculpt-roll-mapping: Fix stroke points projection outside of the mesh
 * 10) Merge master into sculpt-dev

November 21st to November 25th

 * 1)  Sculpt: fix T102436: missing null pointer check in automasking code
 * 2) Land D16224  Standardize face set undo steps, optimize memory usage
 * 1)  Sculpt: Fix box face sets not working for multires
 * 2)  Sculpt: Fix broken multires hidden undo

November 28th to December 2nd

 * 1) Merge master into sculpt-dev
 * 2) Sculpt: Fix broken pivots when entering paint modes
 * 3) Sculpt: Fix T102824: broken face primitive partitioning in pbvh nodes
 * 4) Sculpt: fix crash when no brush
 * 5) Sculpt: Fix T102337: Null pointer error circle (tube) brush test code
 * 6) Sculpt: fix T102348: Don't fold area normal automasking into cache
 * 7) Sculpt: fix T102664: Broken multires solid shading

December 5th to December 9th

 * 1) Worked on cleaning up sculpt-dev's DynTopo in preparation of porting to master.
 * 2) Fix T102336: dynamic topology crash
 * 3) Sculpt: Fix crash when sculpting after disabling dyntopo

December 12th to December 16th

 * 1) Updated stroke texture mapping patch.
 * 2) Fix T103261: Undo after mask extract doesn't restore active object
 * 3) Cleanup: make paint_init_pivot an api method.
 * 4) Fix T103198: Missing bounds check for material_index attr in texpaint
 * 5) Fix more attribute bugs when switching PBVH modes
 * 6) Fix T102991: Multires fast navigate not implemented
 * 7) Fix crash in dyntopo
 * 8) Fix crash with unsupported attr types in pbvh draw
 * 9) Worked on dyntopo a bit.

December 16th to December 20th

 * 1) Sculpt: Fix T103341: Move sculpt overlay flags to View3DOverlay.flag
 * 2) Sculpt: Fix T103261: Undo after mask extract doesn't restore active object
 * 3) Cleanup: make paint_init_pivot an api method.
 * 4) Fix T103198: Missing bounds check for material_index attr in texpaint

December 23rd to December 27th

 * 1) Sculpt: fix bugs in inverted expand mode
 * 2) Sculpt: fix T103156: Scale square brush uvs by sqrt2.
 * 3) temp-sculpt-roll-mapping: Visualization improvements
 * 4) Merge branch 'master' into temp-pbvh-split