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.
- Finish the grab brush and the pose brush
- Do some minor tweaks to the brushes
- 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
- 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)
- Update and commit all pending patches
- Continue designing the negative space brushes
- 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
- 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.
- Start planning the new Multires features and UI
- Continue fixing Face Sets bugs
- More patches with to improve brushes
- 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
- 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.
- Rebase the vertex color patch
- Continue fixing Face Sets bugs
- More patches with small tweaks to improve brushes
- 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
- 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.
- Try to fix the vertex paint brush bugs
- Continue improving the brushes for the LTS release
- 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
- 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.
- Rebase and update the Face Groups patch. Rename everything to face masks.
- D6902 Sculpt: Hardness brush property
- D6901 Fix T73947: Support radial symmetry in Multiplane Scrape
- 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.
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.
- Rebase and update a lot of old patches
- Start creating patches for splitting sculpt mode into multiple files
- 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
- 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.
- More bug fixing
- Implement some new features
- Write some design task
- 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
- 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.
- Update the blog post about the Sculpt Mode Features with the cloth brush
- Continue polishing the cloth brush UX
- D6715 Sculpt: Cloth brush
- D6705 Sculpt: Edge Automasking
- D6688 Revert "Sculpt: Remove partial viewport updates from sculpt stroke code"
- 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.
- Write a new blog post about the Sculpt Mode features
- Implement automasking for edge preservation
- D6665 Fix T70173: Ensure CD_MDISP when sculpting in Multires
- D6663 Fix T73054: Add DNA defaults for pose_ik_segments
- 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.
- Rebase the Vertex Color patch and add all missing features following the project document
- 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
- 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
- Work on some improvements to the 2.82 sculpt tools
- T73047 Sculpt Mode Multires Design
- T72943 PBVH task scheduler performance issues
- T71947 Vertex Color/Attribute Edit Design
- 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.
- Continue working in the sculpt vertex colors patch
- D6513 Fix T72830: Check if the mesh has mask data before extracting or slicing
- 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.