opacity pressure and jitter, initial direction

This commit is contained in:
2019-02-25 01:31:32 +01:00
parent bfaff312f8
commit abca1d5162
12 changed files with 94 additions and 38 deletions

View File

@@ -214,7 +214,8 @@ std::vector<NodeStrokePreview::StrokeFrame> NodeStrokePreview::stroke_draw_compu
f.m_mixer_rect = { glm::floor(mixer_bb_min), glm::ceil(mixer_bb_max - mixer_bb_min) };
f.col = glm::vec4(s.col, 1);
f.pressure = s.flow;
f.flow = s.flow;
f.opacity = s.opacity;
f.shapes = B;
prev = s;
@@ -251,6 +252,8 @@ void NodeStrokePreview::draw_stroke()
m_stroke.start(b);
auto dual_brush = std::make_shared<Brush>();
dual_brush->m_tip_scale = b->m_dual_scale;
dual_brush->m_tip_angle = b->m_dual_angle;
dual_brush->m_tip_flow = b->m_dual_flow;
dual_brush->m_tip_opacity = b->m_dual_opacity;
dual_brush->m_tip_flipx = b->m_dual_flipx;
@@ -319,7 +322,6 @@ void NodeStrokePreview::draw_stroke()
m_rtt.clear();
ShaderManager::use(kShader::Stroke);
ShaderManager::u_int(kShaderUniform::UsePattern, false);
ShaderManager::u_float(kShaderUniform::Opacity, b->m_dual_opacity);
ShaderManager::u_float(kShaderUniform::MixAlpha, 0);
ShaderManager::u_float(kShaderUniform::Wet, 0);
ShaderManager::u_float(kShaderUniform::Noise, 0);
@@ -329,8 +331,8 @@ void NodeStrokePreview::draw_stroke()
for (auto& f : frames_dual)
{
ShaderManager::u_vec4(kShaderUniform::Col, { 0, 0, 0, 1 });
ShaderManager::u_float(kShaderUniform::Alpha, f.pressure);
//ShaderManager::u_float(kShaderUniform::Opacity, f.opacity); // per sample opacity
ShaderManager::u_float(kShaderUniform::Alpha, f.flow);
ShaderManager::u_float(kShaderUniform::Opacity, f.opacity);
auto rect = stroke_draw_samples(f.shapes, m_tex_dual);
}
glActiveTexture(GL_TEXTURE0);
@@ -345,7 +347,6 @@ void NodeStrokePreview::draw_stroke()
// DRAW MAIN BRUSH
ShaderManager::use(kShader::Stroke);
ShaderManager::u_float(kShaderUniform::Opacity, b->m_tip_opacity);
ShaderManager::u_float(kShaderUniform::MixAlpha, b->m_tip_mix);
ShaderManager::u_float(kShaderUniform::Wet, b->m_tip_wet);
ShaderManager::u_float(kShaderUniform::Noise, b->m_tip_noise);
@@ -370,8 +371,8 @@ void NodeStrokePreview::draw_stroke()
ShaderManager::use(kShader::Stroke);
ShaderManager::u_vec4(kShaderUniform::Col, { 0, 0, 0, 1 } /*f.col*/);
ShaderManager::u_float(kShaderUniform::Alpha, glm::max(f.pressure, m_min_flow));
//ShaderManager::u_float(kShaderUniform::Opacity, f.opacity); // per sample opacity
ShaderManager::u_float(kShaderUniform::Alpha, glm::max(f.flow, m_min_flow));
ShaderManager::u_float(kShaderUniform::Opacity, f.opacity);
auto rect = stroke_draw_samples(f.shapes, m_tex);
}
glActiveTexture(GL_TEXTURE3);