add dual brush roundness property

This commit is contained in:
2019-02-26 23:50:59 +01:00
parent ebcb918bdc
commit c3c2055011
6 changed files with 47 additions and 41 deletions

View File

@@ -278,7 +278,7 @@ std::vector<std::shared_ptr<Brush>> ABR::compute_brushes(const std::string& path
b->m_dual_flow = .90f;
b->m_dual_opacity = 1.f;
//b->m_tip_aspect = (1.f - samp->value<UnitFloat>("Rndn") * 0.01) * 0.5f + 0.5f;
b->m_dual_aspect = (1.f - samp->value<UnitFloat>("Rndn") * 0.01) * 0.5f + 0.5f;
b->m_dual_size = samp->value<UnitFloat>("Dmtr") / b->m_tip_size;
b->m_dual_spacing = samp->value<UnitFloat>("Spcn") * 0.01f;

View File

@@ -24,6 +24,7 @@ public:
glm::vec4 m_tip_color = { 0, 0, 0, 1 };
glm::vec2 m_tip_scale = { 1.f, 1.f };
glm::vec2 m_dual_scale = { 1.f, 1.f };
float m_tip_size = 50;
float m_tip_spacing = .25;
float m_tip_flow = 1.f;
@@ -44,47 +45,47 @@ public:
float m_jitter_scale = 0;
float m_jitter_angle = 0;
float m_jitter_scatter = 0;
bool m_jitter_scatter_bothaxis = false;
bool m_jitter_scatter_bothaxis = false;
float m_jitter_flow = 0;
float m_jitter_opacity = 0;
float m_jitter_hue = 0;
float m_jitter_sat = 0;
float m_jitter_val = 0;
int m_blend_mode = 0;
int m_blend_mode = 0;
bool m_tip_invert = false;
bool m_tip_flipx = false;
bool m_tip_flipy = false;
bool m_pattern_enabled = false;
bool m_dual_enabled = false;
int m_dual_blend_mode = 1;
bool m_dual_randflip = false;
bool m_tip_invert = false;
bool m_tip_flipx = false;
bool m_tip_flipy = false;
bool m_pattern_enabled = false;
bool m_dual_enabled = false;
int m_dual_blend_mode = 1;
bool m_dual_randflip = false;
float m_dual_size = .75;
float m_dual_spacing = .25;
float m_dual_scatter = 0;
bool m_dual_scatter_bothaxis = false;
bool m_dual_invert = false;
bool m_dual_flipx = false;
bool m_dual_flipy = false;
bool m_tip_randflipx = false;
bool m_tip_randflipy = false;
bool m_dual_scatter_bothaxis = false;
bool m_dual_invert = false;
bool m_dual_flipx = false;
bool m_dual_flipy = false;
bool m_tip_randflipx = false;
bool m_tip_randflipy = false;
float m_tip_aspect = 0.5f;
float m_dual_flow = .75f;
float m_dual_opacity = 1.f;
float m_dual_rotate = .25f;
float m_dual_angle = 0;
int m_dual_count = 1;
glm::vec2 m_dual_scale = { 1.f, 1.f };
float m_dual_aspect = 0.5f;
int m_dual_count = 1;
int m_pattern_blend_mode = 1;
bool m_pattern_eachsample = false;
bool m_pattern_invert = false;
bool m_pattern_flipx = false;
bool m_pattern_flipy = false;
int m_pattern_blend_mode = 1;
bool m_pattern_eachsample = false;
bool m_pattern_invert = false;
bool m_pattern_flipx = false;
bool m_pattern_flipy = false;
float m_pattern_scale = .25f;
float m_pattern_brightness = 0.5f;
float m_pattern_contrast = 0.5f;
bool m_pattern_rand_offset = false;
bool m_pattern_rand_offset = false;
float m_pattern_depth = 1.f;
bool load_tip(const std::string& path, const std::string& thumb);

View File

@@ -921,6 +921,7 @@ void Canvas::stroke_start(glm::vec3 point, float pressure)
dual_brush->m_jitter_scatter_bothaxis = m_current_brush->m_dual_scatter_bothaxis;
dual_brush->m_jitter_angle = m_current_brush->m_dual_rotate;
dual_brush->m_tip_texture = m_current_brush->m_dual_texture;
dual_brush->m_tip_aspect = m_current_brush->m_dual_aspect;
m_dual_stroke = std::make_unique<Stroke>();
m_dual_stroke->m_camera.rot = m_cam_rot;
m_dual_stroke->m_camera.fov = m_cam_fov;

View File

@@ -536,6 +536,7 @@ bool NodePanelBrushPreset::save()
i.m_dual_rotate = b->m_dual_rotate;
i.m_dual_angle = b->m_dual_angle;
i.m_dual_count = b->m_dual_count;
i.m_dual_aspect = b->m_dual_aspect;
i.m_dual_scale = b->m_dual_scale;
i.m_pattern_eachsample = b->m_pattern_eachsample;
@@ -638,6 +639,7 @@ bool NodePanelBrushPreset::restore()
b->m_dual_rotate = i.m_dual_rotate;
b->m_dual_angle = i.m_dual_angle;
b->m_dual_count = i.m_dual_count;
b->m_dual_aspect = i.m_dual_aspect;
b->m_dual_scale = i.m_dual_scale;
b->m_pattern_eachsample = i.m_pattern_eachsample;

View File

@@ -105,6 +105,7 @@ class NodePanelBrushPreset : public Node
glm::vec4 m_tip_color{ 0, 0, 0, 1 };
glm::vec2 m_tip_scale = { 1.f, 1.f };
glm::vec2 m_dual_scale = { 1.f, 1.f };
float m_tip_size = 0;
float m_tip_spacing = 0;
float m_tip_flow = 0;
@@ -125,37 +126,37 @@ class NodePanelBrushPreset : public Node
float m_jitter_scale = 0;
float m_jitter_angle = 0;
float m_jitter_scatter = 0;
bool m_jitter_scatter_bothaxis = false;
bool m_jitter_scatter_bothaxis = false;
float m_jitter_flow = 0;
float m_jitter_opacity = 0;
float m_jitter_hue = 0;
float m_jitter_sat = 0;
float m_jitter_val = 0;
int m_blend_mode = 0;
float m_dual_aspect = 0.5f;
int m_blend_mode = 0;
bool m_tip_invert = false;
bool m_tip_flipx = false;
bool m_tip_flipy = false;
bool m_pattern_enabled = false;
bool m_dual_enabled = false;
int m_dual_blend_mode = 0;
bool m_dual_randflip = false;
bool m_tip_invert = false;
bool m_tip_flipx = false;
bool m_tip_flipy = false;
bool m_pattern_enabled = false;
bool m_dual_enabled = false;
int m_dual_blend_mode = 0;
bool m_dual_randflip = false;
float m_dual_size = 0;
float m_dual_spacing = 0;
float m_dual_scatter = 0;
bool m_dual_scatter_bothaxis = false;
bool m_dual_invert = false;
bool m_dual_flipx = false;
bool m_dual_flipy = false;
bool m_tip_randflipx = false;
bool m_tip_randflipy = false;
bool m_dual_scatter_bothaxis = false;
bool m_dual_invert = false;
bool m_dual_flipx = false;
bool m_dual_flipy = false;
bool m_tip_randflipx = false;
bool m_tip_randflipy = false;
float m_tip_aspect = 0;
float m_dual_flow = .75f;
float m_dual_opacity = 1.f;
float m_dual_rotate = .25f;
float m_dual_angle = 0;
int m_dual_count = 1;
glm::vec2 m_dual_scale = { 1.f, 1.f };
int m_dual_count = 1;
bool m_pattern_eachsample = false;
bool m_pattern_invert = false;

View File

@@ -269,6 +269,7 @@ void NodeStrokePreview::draw_stroke()
dual_brush->m_jitter_scatter_bothaxis = b->m_dual_scatter_bothaxis;
dual_brush->m_jitter_angle = b->m_dual_rotate;
dual_brush->m_tip_texture = b->m_dual_texture;
dual_brush->m_tip_aspect = b->m_dual_aspect;
if (b->m_dual_enabled)
{