Update "Input Samples" settings as brush data #108109

Closed
opened 2023-05-20 17:20:17 +02:00 by Julien Kaspar · 5 comments
Member

(NOTE) This task is part of the community & sub tasks of the workboard. Anyone is free to pick up this task and contribute. For any questions or needed reviewers, please tag @Sergey @HooglyBoogly and @JulienKaspar.

Currently the brush setting "Input Samples" (tool_settings.sculpt.input_samples) is stored in bpy.data.scenes["Scene"].

To follow useful conventions with other brush settings, this should be updated to be stored in bpy.data.brushes["Brush"] instead. For the use case of having the input samples unified between all brushes, an additional scene property bpy.data.scenes["Scene"].tool_settings.unified_paint_settings.use_unified_input_samples should be added, including a a button to toggle it in the UI.

A mockup:

400_input_samples.png

(NOTE) This task is part of the community & sub tasks of the workboard. Anyone is free to pick up this task and contribute. For any questions or needed reviewers, please tag @Sergey @HooglyBoogly and @JulienKaspar. Currently the brush setting "Input Samples" (`tool_settings.sculpt.input_samples`) is stored in `bpy.data.scenes["Scene"]`. To follow useful conventions with other brush settings, this should be updated to be stored in `bpy.data.brushes["Brush"]` instead. For the use case of having the input samples unified between all brushes, an additional scene property `bpy.data.scenes["Scene"].tool_settings.unified_paint_settings.use_unified_input_samples` should be added, including a a button to toggle it in the UI. A mockup: ![400_input_samples.png](/attachments/87b97260-ecd4-4f6e-a11a-ef13bdf1cd22)
Julien Kaspar added the
Type
To Do
Module
Sculpt, Paint & Texture
labels 2023-05-20 17:20:17 +02:00
Julien Kaspar added this to the Sculpt, Paint & Texture project 2023-05-20 17:20:18 +02:00
Contributor

Heyo, I was looking around for ways to dip my toes into contributing with Blender recently and this seemed like a pretty self contained issue to work on. I'll reach out in the module channel if I have any particular questions, but I just wanted to put a note here to avoid duplicate work if anyone else happened to stumble upon this task.

Heyo, I was looking around for ways to dip my toes into contributing with Blender recently and this seemed like a pretty self contained issue to work on. I'll reach out in the module channel if I have any particular questions, but I just wanted to put a note here to avoid duplicate work if anyone else happened to stumble upon this task.
Author
Member

@Sean-Kim That sounds great! Thanks for looking into this 👍

@Sean-Kim That sounds great! Thanks for looking into this 👍
Contributor

Is this expected to be a breaking change on the user side of things or does the PR need to address making sure that if a user had a value set in the current stroke settings that it then gets reflected in the new field in the unified_paint_settings and also has the appropriate use_unified_input_samples flag marked?

Is this expected to be a breaking change on the user side of things or does the PR need to address making sure that if a user had a value set in the current stroke settings that it then gets reflected in the new field in the `unified_paint_settings` and also has the appropriate `use_unified_input_samples` flag marked?
Author
Member

@Sean-Kim I would expect the value that is already set in existing files to be used for the unfified scene value. But the use_unified_input_samples flag shouldn't be set by default.

@Sean-Kim I would expect the value that is already set in existing files to be used for the unfified scene value. But the `use_unified_input_samples` flag shouldn't be set by default.
Contributor

@JulienKaspar So, I think I've found a bit of a wrinkle in the proposed plan. By moving this data to UnifiedPaintSettings there's a bit of flexibility that the current implementation allows that wouldn't be able to be replicated with a single value.

Currently, the input_samples value is consistent across all brushes within a particular mode (e.g. Sculpt vs Vertex Paint). By having a value & flag within the UnifiedPaintSettings it would mean that users wouldn't be able to have a separate input_samples value for different modes, they would need to have that data changed on each individual brush.

I'm unsure if this is actually an issue in practice or if this is a contrived example, thoughts?

@JulienKaspar So, I think I've found a bit of a wrinkle in the proposed plan. By moving this data to `UnifiedPaintSettings` there's a bit of flexibility that the current implementation allows that wouldn't be able to be replicated with a single value. Currently, the `input_samples` value is consistent across all brushes within a particular mode (e.g. Sculpt vs Vertex Paint). By having a value & flag within the `UnifiedPaintSettings` it would mean that users wouldn't be able to have a separate `input_samples` value for different modes, they would need to have that data changed on each individual brush. I'm unsure if this is actually an issue in practice or if this is a contrived example, thoughts?
Blender Bot added the
Status
Archived
label 2024-02-05 18:11:16 +01:00
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#108109
No description provided.