User:Pablodp606/Reports/2020

March 23 - March 27

This week I updated and committed most of the patches planned for 2.83 and started working on 2.90 projects like the new grab brushes and the pose brush with support for multiple meshes. I also implemented the face sets support in the pose brush.

Next Week

  • Finish the grab brush and the pose brush
  • Do some minor tweaks to the brushes

Patches

  • D7262 Fix mesh boundary automask curve falloff
  • D7259 Fix Face Sets init breaking the sculpt symmetry
  • D7254 Fix T75121: Memory leak in Surface Smooth
  • D7249 Fix T75104: Update Face Sets visibility when entering Sculpt Mode

Commits

  • Sculpt: Pose Brush Face Sets origin mode 9120191fe2a.
  • Rename Edge Automasking to Mesh Boundary Automasking 4c0cca78eb4.
  • Sculpt: Weight normal and area sampling towards the brush center 015c084bda9.
  • Fix T74637: Reset face set data when disabling dyntopo 7eacda5a2be.
  • Sculpt: Create Face Set by Edit Mode Selection 48ea173a7db.
  • Sculpt: Face Sets Init operator 99530ef4ed7.
  • Sculpt: Surface Smooth Brush and Mesh Filter a218be30803.
  • Sculpt: Use uchar to store the sculpt mask in the GPU f5ac118fb39.
  • Fix T74780: Face sets operators not aware of SCULPT_FACE_SET_NONE 458f50ba73b.
  • Fix T74761: Reimplement vertex to face sets visibility sync 83947ea2537.
  • Fix T74899: Add Draw Face Sets brush to versioning defaults c286fa309ef.
  • Fix T74692: Do not draw nodes with the default face set 32bb8488389.
  • Fix T74808: Division by 0 in Cloth brush solver with overlapping vertices c32cf06e42f.
  • Fix T75089: Missing pmap when using Face Sets in the mesh filter 4ff3d5adedc.

March 16 - March 20

This week I finalized the implementation of the two most important multires pending projects (automasking and face sets). I also implemented a few operators that were left in the Face Sets design task for 2.83. I also started to design the algorithms for new brushes that work on negative space (for 2.90)

Next Week

  • Update and commit all pending patches
  • Continue designing the negative space brushes

Patches

  • D7211 Sculpt: Create Face Set by Edit Mode Selection
  • D7209 Sculpt: Face Sets Init operator
  • D7207 Fix T74692: Do not draw nodes with the default face set
  • D7199 Fix T74899: Add Draw Face Sets brush to versioning defaults
  • D7188 Fix T74780: Face sets operators not aware of SCULPT_FACE_SET_NONE
  • D7187 Fix T74761: Reimplement vertex to face sets visibility sync
  • D7185 Rename Edge Automasking to Boundary Automasking
  • D7184 Fix T74808: Division by 0 in Cloth brush solver with overlapping vertices
  • D7174 Fix paint cursor lagging behind the OS cursor
  • D7168 Multires: Initial Face Sets support
  • D7165 Multires: Implement edge boundary automasking

Commits

  • Fix incorrect Face Sets when using mask extract e42f61dda8b.
  • Fix visual artifacts with partially hidden meshes and mask extract bab0fd13087.
  • Fix T74626: Wrong Face Sets overlay rendering in smooth shading e4077ea69d5.
  • Update viewport rotation origin when changing Face Set visibility 7941ea02f8d.

March 9 - March 13

I rebased the vertex color patch and did a lot of fixes to the face sets and the sculpting system in general. I also did a new layer brush that should fix all the artifacts of the previous one.

Next week

  • Start planning the new Multires features and UI
  • Continue fixing Face Sets bugs
  • More patches with to improve brushes

Patches

  • D7148 Sculpt: Use uchar to store the sculpt mask in the GPU
  • D7147 Sculpt: New Layer Brush
  • D7137 Update viewport rotation origin when changing Face Set visibility
  • D7130 Fix visual artifacts with partially hidden meshes and mask extract
  • D7129 Fix incorrect Face Sets when using mask extract
  • D7105 Sculpt: Render Face Sets always as flat shading
  • D7099 Fix T74637: Reset face set data when disabling dyntopo
  • D7096 Fix T74626: Wrong Face Sets overlay rendering in smooth shading
  • D7080 Sculpt: Split plane offset into base and offset

Commits

  • Fix boundary edges detection ignoring Face Set visibility fa823f0af86.
  • Fix flood fill operation not taking into account hidden vertices 69eaa193405.
  • Use golden ratio conjugate for Face Sets hue generation b0271c6e408.
  • Fix Face Set operators not modifying sigle poly Face Sets 53c03d4679f.
  • Fix T74646: Pick a random face set to be rendered white when randomizing the colors 9dcd6ba3eb7.
  • Fix T74648: Do not relax with 0 neighbors or no vertex normal 88fd2b1dd5f.
  • Fix mesh shrinking when using the relax mesh filter. 088b92b92ce.
  • Fix rendering artifacts when changing Face Sets visibility 1619a5d8e9b.
  • Fix T74613: Assign the default face set color in the versioning code b37482bc3d8.
  • Fix T74354: Avoid division by 0 when calculating hardness 4652f23fa34.
  • Sculpt: Edge Automasking 84b94f9e7b8.
  • Face Sets: Use white color for a default Face Set to enable the overlay 18e3615a681.
  • Face Sets: Add relax support to Mesh Filter and Draw Face Sets 0dfb4ac1ff9.
  • Fix Cloth Brush not working with automasking e702c9a7000.
  • Fix T74500: Rebuild the Face Sets datalayer after slicing the geometry 0030e6a2fc2.
  • Fix T74499: Add visibility checks to Face Sets creation operations 503d5c0c652.
  • Sculpt: Remove hardcoded hardness from Clay brush c65b9fb825f.
  • Fix T74492: Reset Face Set data when cancelling the expand operator 6eb76f64304.
  • Cleanup: Move Face Sets random color generation to its own function a540d16ee82.

March 2 - March 6

I finished and committed the Face Sets patch, and also created a lot of patches for Face Sets fixes and bugs that were already there, but really hard to notices without Face Sets. I also implemented Surfae Smooth and an initial version of topology falloff.

Next week

  • Rebase the vertex color patch
  • Continue fixing Face Sets bugs
  • More patches with small tweaks to improve brushes

Patches

  • D7059 Sculpt: Initial Topology Distances and Falloff support
  • D7057 Sculpt: Surface Smooth Brush
  • D7049 Fix T74500: Rebuild the Face Sets datalayer after slicing the geometry
  • D7048 Fix T74499: Add visibility checks to Face Sets creation operations
  • D7043 Fix T74492: Reset Face Set data when cancelling the expand operator
  • D7042 Cleanup: Move Face Sets random color generation to its own function
  • D7036 Sculpt: Add face iterators to the PBVH
  • D7035 Face Sets: Use white color for a default Face Set to enable the overlay
  • D7034 Face Sets: Add relax support to Mesh Filter and Draw Face Sets

Commits

  • Fix T74513: Wrong naming in some Face Set comments and operators 6b49a9db524.
  • Fix T74501: Wrong initial iteration when using mask expand db1d7114581.
  • Fix T74498: Do not iterate over hidden vertices when using the transform tool 7760cec5dcf.
  • Cleanup: Move Multiplane Scrape brush to its own file f2f8c5b2bd9.
  • Cleanup: Use the SCULPT_ prefix in all sculpt_intern functions 69d4aec55f9.
  • Fix using wrong property name for preserve face sets when remeshing 8bb0ac27dc1.
  • Sculpt Face Sets 38d6533f212.
  • Fix T74426: Crash in the IK Pose Brush preview with null preview chain d83c0969f6e.
  • Fix Snake Hook rake on rotated objects daca00f187e.
  • Fix hardness not resetting when using reset brush b39273c071b.


February 24 - February 28

I updated and rebased the Face Sets and Vertex Colors patch. I coded some new features for Face Sets and improved some regular brushes.

Next week

  • Try to fix the vertex paint brush bugs
  • Continue improving the brushes for the LTS release

Patches

  • D6992 Fix hardness not resetting when using reset brush
  • D6989 Sculpt: Weight normal and area sampling towards the brush center
  • D6987 Fix T74354: Avoid division by 0 when calculating hardness

Commits

  • Clay Thumb: Remove hardcoded hardness value c930cd7450c.
  • Sculpt: Hardness brush property ff0124418f4.
  • Cleanup: Move pose brush to its own file fc7fdc5c4ed.
  • Fix T74307: Add missing brushes to versioning_defaults 233158b5551.
  • Fix T73707: Missing mesh normals update on sculpt undo 3c9956a3ace.
  • Fix T74074: Strokes with timer events don't get pressure values a489d77c5be.
  • Fix T73947: Support radial symmetry in Multiplane Scrape c04c5ac4f6e.
  • Sculpt: Cloth brush 4a373afa5fb.
  • Fix wrong coordinates being read when using the sculpt API 793135e190c.
  • Fix T72721: Add visibility flags updates to the PBVH f4411b58ade.

February 17 - February 21

This week I updated and rebased most of the old patches. I was sick 2-3 days during the weekend, so not the most productive week.

Next week

  • Rebase and update the Face Groups patch. Rename everything to face masks.

Patches

  • D6902 Sculpt: Hardness brush property
  • D6901 Fix T73947: Support radial symmetry in Multiplane Scrape

Commits

  • Theme: Radial gradient background and enum for gradient type 05fd2acf895.
  • Fix T54270: Reset last_hit and last_location when reading the file 2df040ed58f.
  • Sculpt: Pinch only in the direction perpendicular to the stroke ee5c13c45cc.
  • Sculpt: Update red cursor color 43c497051a4.
  • Sculpt: Fix slide relax cursor color 8673d2e92a0.
  • Fix T73105: Use Magnify instead of Pinch in the brush context menu f996aeaf766.

Other projects

February 10 - February 14

This week I implemented some new features (radial background), fixed some bugs and refactored the brush presets. I also wrote some design tasks for future projects.

Next week

  • Rebase and update a lot of old patches
  • Start creating patches for splitting sculpt mode into multiple files

Patches

  • D6830 Sculpt: Default brush presets and reset all operator
  • D6828 Sculpt: Update red cursor color
  • D6827 Sculpt: Fix slide relax cursor color
  • D6825 Theme: Radial gradient background and enum for gradient type
  • D6805 Fix T73105: Use Magnify instead of Pinch in the brush context menu
  • D6804 Fix T73656: Use BKE_brush_alpha_get in texture paint
  • D6801 Fix T73706: Crash after disabling dyntopo with multires modifier

Commits

  • Sculpt: Split normal radius and area radius df45257ec53.
  • Sculpt: Clay Strips Tip Roundness property 6ee6a42d10e.
  • Pose Brush: Option to disable the IK anchor point 0ab7e321585.
  • Sculpt: Clay Thumb Brush 015d5eda884.
  • Fix T73656: Use BKE_brush_alpha_get in texture paint 35490c3ead0.
  • Cleanup: Sculpt/Paint, use correct types and iterator variable declaration 64e65442a18.
  • Cleanup: Sculpt, Comment formatting 395e91b87cf.

February 3 - February 7

This week I focused on bug fixes and code cleanup.

Next week

  • More bug fixing
  • Implement some new features
  • Write some design task

Patches

  • D6792 Cleanup: Sculpt, Comment formatting
  • D6788 Cleanup: Sculpt/Paint, use correct types and iterator variable declaration
  • D6771 Fix T70020: Force using the internal sculpt pivot when transforming
  • D6767 Fix T72721: Add visibility flags updates to the PBVH
  • D6754 Fix T54270: Ensure that the vector read from ups->last_location is valid
  • D6753 Fix T73226: Add defaults and versioning for uv_relax_method

Commits

  • Fix T73706: Crash after disabling dyntopo with multires modifier af6ba4dce51.
  • Revert "Sculpt: Remove partial viewport updates from sculpt stroke code" 51b67218ae7.
  • Fix T72690: Do not draw points behind the viewport camera in the paint cursor 78cf61cc629.
  • Fix T66349: Add missing update for face orientation overlay 08d1df4729b.
  • Merge branch 'blender-v2.82-release' 6b9062508a4.
  • Fix warning when initializing the IK chain in the Pose Brush db4bb49aae6.


January 27 - January 31

This week I wrote a blog post about the new sculpt mode features (still not published), I implemented edge automasking and I made the initial patch for the Cloth Brush.

Next week

  • Update the blog post about the Sculpt Mode Features with the cloth brush
  • Continue polishing the cloth brush UX

Patches

  • D6715 Sculpt: Cloth brush
  • D6705 Sculpt: Edge Automasking
  • D6688 Revert "Sculpt: Remove partial viewport updates from sculpt stroke code"

Commits

  • Fix T73054: Add DNA defaults for pose_ik_segments e7c90438e01.

January 20 - January 24

This week I rebased the Vertex Colors patch and I updated and fixed the Clay Thumb Brush (it is now ready to be committed). I also continued experimenting with snapshots and the sculpt/pressure patch for grab brushes.

Next week

  • Write a new blog post about the Sculpt Mode features
  • Implement automasking for edge preservation

Patches

  • D6665 Fix T70173: Ensure CD_MDISP when sculpting in Multires
  • D6663 Fix T73054: Add DNA defaults for pose_ik_segments

Commits

  • Sculpt: Rename Topology Brush to Slide Relax Brush 300f937aec5.
  • Fix T71373: Sculpt Mask not extracting correctly on scaled objects 5186bb56b58.
  • Fix T73080: Remove support for scene radius in Weight/Vertex paint be691105c2a.

January 13 - January 17

I made some improvements and new features on top of the current brushes and I coded the first prototype for sculpt snapshots.

Next week

  • Rebase the Vertex Color patch and add all missing features following the project document

Patches

  • D6623 Sculpt: Limit viewport redraws to 30fps
  • D6603 Sculpt: Enable size/pressure in Grab Brush
  • D6594 Sculpt Snapshots
  • D6591 Sculpt: Crease brush: Pinch perpendicular and new defaults
  • D6590 Sculpt: Rename Topology Brush to Slide Relax Brush
  • D6587 Sculpt: Pinch only in the direction perpendicular to the stroke
  • D6586 Fix T73080: Remove support for scene radius in Weight/Vertex paint
  • D6584 Pose Brush: Option to disable the IK anchor point

Commits

  • Fix T73070: Disable falloff_shape in the Pose Brush f4beab71927.
  • Fix T73094: Check all vertices when recalculating the mask flags 22a317347ff.

January 6 - January 10

This week I made the design tasks for the vertex colors/attribute paint, Multires and sculpt mode performance projects projects

Next week

  • Work on some improvements to the 2.82 sculpt tools

Patches

  • T73047 Sculpt Mode Multires Design
  • T72943 PBVH task scheduler performance issues
  • T71947 Vertex Color/Attribute Edit Design

Commits

  • Fix T71712: Free the dynamic mesh preview when rebuilding the PBVH 22f5edcf45e.
  • Fix T72251: Add rotate brush as constrained by radius for automasking 55daa0d4448.
  • Fix T72647: Check if the PBVH type makes sense for the sampling mode 4f70af34e05.
  • Fix T72830: Check if the mesh has mask data before extractig or slicing bc9c8c35e17.
  • Sculpt: Pose Brush with Inverse Kinematics fdf89acc863.


December 30 - January 5

I designed, code and test the main painting brush in sculpt vertex colors. All previous issues are fixed, but it will still require some tweaking to consider it final.

Next week

  • Continue working in the sculpt vertex colors patch

Patches

  • D6513 Fix T72830: Check if the mesh has mask data before extracting or slicing

Commits

  • Fix T72700: Missing flush vert visibility on sculpt undo 04ddd6f717d.
  • Sculpt: Add color alpha controls to the brush cursor 03145616843.
  • Sculpt: Remove partial viewport updates from sculpt stroke code 394b48029c5.
  • Fix T72747: Increase minimum voxel size in the voxel remesher 6a54969cf15.
  • Sculpt: Use more saturated colors in the cursor e998cb2c2e0.