Brushstroke Tools: Initial Version #328

Merged
Simon Thommes merged 229 commits from SimonThommes/blender-studio-tools:brushstroke_tools-initial-version into main 2024-11-06 15:03:47 +01:00

229 Commits

Author SHA1 Message Date
ea2850574c - version bump 2024-11-05 17:34:36 +01:00
8d4053f375 - skip copying/duplicating invisible brushstroke layers to avoid partial data 2024-11-05 17:30:48 +01:00
4f5fd36e23 - check mode before trying to set it to avoid errors 2024-11-05 17:27:15 +01:00
5299c914c8 - remove context handler 2024-11-05 17:17:56 +01:00
742a542c41 - hide 'make_preset' operator from UI to avoid confusion since there is a lack in support for preset functionality 2024-11-05 15:30:59 +01:00
403f9a16a4 - adjust color sampling options to make it more clear/intuitive how to use a surface attribute 2024-11-04 23:12:07 +01:00
fe0488f09e - reset ui options toggle when active brushstrokes change 2024-11-04 20:59:41 +01:00
3666c100e9 - add information about file system permission 2024-11-04 20:05:12 +01:00
cbfcae0ebb - add nice thumbnails 2024-11-04 17:36:34 +01:00
e9bfa01fea - shorten tagline again 2024-11-04 16:59:14 +01:00
bf014c7d59 - implement switch functionality for distribution mask method
- small description tweak on `Dappled`
2024-11-04 13:16:59 +01:00
925aab89f3 - shorten tagline for upload 2024-11-04 13:03:43 +01:00
5ec2c54e1d - minor cleanup 2024-11-04 10:48:38 +01:00
Simon Thommes
78fb737f50 - store binaries as compressed .blend 2024-11-03 21:13:09 +01:00
d1fd067cbd - include surface object name in brushstrokes name on creation 2024-11-01 18:18:39 +01:00
784aabe311 - nullcheck 2024-11-01 18:07:01 +01:00
9ce0eba774 - add operator to enable/disable all brushstrokes in the viewport 2024-11-01 16:42:34 +01:00
dc03e5862f - update preview texture (if it changed) 2024-11-01 12:57:06 +01:00
b62d661ef3 - pack preview image 2024-11-01 12:19:54 +01:00
041366a762 - expose backface culling in material options 2024-11-01 12:18:09 +01:00
09f3c83e43 - UI improvement 2024-11-01 11:32:17 +01:00
aacd9aa36c - refactor UI code 2024-11-01 11:08:36 +01:00
5405881df3 - draw warnings for 4.3.0+ 2024-11-01 10:39:25 +01:00
ccf6695897 - expose shadow visibility of brushstrokes in settings 2024-11-01 10:17:34 +01:00
0982fca849 - minor UI rename tweak 2024-10-31 17:26:28 +01:00
794f714b76 - ensure animation nodegroup 2024-10-31 17:22:37 +01:00
23f7be2532 - show previews only for Blender version (4,2,4) and up 2024-10-31 17:10:17 +01:00
abb52a3311 - enable preview and remove when not available 2024-10-31 17:05:11 +01:00
24030af1ef - nullcheck for missing context object 2024-10-31 16:50:44 +01:00
409e5a471a - make animation an explicit toggle to remove time dependency in default case 2024-10-31 16:46:45 +01:00
5b8a98426f - pass over builtin brushstrokes names and convention 2024-10-31 14:47:11 +01:00
9c1eb640b2 - add todo 2024-10-31 12:34:48 +01:00
1b93000d5d - new operator to assign a surface object 2024-10-31 12:22:30 +01:00
d45af99422 - add modifier to fill setup to mask surface (by material) 2024-10-31 12:00:41 +01:00
e1cfd1ac27 - add ability to close modifier panels by default 2024-10-31 11:51:02 +01:00
d03133e236 - small naming fix for animation data 2024-10-30 11:26:23 +01:00
18d16a94f6 - expose color picker in tool settings 2024-10-30 11:06:33 +01:00
c0744229de - expose, propagate and preserve more tool settings from curve drawing 2024-10-30 10:53:57 +01:00
fe2888a03c - draw tool cleanup 2024-10-30 10:21:50 +01:00
23916ea5cf - make selected surface projection conditional 2024-10-30 10:12:03 +01:00
ead9b0b734 - fix settings restoration for draw tool 2024-10-30 10:06:55 +01:00
6c32f126ca - reorder material assignment operation to fix missing material pointer on first preset init per method type 2024-10-29 19:29:50 +01:00
59f766923b - fix issues with flow editing and flow object selection syncing 2024-10-29 19:22:03 +01:00
3bdea80fc8 - fix issue with missing active object 2024-10-29 11:55:33 +01:00
47d0dc77eb - refactor active surface logic to eliminate confusion and redundancy 2024-10-29 11:49:51 +01:00
7577c20668 - update mod_info on active brushstrokes to allow showing new modifiers 2024-10-28 19:03:51 +01:00
863687830d - hook up new curves for sculpting with surface mesh 2024-10-28 18:57:29 +01:00
cb90d4d955 - more prep for brush style previews 2024-10-28 17:04:47 +01:00
a8d42ef776 - rename base material
- change descriptions
- fix typo
2024-10-28 12:47:24 +01:00
ea23b18985 - update context material when selecting new brushstroke properly 2024-10-22 16:19:06 +02:00
82bfd8175d - don't show attribute toggle for inputs that only support single values 2024-10-22 16:09:41 +02:00
030fa3cdb2 - don't pack if already packed 2024-10-22 16:02:11 +02:00
f167b85abd - fix entering edit mode on GP for 4.3 2024-10-21 17:09:59 +02:00
ea86b00bc8 - reset default settings on brush style settings if input is not found 2024-10-20 14:20:31 +02:00
bb6bf1778e - more attempts at preview images (only missing UI updates) 2024-10-20 13:49:51 +02:00
4be0ba5750 - add initial preview thumbnails + base setup to show previews (really bad performance) 2024-10-18 21:07:08 +02:00
b174fbb794 - add mesh loops option 2024-10-18 19:56:27 +02:00
c9845baab0 - reorganize defaul brush pack
- expose seed parameter for atlas
2024-10-18 15:50:35 +02:00
ecd2206946 - add tail and distortion options to procedural default brush 2024-10-18 13:07:45 +02:00
0952e3d044 - move viewport color down in UI 2024-10-17 18:59:26 +02:00
1ba87c4452 - expose seed by default 2024-10-17 18:57:59 +02:00
eee1654f1b - make linked settings editable regardless (e.g. seed) 2024-10-17 18:57:48 +02:00
dd1cf8a329 - address some of Vivien's feedback regarding UI 2024-10-17 18:39:34 +02:00
ba99c6d92f - improve splitting behavior for more consistent length 2024-10-16 19:18:53 +02:00
c9ca0abc34 - revise default socket and panel visibility and some UI tweaks 2024-10-16 18:29:14 +02:00
2baf14a25e - show loaded brush styles in user preferences 2024-10-16 18:10:37 +02:00
e6e7075915 - change license to be GPL 3.0 or later 2024-10-16 17:19:03 +02:00
5f411d71d3 - cleanup brush style file 2024-10-16 17:00:32 +02:00
915dc16935 - de-duplicate material node-groups on import 2024-10-16 16:56:43 +02:00
e79fe4220b - allow make preset when active bs is not active object 2024-10-16 16:23:57 +02:00
99f24409e6 - import brushstrokes material as fallback when initializing preset 2024-10-16 15:56:46 +02:00
a7cee83ecb - add operator to create new brushstrokes material based on default when no material is selected 2024-10-16 15:52:32 +02:00
Simon Thommes
87134f0cb4 - add basic control inputs to default brush fallback 2024-10-14 22:41:37 +02:00
Simon Thommes
3ed8387e2e - add brush style inputs to panel 2024-10-14 19:48:34 +02:00
Simon Thommes
53a3fc831f - reshuffle Material settings UI 2024-10-14 19:48:08 +02:00
d92c67de53 - split brush styles into separate file
- get available brush styles with recursive traversal
- import selected bruish style on-the-fly
2024-10-11 18:44:10 +02:00
d5d2916670 - change brush style accumulation (base refactor) 2024-10-11 17:36:21 +02:00
5120f3d383 - add significance to version comparison to differentiate severity 2024-10-10 14:54:23 +02:00
dd768bc74d - add warning for version mismatch and expose operator to re-import resources 2024-10-10 14:39:56 +02:00
a04911ee49 - add util function to compare versions 2024-10-10 12:24:57 +02:00
8fd2333071 - add writing and reading of asset library version number for local copy 2024-10-09 18:45:39 +02:00
01504e5f78 - update asset library path when resource path is changed 2024-10-09 18:08:05 +02:00
efcf61be32 - initial draft for docs 2024-10-09 17:55:53 +02:00
3776661fce - ensure brush style node for UI 2024-10-09 17:08:43 +02:00
276ca95b7b - make material UI more resilient against customization 2024-10-09 16:59:14 +02:00
77b0fa9489 - fix usage of variation parameters when no flow is defined 2024-10-09 16:42:29 +02:00
f35f9645e9 - expose translucendy setting for material 2024-10-09 15:54:21 +02:00
d8aea3d3b9 - change opacity slider to percentage 2024-10-09 15:24:08 +02:00
ca4b007120 - change auto-edit behavior 2024-10-09 15:20:41 +02:00
4a9330e202 - remove error icon from missing context info 2024-10-09 15:15:41 +02:00
306af87925 - make active brushstrokes active object after deleting 2024-10-09 15:14:31 +02:00
5a3424c998 - random seed on layer duplication 2024-10-09 15:00:50 +02:00
1438609c8a - adjust density slider behavior
- restructure `Surface Draw` node-group interface
- do full pass on socket descriptions
2024-10-09 14:26:52 +02:00
cf4fc05f4a - error when missing UV map 2024-10-08 17:13:53 +02:00
1de02c4d92 - implement operator to copy existing flow assignment 2024-10-08 16:56:14 +02:00
840c19cfa6 - add assignment of flow object pointer to util function 2024-10-08 16:55:53 +02:00
16fdf85722 - WIP boilerplate for copy flow operator 2024-10-03 17:23:23 +02:00
8889c6a432 - fix curve sampling wrong mesh island by using center point on curve 2024-10-03 17:23:14 +02:00
90fd62a89b - fix UV map assignment for draw layers properly by allowing it for string sockets 2024-10-03 17:23:01 +02:00
6a3c01e78b - fix deleting invisible BS layer 2024-10-03 10:33:07 +02:00
6e67f8fde3 - fix making brushstrokes active after creation 2024-10-03 10:30:47 +02:00
1ae920d9db - fix losing context when deleting layer 2024-10-03 09:07:21 +02:00
ad36834921 - fix issue with UVMap linking on surface draw layer 2024-10-03 09:02:03 +02:00
8d894f1abf - change default for edit toggle setting 2024-10-02 18:54:02 +02:00
85e85eb212 - flip order of duplicate and delete operator in UI 2024-10-02 18:30:28 +02:00
d14255e54d - expose viewport color in material settings 2024-09-24 16:59:43 +02:00
81d1d461b1 - fix switching deformable operator and expose in user interface under settings tab 2024-09-24 16:47:41 +02:00
4da6598d7b - add functionality to create non-/deformable brushstroke layers (needs fixing) 2024-09-23 19:28:04 +02:00
38e4e61cf6 - add pre-processing and animatability to flow object 2024-09-23 17:27:15 +02:00
45a7401b53 - change tool icon 2024-09-19 16:42:50 +02:00
b017796ab0 - add options to define color on material level instead 2024-09-19 16:01:04 +02:00
a5215aa1a3 - implement flow randomization
- additional small node-group tweaks
2024-09-19 15:23:05 +02:00
b3263d9d01 - change UI layout of user preferences 2024-09-18 18:20:04 +02:00
139773079d - implement resource linking and image packing on append 2024-09-18 16:30:31 +02:00
5905a174f5 - initial preference setup
- add functionality to change resource path
- add functionality to copy resource to custom dir
2024-09-18 15:55:30 +02:00
690ab2e029 - replace icon (temp) to avoid missing one
- fix missing property
2024-09-18 12:54:00 +02:00
778a04e5c5 - separate draw tool settings to not intrude on existing ones 2024-09-17 19:27:01 +02:00
53a5e3aebc - change draw tool to use a macro to allow single undo step 2024-09-17 18:51:03 +02:00
c3aa179b0e - add nullcheck on flow_object to copy draw layers 2024-09-17 12:57:59 +02:00
c736ac8e12 - add silent_switch toggle to allow non-intrusive property changes 2024-09-17 12:54:06 +02:00
6774e208a4 - initial setup to split view into tabs 2024-09-17 10:58:13 +02:00
2e6b1997d2 - Change UI default to make Preset System less prominent 2024-09-16 18:13:33 +02:00
88aec437fc - adjust UI by splitting adding into two buttons 2024-09-16 17:16:44 +02:00
19899ab60e - fix copy operator 2024-09-16 15:58:53 +02:00
204d07a201 - working initial state of render setup operator 2024-09-16 12:54:10 +02:00
Simon Thommes
9c41820950 - wip commit of operator to set up render settings 2024-09-16 11:17:50 +02:00
Simon Thommes
a5cf5bc12a - input remapping on copy
- proper all copy behavior
2024-09-15 12:47:42 +02:00
Simon Thommes
a54213c3c8 - avoid copy within self stack
- small fix
2024-09-15 11:59:56 +02:00
Simon Thommes
6914076f9c - improve copy operators UI with menu 2024-09-15 11:34:17 +02:00
Simon Thommes
a43dc9f3ad - preliminary copy operator to selected 2024-09-14 12:03:48 +02:00
Simon Thommes
f0bd81fc08 - add setter functions for surface and flow objects 2024-09-14 11:53:50 +02:00
Simon Thommes
f07e70e4c7 - small UI tweak 2024-09-14 11:26:40 +02:00
b1e227e949 - minor fix 2024-09-13 19:11:08 +02:00
fb77bf421d - add operator to duplicate brushstrokes 2024-09-13 19:06:50 +02:00
bb577f7df4 - reshuffle UI slightly 2024-09-13 18:51:10 +02:00
5fad5d7c69 - gray out unused properties 2024-09-13 18:23:31 +02:00
1a09a1df63 - hook up available brushstroke style to UI selection 2024-09-13 18:20:02 +02:00
6fea737a96 - add fx settings drawing in UI 2024-09-13 14:20:35 +02:00
529b2b66c6 - adjust material panel drawing 2024-09-13 14:20:00 +02:00
54637cae9a - Add reroutes and explicit naming to shader node-tree to expose functionality 2024-09-13 12:10:31 +02:00
8efaf4ad50 - use different library for toml 2024-09-12 18:48:00 +02:00
e134eb2d0e - check for object visibility on view layer to avoid errors on brushstroke layer selectiong in uilist 2024-09-12 17:45:32 +02:00
a7be999291 - display clearly whether there is a valid surface object in the context 2024-09-12 17:36:37 +02:00
9cb21c19af - allow renaming modifiers by displaying mod_info property and adding get/set functions 2024-09-12 17:20:03 +02:00
75e7c0911b - UI tweaks 2024-09-12 17:08:06 +02:00
6429189422 - add nullcheck for missing node-group datablock 2024-09-12 16:58:33 +02:00
f99a6cb80f - implement dimensional estimation based on bbox to give reasonable starting point 2024-09-10 19:10:29 +02:00
2759bce45f - expose initial material settings 2024-09-06 18:00:38 +02:00
e22d858587 - surface draw method UI initialization 2024-09-06 16:43:48 +02:00
f53b0da211 - minor code style improvement 2024-09-06 16:29:00 +02:00
5b9c896fc3 - make edit button UI text context dependent 2024-09-06 16:27:55 +02:00
10762817d6 - add operator to select actuve surface object 2024-09-06 16:24:52 +02:00
64bd04e517 - implement initial material swapping 2024-09-06 16:12:26 +02:00
36c3bdc094 - fix mode switch for grease pencil 2024-09-06 15:29:24 +02:00
62d570369e - refactor active brushstroke access 2024-09-06 14:55:11 +02:00
4c63bc2a2c - set and assign preset material 2024-09-05 16:57:56 +02:00
2cbc1a8587 - ignore catalog backup file 2024-09-05 16:41:29 +02:00
6095595ed3 - fix use_attribute toggle on brushstrokes context 2024-09-04 20:00:49 +02:00
2fe146d897 - fix selection behavior and retaining the edit toggle 2024-09-03 11:38:34 +02:00
bb551d4adf - fix curve color sampling 2024-09-03 11:01:23 +02:00
1d51461a6b - expose wildcard attribute removal 2024-09-03 10:49:59 +02:00
5885226c48 - add operator to delete brushstrokes including controllers 2024-09-02 19:16:22 +02:00
548f92ebeb - add several nullchecks 2024-09-02 19:08:21 +02:00
d35bc52414 - add shortcut for pie menu with brushstroke data marking in mesh edit mode 2024-09-02 18:04:17 +02:00
081f9e164d - adjust asset library settings path and add catalogs 2024-09-02 16:53:19 +02:00
e2fa4b0c2a - add/remove addon asset library 2024-09-02 16:45:51 +02:00
96511099d6 - implement functionality of edit operator and live edit toggle 2024-09-02 16:07:42 +02:00
c35a7811db - slightly fix back-deformation for curves outside of surface in drawing tool 2024-09-02 16:05:36 +02:00
4c8520d71b - write version number as integer tuple 2024-09-02 15:55:23 +02:00
e7c23bbc91 - tag brushstrokes object with addon version number 2024-09-02 15:50:49 +02:00
934a4b0840 - add support for non-uniform normal smoothing 2024-09-02 15:03:54 +02:00
2299b3716f - optimize material and object visibility for Eevee Next 2024-09-02 12:14:00 +02:00
4f28a192f4 - fix uneditable id pickers for [material, texture, collection] 2024-09-02 11:51:08 +02:00
2421ffb116 - add icons to datablock pickers 2024-09-02 11:41:22 +02:00
76cbc59e55 - rename preset to default in UI 2024-08-30 10:22:16 +02:00
1b58fb484e - add viewport hiding functionality (eye icon) 2024-08-29 19:51:52 +02:00
30ac4ba9e7 - base visibility settings in uilist 2024-08-28 19:03:03 +02:00
4e455179af - fix issue when active object is not enabled in viewport 2024-08-28 18:49:59 +02:00
4043cafb80 - rename and restructure shading node-groups 2024-08-28 17:42:43 +02:00
88b9de2ab2 - changes to default shader 2024-08-28 17:28:36 +02:00
d14d95a5d9 - invert UI hiding concept to pinning and visualize with drawing based on nested hide state 2024-08-28 17:28:36 +02:00
7f006cd45c - implement basic UI for brushstroke editing (not functional yet) 2024-08-28 17:28:36 +02:00
0c79e32b1b - select context brushstrokes if active object is matching 2024-08-28 17:28:36 +02:00
b938c8909b - reuse flow object from active brushstrokes as option 2024-08-27 18:03:38 +02:00
a1b55956c8 - UI tweaks 2024-08-27 17:49:35 +02:00
8e8ff6d687 - disable all rendering visibility options for flow object 2024-08-27 17:22:58 +02:00
b135be19f7 - remove wrong property assignment 2024-08-27 17:20:15 +02:00
974a4bd6c5 - minor draw tool improvements 2024-08-27 17:10:25 +02:00
311d8f20cb - tweak defaults and node-group 2024-08-27 17:00:21 +02:00
232708666c - implement keyword matching to hide inputs based on menu switch 2024-08-27 16:43:00 +02:00
9debde1599 - add functionality to customize UI by hiding modifiers/panels/sockets 2024-08-27 15:12:50 +02:00
27773e1a8c - reorganize fill settings
- implement different color methods (base + texture + curves)
2024-08-27 13:21:06 +02:00
c8f840e9e1 - add function to create deep copy of mod_info 2024-08-27 10:38:23 +02:00
523232bc59 - rename mod_info hierarchy to make it more clear 2024-08-26 18:14:03 +02:00
515c824dc1 - implement random value initialization via context linking 2024-08-26 17:16:19 +02:00
7545daf2de - add ability for custom icons and additional custom link type entries 2024-08-26 15:54:43 +02:00
473c53f211 - formatting changes 2024-08-26 14:18:46 +02:00
72bf473bf9 - code style improvements 2024-08-26 13:12:56 +02:00
f8288fb47e - unregister in reversed order 2024-08-26 13:07:42 +02:00
4a2b860880 - remove unnecessary depsgraph update 2024-08-26 12:52:06 +02:00
bee6c3d710 - remove print 2024-08-26 12:50:56 +02:00
9df8627513 - make new brushstrokes active 2024-08-26 12:41:38 +02:00
282e22ad40 - adjust node-group defaults 2024-08-26 12:23:03 +02:00
87c29cee08 - fix for empty brush context 2024-08-26 11:44:27 +02:00
f7b144b1a2 - adjust node-rgoup defaults 2024-08-23 19:14:28 +02:00
161f07c104 - nullcheck for missing property 2024-08-23 19:10:55 +02:00
df7191c29b - replace transform constraint with parenting relationship
- add parenting to flow object
2024-08-23 19:08:49 +02:00
aef3b163f3 - small drawing refactor to reuse type method icons 2024-08-23 18:49:00 +02:00
8b562e0a79 - sync object selection with brushstroke selection 2024-08-23 18:30:31 +02:00
20992ea679 - minor fix to not show init_preset operator out of preset mode 2024-08-23 18:07:30 +02:00
f86097ac1b - small UI improvements 2024-08-23 17:52:51 +02:00
0e32f44f19 - refactor and extend context linking to more generic implementation 2024-08-23 16:21:50 +02:00
76d278bf2e - change default density 2024-08-23 15:51:01 +02:00
e666f55059 - initial brushstroke fill/draw preset setup 2024-08-22 19:30:01 +02:00
ce8dec26e9 - rename node-groups 2024-08-22 19:14:31 +02:00
d54a7d5039 - always init preset first when adding a new brushstroke instance 2024-08-22 19:02:49 +02:00
ee0dea07eb - include initial brushstroke nodegroups
- include initial brushstroke material
- add initial brush atlas library
2024-08-22 18:52:29 +02:00
253bf681b4 - renema object data alongside object 2024-08-22 18:17:26 +02:00
0742269206 - rename brushstrokes in UIList 2024-08-22 17:26:45 +02:00
5b8e70e59b - re-use surface object from context to avoid chaining 2024-08-22 15:28:58 +02:00
f967b92bfa - add flow object concept 2024-08-22 15:12:22 +02:00
db553e1cb9 - refactor some utility functionality 2024-08-22 14:49:19 +02:00
7378e61cbe - basis for generalized brushstroke context 2024-08-21 18:53:26 +02:00
a2485dcd43 - split presets into method categories 2024-08-21 16:50:52 +02:00
969dd44df8 - add brushstroke_method property 2024-08-21 16:21:38 +02:00
af17e5dbe0 - UI reshuffle 2024-08-21 16:19:48 +02:00
a1c76bbc22 - typos fixed 2024-08-21 15:34:21 +02:00
6f13c98284 - change icon 2024-08-21 15:20:14 +02:00
343a3ad9b0 Brushstroke Tools:
- initial migration from (WIP) Scribble Buddy repository (https://projects.blender.org/SimonThommes/scribble-buddy)
- convert into extension
2024-08-21 12:51:30 +02:00