User:Pablodp606/Reports/2019

December 23 - December 27
This week I finished the minimum requirements for the sculpt vertex colors patch. Rendering, multiple layers, alpha and conversion operators are working.

Next week
 * The way the default brush of sculpt vertex colors applies paint is not right, I need to investigate that.
 * Merge the remaining paint brush parameters and check if everything works.

Patches
 * D6498 Fix T72747: Increase minimum voxel size in the voxel remesher
 * D6497 Sculpt: Update brush defaults
 * D6488 Fix T72700: Missing flush vert visibility on sculpt undo
 * D6487 Fix T72690: Do not draw points behind the viewport camera in the paint cursor
 * D6476 Fix T71712: Free the dynamic mesh preview when rebuilding the PBVH
 * D6475 Fix T72647: Check if the PBVH type makes sense for the sampling mode

December 16 - December 20
I worked on the sculpt vertex colors patch, updated the IK pose brush patch and create a new operator to control the voxel size of the voxel remesher

Next week
 * Work on sculpt vertex colors for 2.83

Patches
 * D6449 Voxel Remesh: Edit Voxel Size operator
 * D6444 Sculpt: Remove partial viewport updates from sculpt stroke code
 * D6433 Sculpt: Add color alpha controls to the brush cursor
 * D6426 Fix T72438: Use PBVH vert coordinates in sculpt API when using shape keys

December 9 - December 13
I spent most of the week refactoring and testing the IK pose brush. I also worked for the first time with the 3D texture projetion code to plan what improvements can be done for UDIM painting.

Next week
 * Continue working on 2.82 projects

Patches
 * D6389 Sculpt: Pose Brush with Inverse Kinematics
 * D6385 Texture Paint: New Cursor and Spherical 3D falloff

Commits
 * Fix T72409: Remove references to Unified use_pressure_size and use_pressure_strength.

December 2 - December 6
I continued working on the new tools, focusing on vertex colors. Tools like the color filter, gradient tools or mask expand by color are working.

Next week
 * Continue working on 2.82 projects

Patches
 * D6376 Fix T72251: Add rotate brush as constrained by radius for automasking

Commits
 * Fix T72006: Clay brush with size pressure corrupts mesh.
 * Fix T72054: Sculpt Mode crash when using Relax Mesh Filter with Dyntopo enabled.
 * Fix T72092: Clay Strips Brush stroke crash with Brush Detail Size.
 * Fix Mask Brush gradient artifacts.

November 25 - November 29
This week I started working on the tools that use the Sculpt Face Groups and Vertex Colors to have everything ready when the two main patches are accepted.

Next week
 * Continue working on 2.82 projects
 * Rebase the Face Groups patch on top of the overlay engine

Patches
 * D6346 Fix Sculpt Mask Overlay drawing
 * D6341 Fix Mask Brush gradient artifacts
 * D6339 Fix T72092: Clay Strips Brush stroke crash with Brush Detail Size
 * D6333 Fix T72054: Sculpt Mode crash when using Relax Mesh Filter with Dyntopo enabled
 * D6326 Fix T72006: Clay brush with size pressure corrupts mesh
 * D6324 Sculpt: Sculpt plane cursor preview

Commits
 * Clay Brush: Input curves and update defaults.
 * Sculpt: Sample Voxel Size.
 * Sculpt/Paint: Remove Unified SIZE_PRESSURE and ALPHA_PRESSURE.
 * Sculpt/Paint: Move Elastic Deform Kelvinlets to BKE.
 * Fix T71667: Use the Sculpt Mesh API in the Multires Smooth brush.
 * Fix T71868: Clay Strips brush collapsed geometry.
 * Fix typo in versiong code

November 18 - November 22
This week I did more work in 2.82 sculpt mode project and I started committing them to master. I rebased and finished the initial implementation for both the Sculpt vertex colors and the Face groups patches.

Next week
 * Continue working on 2.82 projects
 * Rename Face Maps to Face Groups in the new visibility system

Patches
 * D6299 Fix T71868: Clay Strips brush collapsed geometry
 * D6298 Clay Brush: Input curves and update defaults
 * D6291 Sculpt/Paint: Remove Unified SIZE_PRESSURE and ALPHA_PRESSURE
 * D6281 Sculpt/Paint: Move Elastic Deform Kelvinlets to BKE
 * D6277 Fix T71667: Use the Sculpt Mesh API in the Multires Smooth brush

Commits
 * Paint: Smoother curve preset.
 * Fix Windows Build.
 * Sculpt: Invert Scrape to Fill.
 * Sculpt: Topology Slide/Relax.
 * Pose brush: Smooth Iterations Brush Property.
 * Sculpt: Mask Slice.
 * Sculpt: Multiplane Scrape Brush.
 * Sculpt: Enable symmetrize operator with Dyntopo disabled.
 * Sculpt: New Clay Brush.
 * Clay Strips: Input pressure curve and new defaults.
 * Sculpt/Paint: Dash Ratio and Dash Samples.

Other Projects
 * I tried to refactor the clay brush to fit all work possible into a single multithreaded task, but I didn't notice any performance improvement. In my computer the sculpt mode is still faster when multithreading is disabled, so maybe I should try to fix that first.

November 11 - November 15
I continued working on 2.82 sculpt mode projects, fixes and optimizations. I also updated most of the sculpting patches that were on review. I'm waiting to commit them until the release of 2.81 to avoid merge conflicts in sculpt.c

Next week
 * Continue working on 2.82 projects
 * Commit all 2.82 to master if 2.81 releases

Patches
 * D6269 Sculpt: Delay Viewport Updates
 * D6266 Workbench: X-Ray Fresnel
 * D6251 Sculpt: Sample Voxel Size
 * D6238 Sculpt: Clay Thumb Brush
 * D6228 Sculpt: New Clay Brush

Commits
 * Sculpt: Sculpt template defaults.

November 4 - November 8
I spent most of the week testing 2.81 before the release and making changes to the default brushes. The IK pose brush is almost there (symmetry is not that easy to do).

Next week
 * Prepare things for the 2.81 release

Patches
 * D6219 Fix T71434: Rebuild PBVH only on sculpt geometry changes
 * D6214 Clay Strips: Input pressure curve and new defaults
 * D6209 Paint: Use float for brush size
 * D6207 Fix T71373: Sculpt Mask not extracting correctly on scaled objects
 * D6194 Sculpt: Use more saturated colors in the cursor

Commits
 * Fix 2D paint antialiasing offset.
 * Fix Voxel Remesher preserve volume artifacts.
 * Clay Strips: Set default normal radius to 1.55.
 * Fix T70687: Deleting sculpting mask extraction causes crash.
 * Paint: Option to disable antialiasing.
 * Fix EEVEE sculpt mask rendering.
 * Fix T70866: Missing PBVH updates after mask undo.

October 28 - November 1
This week I continued implementing 2.82 sculpt mode planned features and fixing the remaining bugs in 2.81. At this point, almost all features planned for 2.82 that don't have dependencies on other projects are implemented (I think the only one missing is the symmetry implementation in the pose brush with IK).

Next week
 * Prepare things for the 2.81 release
 * Finish the IK Pose brush
 * Investigate texture rake deformation

Patches
 * D6186 Fix 2D paint antialiasing offset
 * D6180 Sculpt: Enable symmetrize operator with Dyntopo disabled
 * D6176 Fix Voxel Remesher preserve volume artifacts
 * D6174 Sculpt: Multiplane Scrape Brush
 * D6165 Sculpt: Clay Strips Roundness property
 * D6163 Elastic Deform: Integrate Grab Kelvinlets
 * D6160 Sculpt: Mask Slice
 * D6158 Sculpt: QuadriFlow Guides
 * D6157 Pose brush: Smooth Iterations Brush Property
 * D6156 Sculpt: Texture mesh filter

Commits
 * Fix T71053: Poly Build tool crashes blender when deleting wire vertices.
 * Fix EEVEE sculpt mask rendering.
 * Fix EEVEE sculpt mask rendering.
 * Fix T70687: Deleting sculpting mask extraction causes crash.

October 21 - 25
Blender Conference

October 14 - 18
This week I finished two of the main patches for 2.82 sculpt mode, the topology slide/relax tools and the sculpt face maps.

Next week
 * Blender Conference

Patches
 * D6088 Fix T70866: Missing PBVH updates after mask undo
 * D6080 Fix EEVEE sculpt mask rendering
 * D6070 Sculpt Facemap
 * D6059 Sculpt: Topology Slide/Relax

Commits
 * Fix T70790: Crash in sculpt mode switching from two meshes after reload saved file.
 * Fix T70839: Sculpt brushes stop affecting after using move, rotate or scale tools.

Other Projects
 * I updated the sculpt vertex colors patch to support all new brush parameters introduced for texture paint
 * I made 2 demo files for the 2.81 release.

October 7 - 11
This week I started coding the final patches for 2.82 sculpt mode. I hope to have all bigger features ready next week to make a demo at the Blender Conference.

Next week
 * Finish the 2.82 sculpt mode bigger features
 * Fix new bugs that may appear in the tracker for 2.81

Patches
 * D6044 Paint: Option to disable antialiasing
 * D6042 Fix T70687: Deleting sculpting mask extraction causes crash
 * D6022 Sculpt: Invert Scrape to Fill
 * D6020 Fix T70636: Detect resize direction based on initial mouse movement
 * D6011 Enable normal radius fix for all brushes

Commits
 * Sculpt: Fix wireframe drawing.
 * Fix T70544: Mesh extracted from Mask crash Blender when using Dyntopo.
 * Fix multires cursor not displaying the active vertex.
 * Fix T70554: Snake Hook + Ctrl does not set the brush stroke in its normal direction.
 * Sculpt: Fix projection artifacts by changing the voxel remesh isovalue.
 * Paint: 2D paint brush stroke antialiasing.
 * Sculpt/Paint: Invert curve alpha overlay.
 * Sculpt: Update only modified grids on multires undo.
 * Fix T70387: Sculpting with Original Normal rips edges.

September 30 - October 4
2.81 sculpt mode is ready. This week I did the last tweaks, bug fixes paches and performance optimizations. Next week I can start with new projects.

Next week
 * Start planning the 2.82 projects
 * Fix new bugs that may appear in the tracker

Patches
 * D5998 Sculpt/Paint: Invert curve alpha overlay
 * D5996 Sculpt: Change default min_iter_per_thread
 * D5994 Sculpt: Update only modified grids on multires undo
 * D5993 Sculpt: Split normal radius and area radius
 * D5982 Fix T70387: Sculpting with Original Normal rips edges
 * D5975 Sculpt Vertex Colors
 * D5960 Sculpt: Vertex group to mask conversion operators
 * D5949 Sculpt/Paint: Dash Ratio and Dash Samples
 * D5938 Fix T70342: QuadriFlow with the new symmetry option creates holes at the center

Commits
 * Sculpt: Clay Strips brush tweaks.
 * Fix T70499: Can't change Brush Texture Rotation without holding the Shift key..
 * Fix sculpt normal update in SculptDraw brush.
 * Fix T70299: Grab brush not working as expected when Ctrl is press.
 * Fix T66312: Undo does not restore normals correctly in sculpt mode.
 * Sculpt: Disable remesh operators with Multires.
 * Fix T69227: Ignore inbetween mouse events in Snake Hook.
 * Fix T70102: Mask Extract bad solution.
 * Use PBVH_FullyMasked flag in mesh filter.
 * Fix T70358: Use face count in Quadriflow by default.
 * Fix T70310: Difficult to change brush size from big to small.
 * Fix T70324: Layer Brush has bad behaviours and create artifacts.
 * Fix default cursor blue color.
 * Fix bug in nearest_vertex_get_finalize.
 * PBVH: PBVH_FullyMasked and PBVH_FullyUnmasked flags.
 * Fix T70385: Pose brush breaks when using pose origin offset.
 * Fix PBVH search callback in pose and elastic deform.
 * Sculpt: Only redraw nodes where the mask changed.

Other projects
 * I made the first version of the Pose Brush with inverse kinematics. The patch is almost ready.
 * The sculpt vertex colors patch is on review. We need to agree on what features and changes should include the first patch of this feature.
 * I added brush stroke antialiasing to the 2D paint line fixes patch.

September 23 - 27
Sculpt mode for 2.81 is almost finished. Almost all UI/UX changes are in master. Next weeks I will focus on performance I will start designing the 2.82 features.

Next week
 * Sculpt mode performance
 * Multilayer/multichannel painting design task
 * Fix bugs

Patches


 * D5935 PBVH: PBVH_FullyMasked and PBVH_FullyUnmasked flags
 * D5934 Fix T70324: Layer Brush has bad behaviours and create artifacts
 * D5933 Fix T70326: Some bad behaviours with Voxel Remesh
 * D5931 Fix T70310: Difficult to change brush size from big to small
 * D5929 Sculpt: Update bounding boxes only on stroke done
 * D5927 Sculpt: Enable pinch in draw sharp
 * D5923 Sculpt: Only redraw nodes where the mask changed
 * D5920 Fix T70299: Grab brush not working as expected when Ctrl is press
 * D5895 Fix T66312: Undo don't restor proper geometry in sculpt mode
 * D5871 Fix topbar padding to fit the tool icons

Commits


 * Sculpt: Sculpt cursor UX improvements.
 * Voxel remesh: Enable adaptivity.
 * Sculpt: Use func_finalize instead of mutex.
 * Sculpt: Pose brush origin offset.
 * Fix T70291: Sculpt remesh inverts normal when fix poles is activated.
 * Fix T56497: Snake hook sculpt brush slips off and affects the part of the mesh behind.
 * Fix T70280: QuadriFlow remesh with "Use Paint Symmetry" and "Smooth Normals" may give wrong normals.
 * Sculpt: Enable accumulate in scrape brush.
 * Fix accumulate in Draw Sharp brush.
 * Quadriflow: Symmetry support.
 * Voxel Remesh: Fix poles and preserve volume.
 * Sculpt: Brush default settings.
 * Sculpt: UI fixes and improvements.
 * Fix T70140: Topology Automasking and 2D Falloff don't work correctly together.
 * Fix T69875: Sculpt Scene Spacing breaks with Adjust Strength for Spacing enabled.
 * Fix crash in dynamic mesh preview edge list update.

Other projects
 * I did some performance experiments to make the sculpt tools update only clipped nodes when previewing the result. This still needs a final implementation.

September 16 - 20
This week I worked on improvements for some of the sculpt tools, operators and UI. Patches to fix the volume preservation and symmetry in the remeshers are ready to review, which were the most important issues we have in the behaviour of the new features.

Next week
 * Continue fixing bugs in the tools
 * Continue working on the UI/UX of sculpt mode

Patches
 * D5863 Voxel remesh: Fix poles and preserve volume
 * D5855 Quadriflow: Symmetry support
 * D5849 Fix T69875: Sculpt Scene Spacing breaks with Adjust Strength for Spacing enabled
 * D5848 Fix T70020: Sculpt mode transform tools fail with cursor orientation
 * D5846 Sculpt: Separate option for dynamic mesh preview
 * D5841 Sculpt: Pose brush origin offset
 * D5833 Paint: 2D paint line improvements
 * D5826 Sculpt: Enable accumulate in scrape brush
 * D5824 Fix crash in dynamic mesh preview edge list update
 * D5814 Fix accumulate in draw sharp brush
 * D5813 Sculpt: Brush default settings

Commits
 * Fix remesher operator poll function.
 * Fix T69580: Smooth brush freezes on highpoly mesh.
 * Fix T69984: Cursor curve Alpha doesn't display curves other than Custom.
 * Sculpt: Split original normal into original normal and plane.
 * Fix enabled dynamic size in pose brush.
 * Sculpt: Rename pinch to magnify in some brushes.
 * Fix topology automasking when starting from a boundary vertex.
 * Sculpt: Add pose origin preview to the Pose Brush.

September 9 - 13
All sculpting features of the sculpt branch are now in master. I spent the week updating the patches, fixing bugs and doing some UX improvements to the new tools.

Next week
 * Continue fixing bugs in the tools
 * Work on the UI/UX of sculpt mode

Patches
 * D5789 Fix T69747: Texture Paint: alpha not used in gradient
 * D5761 Sculpt: add pose origin preview to the pose brush
 * D5792 Cursor color theme setting
 * D5791 Show the number of verts & faces for selected objects in object mode
 * D5780 Fix assert when canceling a sculpt mode transform operation

Commits
 * Fix T69816: Using Transform gizmos in Sculpt Mode while MultiRes is activated crashes Blender.
 * Fix T69804: Transform tools in sculpt mode fails with transformed objects.
 * Fix T69737: Crash using the Elastic Deform brush and Compressibility.
 * Fix T69722: Pose brush crashes with multires modifier.
 * Sculpt: Transform tool.
 * Fix T69729: Missing Direction buttons in Draw Sharp brush.
 * Fix T69723: Crash with mask expand operator while in rendered or material view.
 * Sculpt: Grab Active Vertex and Dynamic Mesh Preview.
 * Fix warning and naming in mask expand.
 * Sculpt: Mask Extract operator.
 * Sculpt: Mask Expand operator.
 * Sculpt: Pose Brush.
 * Sculpt: Topology automasking.
 * Sculpt: Mask Filter and Dirty Mask generator.
 * Sculpt: Mesh Filter Tool.
 * Sculpt: Elastic Deform Brush.
 * Sculpt: Draw Sharp Brush.

September 2 - 6
This week I updated all sculpt branch patches following the revision. Most of them are now ready for master. I also started looking at the 2D texture painting code and I did some initial improvements there as it is the next area I want to focus on.

Next week
 * Rebase and commit the sculpt branch patches
 * Fix bugs in the sculpt branch tools
 * Depending on the number of bugs, improve the 2D painting stabilizer

Patches
 * D5717: Sculpt: Transform tool
 * D5697: Texture paint: 2D painting improvements
 * D5676: Paint: Stroke step queue
 * D5658: Edit Mesh: loop at cursor position - WIP

Commits
 * Fix T69548: Sculpt scene spacing breaks when object pivot not at origin 6d8a86c07d5f

Other projects
 * I started doing some experiments to improve the 2D painting stabilizer
 * Add scaling support to the sculpt mode transform tool

August 26 - 30
All patches from the sculpt branch that I would like to include in 2.81 are now ready to review except for the transform tool. The sculpt related part of that tool is working fine in the sculpt branch, but the gizmo/pivot point part needs to be reworked. Maybe it's easier now that we have the transform origins option.

Next week
 * Continue fixing the patches for the sculpt branch
 * Sculpt: transform tool
 * Edit mesh: loop at cursor position

Patches
 * D5384: Sculpt: Mask extract operator
 * D5634: Sculpt: Regularized Kelvinlets brushes
 * D5645: Sculpt: Topology automasking
 * D5646: Sculpt: Grab active vertex
 * D5647: Sculpt: Pose brush
 * D5657: Sculpt: Mask expand operator

Commits
 * Sculpt/Paint: Brush world spacing option for sculpt mode 87cafe92ce2f
 * Sculpt: new brush cursor, active vertex and normal radius e0c792135adf
 * Edit Mesh: Poly build tool improvements d8baafd693eb
 * Fix T68763: Smooth Brush not working in LookDev or Rendered Mode 8e4f3b2bb070
 * Fix Poly Build crash with empty meshes d5ed3de65451

Other projects
 * Sculpt branch: fix pose brush with multiple symmetry axis active, add radius preview.
 * Merge mask by normal and mask expand into a single operator