MrKepzie / Natron

Open-source compositing software. Node-graph based. Similar in functionalities to Adobe After Effects and Nuke by The Foundry.
www.natron.fr
GNU General Public License v2.0
1.49k stars 163 forks source link

RotoPaint pen pressure issue #1697

Closed eeder68 closed 6 years ago

eeder68 commented 6 years ago

Problem

When drawing strokes in RotoPaint which are sensitive to pen pressure for either opacity or size, the stroke becomes invisible when the pressure goes beyond half it's maximum level. I'm using a first generation Wacom Intous tablet (model GD-0608-U), which I believe, has got 1024 pressure levels. Pressure recognition works fine with other programs like Gimp or Krita.

For example, here's a stroke with pressure sensitivity disabled: screenshot_20171120_225956

This is the same stroke with opacity sensitive to pressure, where the pen pressure gradually rises to the maximum, and then falls. screenshot_20171120_230034

I looked at the saved .ntp file, and found that the pressure values in the stroke curve rise until just before 0.5, and then wrap around to -0.5, and keep on rising to 0 at the maximum pressure. Negative pressure values are definitely something strange. Here's an excerpt of the stroke data:

<CurveP>
        <KeyFrameSet>
                <count>317</count>
                <item_version>0</item_version>
                <item>
                        <Time>0.00000000000000000e+00</Time>
                        <Value>1.75933837890625000e-02</Value>
                        <InterpolationMethod>3</InterpolationMethod>
                        <LeftDerivative>1.04464035229407712e-01</LeftDerivative>
                        <RightDerivative>1.04464035229407712e-01</RightDerivative>
                </item>
                <item>
                        <Time>2.80449390411376953e-02</Time>
                        <Value>2.05230712890625000e-02</Value>
                        <InterpolationMethod>3</InterpolationMethod>
                        <LeftDerivative>1.02674628963820971e-01</LeftDerivative>
                        <RightDerivative>1.02674628963820971e-01</RightDerivative>
                </item>
...
                <item>
                        <Time>8.88044939041138348e-01</Time>
                        <Value>4.90707397460937500e-01</Value>
                        <InterpolationMethod>3</InterpolationMethod>
                        <LeftDerivative>1.02615356445312411e+00</LeftDerivative>
                        <RightDerivative>1.02615356445312411e+00</RightDerivative>
                </item>
                <item>
                        <Time>8.98044939041138357e-01</Time>
                        <Value>4.98519897460937500e-01</Value>
                        <InterpolationMethod>3</InterpolationMethod>
                        <LeftDerivative>-4.93156433105468324e+01</LeftDerivative>
                        <RightDerivative>-4.93156433105468324e+01</RightDerivative>
                </item>
                <item>
                        <Time>9.08044939041138366e-01</Time>
                        <Value>-4.95605468750000000e-01</Value>
                        <InterpolationMethod>3</InterpolationMethod>
                        <LeftDerivative>-4.93156433105468324e+01</LeftDerivative>
                        <RightDerivative>-4.93156433105468324e+01</RightDerivative>
                </item>
                <item>
                        <Time>9.18044939041138375e-01</Time>
                        <Value>-4.87792968750000000e-01</Value>
                        <InterpolationMethod>3</InterpolationMethod>
                        <LeftDerivative>9.77325439453124112e-01</LeftDerivative>
                        <RightDerivative>9.77325439453124112e-01</RightDerivative>
                </item>
...
                <item>
                        <Time>1.50804493904113879e+00</Time>
                        <Value>-1.76086425781250000e-02</Value>
                        <InterpolationMethod>3</InterpolationMethod>
                        <LeftDerivative>1.17263793945312389e+00</LeftDerivative>
                        <RightDerivative>1.17263793945312389e+00</RightDerivative>
                </item>
                <item>
                        <Time>1.51804493904113880e+00</Time>
                        <Value>-1.96838378906250000e-03</Value>
                        <InterpolationMethod>3</InterpolationMethod>
                        <LeftDerivative>8.80432128906249223e-01</LeftDerivative>
                        <RightDerivative>8.80432128906249223e-01</RightDerivative>
                </item>
                <item>
                        <Time>1.52804493904113881e+00</Time>
                        <Value>0.00000000000000000e+00</Value>
                        <InterpolationMethod>3</InterpolationMethod>
                        <LeftDerivative>9.84191894531249167e-02</LeftDerivative>
                        <RightDerivative>9.84191894531249167e-02</RightDerivative>
                </item>
                <item>
                        <Time>1.53804493904113881e+00</Time>
                        <Value>0.00000000000000000e+00</Value>
                        <InterpolationMethod>3</InterpolationMethod>
                        <LeftDerivative>0.00000000000000000e+00</LeftDerivative>
                        <RightDerivative>0.00000000000000000e+00</RightDerivative>
                </item>
...

Versions

This software was compiled from the source code branch tags/2.3.3 at version 9f53cbc using GNU C++ version 7.2.0 with OpenMP 4.5 targetting Intel x86-64 for Linux. The bundled openfx-io plugins were compiled from version 16c2ef3. The bundled openfx-misc plugins were compiled from version 5612c74. The bundled openfx-arena plugins were compiled from version eef24f9.

Linux gromit 4.13.0-16-generic #19-Ubuntu SMP Wed Oct 11 18:35:14 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux