diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-05-18 15:25:24 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-05-18 15:25:24 +0400 |
commit | 423ffa60438218e7d8b0f5f5147c4837dcab3ca9 (patch) | |
tree | 8ecafaa6a60555f62f8b8c684e2eb5f73a62af71 /intern | |
parent | 75e36650e35d556fa9959ac0c9e1831a070fb2ef (diff) |
Painting / Sculpting: more tweaks to pressure sensitivity
* Also do pressure interpolation for brush size and spacing.
* Do smoothing of pressure when smooth stroke and sample average is enabled.
* Revert the OS X specific pressure change to pressure ^ 2.5, for low pressure
values like 0.05 it makes the pressure 100x lower, which is problematic. If
we need to adjust the pressure curve it should be done for all platforms.
Still weak:
* Pressure of first touch on tablet is difficult to control, usually it's low
which makes the stroke start out small or soft, but other times not. Finer
event capturing at ghost level would help, along with pressure changes without
mouse movement, but this may also need different paint stroke logic.
* Brush radius is rounded to integers, this gives noticeable stepping.
* Brush falloff is not antialiased, gives noticeable aliasing for small brush
sizes which was always a problem, but is more common with size pressure control.
Diffstat (limited to 'intern')
-rw-r--r-- | intern/ghost/intern/GHOST_SystemCocoa.mm | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/intern/ghost/intern/GHOST_SystemCocoa.mm b/intern/ghost/intern/GHOST_SystemCocoa.mm index 0be26e594f1..607b6ae77b2 100644 --- a/intern/ghost/intern/GHOST_SystemCocoa.mm +++ b/intern/ghost/intern/GHOST_SystemCocoa.mm @@ -1390,8 +1390,8 @@ GHOST_TSuccess GHOST_SystemCocoa::handleTabletEvent(void *eventPtr, short eventT // 2. device is not sending [event pointingDeviceType], due no eraser if (ct.Active == GHOST_kTabletModeNone) ct.Active = GHOST_kTabletModeStylus; - - ct.Pressure = sqrtf(powf([event pressure], 5 )); // experimental: change sensivity curve + + ct.Pressure = [event pressure]; ct.Xtilt = [event tilt].x; ct.Ytilt = [event tilt].y; break; |