IP Library › Granted Patent US 8,760,438
Granted Patent B2
US 8,760,438 · App. 12/790,599 · Granted Jun 24, 2014

System and method for simulating stiff bristle brushes using stiffness-height parameterization

Inventors: Stephen J. DiVerdi (San Francisco, CA); Sunil Hadap (San Jose, CA); Aravind Krishnaswamy (San Jose, CA)
Assignee: Adobe Systems Incorporated
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,760,438
App. No.
12/790,599
Granted
Jun 24, 2014
Kind
B2
Abstract

A method, system, and computer-readable storage medium for simulating bristle brush behavior in an image editing application may use stiffness-height parameterization to determine the height of a brush tool above a canvas during a brush stroke. The determination may be dependent on the pressure applied during the stroke (e.g., using a stylus on a pressure-sensitive tablet), and on the stiffness of the brush bristles. The system may select a standard-stiffness or high-stiffness mapping between stylus pressure values and brush height values dependent whether the bristle stiffness value is above or below a pre-determined threshold. The standard-stiffness mapping may apply a linear function to pressure values to determine height values. Using the high-stiffness mapping, the effect of increased pressure on corresponding brush height values may be reduced as bristle stiffness is increased. Adjusting pressure-to-height mapping based on stiffness may allow the system to realistically mimic the behavior of stiff bristle brushes.

Claims (78)

1. A method, comprising:

using a computer to perform:

receiving input representing a brush stroke made by a brush tool of an image editing application sweeping across a canvas;

receiving input indicating a stiffness value for the brush tool;

receiving input representing a pressure value applied during the brush stroke;

determining a height value representing the height of the brush tool above the canvas during the brush stroke using a mapping between pressure values and height values, wherein the mapping is dependent on the stiffness value; and

determining an effect of the brush stroke on the canvas dependent on the determined height value; and

storing data representing an image on the canvas that was modified by the brush stroke.

2. The method of claim 1 , wherein said receiving input indicating a stiffness value comprises:

receiving input specifying the stiffness value through a graphical user interface of the image editing application.

3. The method of claim 1 , wherein said receiving input indicating a stiffness value comprises:

receiving input specifying that the brush tool is of a particular brush tool type; and

accessing data comprising one or more parameter values associated with the particular brush tool type, where the one or more parameter values comprises the stiffness value.

4. The method of claim 1 , wherein said receiving input representing a pressure value comprises:

receiving input specifying the pressure value through a graphical user interface of the image editing application;

wherein the pressure value is a static pressure value to be applied throughout the entire brush stroke.

5. The method of claim 1 , wherein said receiving input representing a pressure value comprises:

receiving continuous input representing two or more pressure values, each of which is applied during a portion of the brush stroke;

wherein the continuous input is received through a graphical user interface of the image editing application.

6. The method of claim 1 , wherein said determining the height value comprises:

determining whether the stiffness value is less than a given stiffness threshold value;

selecting one of a plurality of mappings between pressure values and height values dependent on results of said determining whether the stiffness value is less than the given stiffness threshold value; and

applying the selected one of the plurality of mappings to the pressure value to determine the height value.

7. The method of claim 6 ,

wherein in response to determining that the stiffness value is less than the given stiffness threshold value, said selecting one of a plurality of mappings comprises selecting a standard-stiffness mapping between pressure values and height values in which a maximum pressure value is mapped to a height value indicating that the brush tool is deformed by a maximum amount; and

wherein the standard-stiffness mapping applies a linear function to pressure values to determine corresponding height values.

8. The method of claim 6 ,

wherein in response to determining that the stiffness value is not less than the given stiffness threshold value, said selecting one of a plurality of mappings comprises selecting a high-stiffness mapping between pressure values and height values in which a maximum pressure value is mapped to a height value indicating that the brush tool is deformed by less than an amount by which the brush tool would be deformed if a standard-stiffness mapping were applied to the pressure value.

9. The method of claim 1 , wherein the input representing a brush stroke and the input representing a pressure value applied during the brush stroke are received from a pressure-sensitive tablet to which a stylus is applied.

10. A computer-readable storage memory that is non-transitory, storing program instructions that when executed on one or more computers cause the one or more computers to perform:

receiving input representing a brush stroke made by a brush tool of an image editing application sweeping across a canvas;

receiving input indicating a stiffness value for the brush tool;

receiving input representing a pressure value applied during the brush stroke;

determining a height value representing the height of the brush tool above the canvas during the brush stroke using a mapping between pressure values and height values, wherein the mapping is dependent on the stiffness value; and

determining an effect of the brush stroke on the canvas dependent on the determined height value; and

storing data representing an image on the canvas that was modified by the brush stroke.

11. The computer-readable storage memory of claim 10 , wherein said receiving input indicating a stiffness value comprises:

receiving input specifying the stiffness value through a graphical user interface of the image editing application; or

receiving input specifying that the brush tool is of a particular brush tool type and accessing data comprising one or more parameter values associated with the particular brush tool type, where the one or more parameter values comprises the stiffness value.

12. The computer-readable storage memory of claim 10 , wherein said receiving input representing a pressure value comprises:

receiving input specifying the pressure value through a graphical user interface of the image editing application;

wherein the pressure value is a static pressure value to be applied throughout the entire brush stroke.

13. The computer-readable storage memory of claim 10 , wherein said receiving input representing a pressure value comprises:

receiving continuous input representing two or more pressure values, each of which is applied during a portion of the brush stroke;

wherein the continuous input is received through a graphical user interface of the image editing application.

14. The computer-readable storage memory of claim 10 , wherein said determining the height value comprises:

determining whether the stiffness value is less than a given stiffness threshold value;

in response to determining that the stiffness value is less than the given stiffness threshold value, selecting a standard-stiffness mapping from a plurality of mappings between pressure values and height values; and

applying the standard-stiffness mapping to the pressure value to determine the height value;

wherein the standard-stiffness mapping applies a linear function to pressure values to determine corresponding height values; and

wherein the standard-stiffness mapping maps a maximum pressure value to a height value indicating that the brush tool is deformed by a maximum amount.

15. The computer-readable storage memory of claim 10 , wherein said determining the height value comprises:

determining whether the stiffness value is less than a given stiffness threshold value;

in response to determining that the stiffness value is not less than the given stiffness threshold value, selecting a high-stiffness mapping from a plurality of mappings between pressure values and height values; and

applying the high-stiffness mapping to the pressure value to determine the height value;

wherein the high-stiffness mapping maps a maximum pressure value to a height value indicating that the brush tool is deformed by less than an amount by which the brush tool would be deformed if a standard-stiffness mapping were applied to the pressure value.

16. A system, comprising:

one or more processors; and

a memory coupled to the one or more processors, wherein the memory stores program instructions that when executed by the one or more processors cause the one or more processors to perform:

receiving input representing a brush stroke made by a brush tool of an image editing application sweeping across a canvas;

receiving input indicating a stiffness value for the brush tool;

receiving input representing a pressure value applied during the brush stroke;

determining a height value representing the height of the brush tool above the canvas during the brush stroke using a mapping between pressure values and height values, wherein the mapping is dependent on the stiffness value; and

determining an effect of the brush stroke on the canvas dependent on the determined height value; and

storing data representing an image on the canvas that was modified by the brush stroke.

17. The system of claim 16 , wherein said receiving input indicating a stiffness value comprises:

receiving input specifying the stiffness value through a graphical user interface of the image editing application; or

receiving input specifying that the brush tool is of a particular brush tool type and accessing data comprising one or more parameter values associated with the particular brush tool type, where the one or more parameter values comprises the stiffness value.

18. The system of claim 16 , wherein said receiving input representing a pressure value comprises:

receiving input specifying the pressure value through a graphical user interface of the image editing application;

wherein the pressure value is a static pressure value to be applied throughout the entire brush stroke.

19. The system of claim 16 , wherein said receiving input representing a pressure value comprises:

receiving continuous input representing two or more pressure values, each of which is applied during a portion of the brush stroke;

wherein the continuous input is received through a graphical user interface of the image editing application.

20. The system of claim 16 , wherein said determining the height value comprises:

determining whether the stiffness value is less than a given stiffness threshold value;

selecting one of a standard-stiffness mapping or a high-stiffness mapping from a plurality of mappings between pressure values and height values, where said selecting is dependent on whether the stiffness value is less than the given stiffness threshold value; and

applying the selected one of the plurality of mappings to the pressure value to determine the height value.

Assignments (2)
CHANGE OF NAME Recorded Apr 8, 2019
From: ADOBE SYSTEMS INCORPORATED
To: ADOBE INC.
Reel/Frame 048867/0882 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2010
From: DIVERDI, STEPHEN J.; HADAP, SUNIL; KRISHNASWAMY, ARAVIND
To: ADOBE SYSTEMS INCORPORATED
Reel/Frame 024459/0317 →
Continuity (1)
Related Publication 20130120324A1 · May 16, 2013