sexta-feira, 19 de outubro de 2012

Mypaint, entendendo melhor o aumento de pinceis... Parte I

Depois da serie de artigos dedicados à minha integração do Mypaint com o Gimp... pensei de começar artigos mais focados neste processo. Neste em particular vou tentar analisar como o Mypaint trabalha com os pinceis... nada de complicado... e irei começar pelo bem básico explicando como funciona o Radius, a dimensão do pincel.
Uma das coisas mais interessantes e também desconcertantes do Mypaint é como ampliamos o tamanho de um pincel... isto acontece em escala logaritmica na base e.

Dimensão dos pinceis em pixel
Depois de algum tempo tentando entender com um certo grau de precisão... a correspondencia do valor do Raio, originalmentente numa escala logaritmica, em pixels... me descontrei com uma serie de probleminhas e principalmente hábitos adquiridos :D, um deles... para mim é natural pensar na dimensão do pincel como seu diâmetro... acho que para quase todo mundo é assim. No mypaint os pinceis são medidos por seu raio... então para saber o diâmetro temos que fazer a multiplicação por 2.
Esta coisa de pensar em diâmetro é tão intuitiva que me levou varias vezes à conclusões erradas nos calculos. Acho que não tem só eu neste clubinho! Na minha opinião a dimensão de um pincel é naturalmente o seu diâmetro... este negócio de ficar multiplicando na cabeça pra saber o diâmetro do pincel é uma coisa meio chata.

No entanto este argumento é meio controverso... pois os desenvolvedores acham que o Mypaint não foi feito para arte-final e tão somente para esboços... eu acho meio estranho isto... o que define se um tool é dedicado a esboços ou artes-finais não é o tool em si mas como eu uso o tool.

Para quem quer uma ótima referencia sobre a dimensão dos pinceis no Mypaint, leiam o manual do Ramón Miranda, na versão em espanhol e inglês [http://www.ramonmiranda.com/2011/04/mypaint-how-to-make-brushes-on-my-paint.html].

A formula para calcular o raio do pincel é esta:

ln(pixels) = Raio do pincel

Para realizar o cálculo inverso, ou seja, partindo do valor de raio e descobrir o correspondente em pixels, a fórmula é a seguinte:

exp (raio)

No caso desta segunda fórmula precisa primeiro colocar o 'e' na base (o nosso x), depois clicamos na tecla x^y (x elevado a y) e finalmente colocamos o raio que nos interessa. Mas sinceramente acho mais interessante fazer um colinha da tabelinha, que disponibilizo abaixo, pra facilitar as coisas :-)

Testando a fórmula
Para testar esta fórmula eu fiz um jpeg com várias espessuras e depois as verifiquei no Gimp... estão todas certinhas. Para entender a quantos pixels equivalem os radius verificados olhem a tabela publicada no topico final deste artigo.
Testes com a formula para um pincel de tipo fixo, que não varia a dimensão em função nem da pressão nem da velocidade... para valores de 1 pixel a 15 pixels aproximadamente.
Figura 1. Testes com a formula para um pincel de tipo fixo, que não varia a dimensão em função nem da pressão nem da velocidade... para valores de 1 pixel a 15 pixels de diâmetro aproximadamente. Os valores escritos logo abaixo dos samples são os raios na escala logaritmica do Mypaint.
Para entender o principio de crescimento logaritmico do pincel no Mypaint eu rascunhei um gráfico... mesmo aqueles pequenos acréscimos ou descréscimos de 0,3 (Teclas F e D do nosso keyboard respectivamente) no Radius não são constantes e dependem muito na zona de range que o radius se encontra. Se estivermos entre os radius de 2 a 5... as variações de 0,3 serão muitas vezes maiores daquelas obtidas entre os radius de 0 a 2.
Gráfico do aumento do pincel em função do Radius. Vocês podem notar que a partir de 2 o acréscimo é grande.
Figura 2. Gráfico rascunhado do aumento do pincel em função do Raio. Vocês podem notar que a partir de 2 o acréscimo é grande.
Este treco é bem chatinho de usar... este negócio de escala logaritmica pra dimensionar pincel é prático pra diminuir e aumenta-lo enquanto se trabalha... mas se queremos ter noção do espessura de um traço em um desenho a coisa se complica um pouco.

Tabela de relação entre o radius, pixel e mm (300 ppi)
Então eu pensei em fazer uma tabelinha para ter uma noção "aproximada" deste andamento, é importante também explicar como funcionam em geral os gráficos dos diferentes inputs (Pressure, fine e gross speedy, stroke, etc...).
Para construirmos pinceis fixos ou estáticos que não mudam de tamanho é importante que todos os inputs do Raio estejam zerados. Os valores e comportamentos que colocamos nos diferentes inputs previstos pra cada tipo de comportamento vão acrescentar ou tirar conforme é a cara da curva que fizermos. Vamos supor no Raio o valor 2, na Pressão o valor 1 e esta com uma curva que é constante ao longo do eixo da pressão (x) que se traduz em uma linha reta em +1 na parte superior do gráfico, como mostra a figura Fig. 3 abaixo. O pincel nestas condições irá produzir uma mancha que é a soma do valor de base, 2, mais 1 da curva da pressão, isto resulta num pincel de raio igual a 3 o que corresponde a 40 pixels de diâmetro.

Figura 3. Raio com valor de base igual a 2 + Pressão com valor de raio 1, constante para todo o range. Isto resulta um pincel no final com 3 de raio o que significa 40 pixels de diametro.
Achei interessante também adicionar os valores milimetros, que podem ser particularmente uteis para termos uma ideia do tamanho real quando isto for imprimido. A base dos cálculos usada aqui foi para uma resolução de impressão de 300 ppi.

Tabela de relação entre Raio (Mypaint*), Diâmetro em Pixel e em Milimetros*.
Raio (Mypaint)   | Diametro (px) | Diametro (mm)
      -0,70      |      1        |      0,09 ~ 0,1
       0,00      |      2        |      0,17 ~ 0,2
      +0,40      |      3        |      0,25
      +0,70      |      4        |      0,35
      +0,92      |      5        |      0,42 ~ 0,4
      +1,10      |      6        |      0,51 ~ 0,5
      +1,39      |      8        |      0,68 ~ 0,7
      +1,71      |     11        |      0,93 ~ 1,0
      +2,01      |     15        |      1,27 ~ 1,3
      +3,0       |     40        |      3,39 ~ 3,4
      +4,0       |    110        |      9,31 ~ 9,3
      +5,0       |    296        |     25,4
Raio (Mypaint*) = valor que aparece no Mypaint.
Milimetros* = se refere a densidade de 300 ppi.

Esta tabela funciona principalmente para pinceis de tipo fixo, ou seja, com a pressão desabilitada (igual a zero). Se tivermos inputs com valores que variam em função da pressão ou velocidade, por exemplo, o raio final do pincel vai ser sempre a soma do valor de base + os outros inputs que estiverem maior o menor que zero... como expliquei na figura 3.

Variação do tamanho e qualidade
Os pinceis do Mypaint não tendo uma base raster, como os .gih ou .gbr do Gimp... não são prejudicados na qualidade quando os aumentamos ou diminuimos, mesmo drasticamente. Tal fato é bem prático mas algumas vezes pode causar alguns problemas, principalmente se este aumento form muito pronunciado, por exemplo, na hora de fazer um contorno... basta um minimo de pressão para causar um notavel aumento tamanho do pincel. É claro que tudo isto pode ser corrigido na curva de pressão em muitos lugares... mas na minha opinião isto gera mais variáveis e complicações no fluxo de trabalho. Então a dica é manter um set de pinceis bem simples e instrutivos ao nosso uso, evitanto ao máximo a continua interação com as funcionalidades dos mesmos. Nas curvas que interferem diretamente no tamanho, tais como pressão e velocidade fina e grossa... recomendo não exagerar nos valores de máximo e minimo... pelo menos naqueles pinceis aonde precisamos um bom controle no traço e na pintura.

Futuro set de pinceis para inking no Mypaint
É minha intenção realizar alguns pinceis de tipo fixo e variáveis (dentro de certos limites de range), para desenhar no Mypaint, tão logo seja possível irei disponibiliza-los como um pack. Acho que assim fica mais prático e fácil de entender os conceitos que aqui apresento.
Related Posts Plugin for WordPress, Blogger...