April 7, 2019, 02:08 (GMT) |
OpenVDB: Add Filters and CSG operations to the Level Set C API I also refactored the voxel remesher code to use the new API. |
April 6, 2019, 17:17 (GMT) |
initial implementation of the openvdb remesher inside the remesh modifier this merges my patch now officially to the sculpt-mode-features branch :) |
April 5, 2019, 15:56 (GMT) |
Sculpt vertex colors: Initial implementation This adds a new CustomDataLayer to store per vertex color data in a way that can be used from sculpt mode. This vertex paint mode uses the same brush, pbvh, undo and rendering code as sculpt mode, so it has much better performance. It also enables other features like sculpting and painting at the same time. I also added some extra features that are needed to start testing this paint mode, such as: - New paint brush optimized for painting. It doesn't modify any vertex position data. - Sculpt mode sample color operator that uses the active vertex from the cursor - Remesh reprojection support: sculpt vertex colors are reprojected into the new mesh when using the remesh operator if the mesh has that option enabled. - Store and load sculpt vertex colors into the regular vertex color layers to keep compatibility. - Use the single color display mode to disable sculpt vertex colors in sculpt mode. A lot of decisions needs to be made to integrate this in Blender, so I decided to keep the implementation as unintrusive as possible to start working on the tools. This has the following limitations: - Sculpt and paint at the same time is only enabled in the draw brush. You need to set the Color Mode to Mix in the brush options. - Dyntopo and multires modes and viewport display are broken - Only mix as a color blend mode - No brush texture support - Sculpt and color share the same strength - Limited to one layer per object - No rendering support. You will need to copy the sculpt vertex colors to the old color layers first. All of these issues should be addressed once the main workflow, final UI and behavior are decided. |
April 2, 2019, 23:28 (GMT) |
Enable OpenVDB by default The voxel remesher needs OpenVDB to work. Maybe I should add an option to disable building the voxel remesher in the future. Patch by Jun Mizutani (@jmztn). |
April 2, 2019, 23:21 (GMT) |
Fix crash on vertex and weight paint I think the crash was related to the new viewport navigation. I'm not sure if this is the correct way to fix this, but now vertex and weight paint are working again. |
April 2, 2019, 23:15 (GMT) |
Fix pad error after merge |
April 2, 2019, 23:03 (GMT) |
Merge branch 'master' into sculpt-mode-features |
April 2, 2019, 22:54 (GMT) |
Ignore normal radius on vertex and weight paint |
March 30, 2019, 20:27 (GMT) |
View Navigation: 2D viewport zooming This implements the same concept of 2D viewport panning but for zooming. It prevents unexpected zoom speeds when working with a pen tablet. Zoom speed is constant and it is based on the initial distance to the working area. Speed parameters are hardcoded for now, but they can be exposed as options or replaced by a variable zoom speed. I also reduced the rotation speed when 2D viewport panning is enabled for consistency. This navigation mode is enabled by activating 2D viewport panning in the navigation preferences. That option should be renamed in the future. Enabling and disabling perspective is broken most of the time, but it also happens in master. I'm not sure if these changes are making the problem worse. |
March 24, 2019, 03:02 (GMT) |
Merge branch 'master' into sculpt-mode-features |
March 22, 2019, 15:16 (GMT) |
Automasking System: Topology automasking initial implementation This commit adds a general automasking system and the topology automasking option (not topology falloff, that can be added later). It should be faster and with fewer memory errors that the last version I made. It is designed to work with every brush and every stroke mode, but for now, I only added support for draw and grab to avoid changing every brush until the system is more polished. The main purpose of adding this in such an early stage of development is to check if the cursor is working correctly. The purpose of the vertex preview in the cursor was to show the active vertex for automasking, so now I can test if the whole system is behaving as it should. Limitations: - Only meshes for now (no dyntopo or multires). I still need to think about what to do with dyntopo. I don't know if brushes that generate new topology are going to work with this. - It only stores a binary mask (a vertex can be active or not). This could be changed if the future to support topological falloff or other more complex types of automasking. - As it is now, brushes that use stroke space update the active vertex dynamically, setting it to the closest vertex to the brush location each sample. This often causes masking errors with small brushes. I'm considering changing it to always check topology using the initial active vertex, but it is going to be much slower. |
March 20, 2019, 22:17 (GMT) |
Add proportional editing presets to sculpt brushes When sculpting, I always found that the behavior of the current curve falloff system is not correct, so I added the same curves that proportional editing uses to the brush falloff calculation. Now, curves are easier to set up and they produce a much better result. You can easily compare it against the old method by changing the curve preset option from custom to smooth in the grab brush. To make the new dam brush behave correctly, you need to select the sharper curve preset. You can also use it to insert shapes using the stroke anchored option and changing the curve preset. |
March 20, 2019, 19:35 (GMT) |
Mask tools: Fix crash with dyntopo and lasso mask Ignore the front facing option with dyntopo. I will properly fix this later. |
March 20, 2019, 02:34 (GMT) |
Voxel Remesher: Add remesher parameters to mesh datablock I tested several UI integrations: -Running the remesher from an operator and adjusting the parameters with the redo panel freezes the interface with high-res meshes. It looks cool, but it is not that useful. -Integrating it into a tool does not store per object remesh configurations. It also forces the user to switch the tool when he/she is sculpting just to recalculate the topology. Storing the remesher options per mesh is the best option I found. Now, the remesher is found in the properties panel under the mesh tab. The user can assign it to the quick favorites menu or add a keyboard shortcut. Remesher parameters can be adjusted there. They are stored per mesh. This way, remesher parameters of each mesh are preserved when sculpting different objects at different levels of details. In the future, the user will be able to choose different remeshing algorithms (triangulation, quadriflow...) from there and assign them to the mesh. All of them will be executed by the same remesh operator and some of them will share some options (like smooth normals). |
March 19, 2019, 22:07 (GMT) |
Voxel remesher: Add support for undo from sculpt mode Only undo for now, no redo. This will need a lot of work and refactoring in the future (it has a lot of bugs), but now it is safer to test new features without losing work. |
March 19, 2019, 01:13 (GMT) |
Mask tools: Option to mask only front faces with lasso mask It still needs to be added to the keymap or as a tool setting. |
March 18, 2019, 16:30 (GMT) |
Merge branch 'master' into sculpt-mode-features |
March 18, 2019, 03:36 (GMT) |
Dam brush: Initial implementation The purpose of this brush is to create sharp edges without creasing or pinching the geometry. It is useful when sculpting cloth wrinkles, hard surface objects or small cavities. To avoid artifacts, set the stroke spacing to a lower value than 10 and enable symmetry feather. This affects performance, so I am not adding it to the defaults for now. It does not create new geometry in dyntopo, so you will need to create the geometry with another tool or switch to the voxel remesher workflow. I'm not quite happy with the deformation as it is now (maybe it is too smooth). I also need to try the brush with different pen tablets to properly calibrate the pressure. |
March 18, 2019, 01:31 (GMT) |
Brush cursor: Fix smooth stroke line position Reset the viewport to its original state after drawing the vertex preview. |
March 16, 2019, 18:27 (GMT) |
Brush cursor: Fix crash with 2D falloff Disable the normal preview when 2D falloff is enabled. |
|