IP Library Granted Patent US 11,704,842
Granted Patent B2
US 11,704,842 · App. 17/111,903 · Granted Jul 18, 2023

Digital overpainting controlled by opacity and flow parameters

Inventors: Byungmoon Kim (Sunnyvale, CA); Jinyi Kwon (Seoul-si, KR)
Assignee: ADOBE INC.
G06T11/001G06F3/0354G06F3/0482G06F3/04883G06T11/203G06T11/40G06T11/60G06T11/80
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 11,704,842
App. No.
17/111,903
Granted
Jul 18, 2023
Kind
B2
Abstract

Certain embodiments involve a graphics manipulation application using brushstroke parameters that include a maximum alpha-deposition parameter and a fractional alpha-deposition parameter. For instance, the graphics manipulation application uses an alpha flow increment computed from the maximum alpha-deposition parameter and the fractional alpha-deposition parameter to compute an output canvas color. In some embodiments, if the current canvas opacity exceeds or equals the maximum alpha-deposition parameter, the current canvas opacity is selected as the output canvas opacity. Otherwise, the graphics manipulation application computes the output canvas opacity by increasing the current canvas opacity based on the alpha flow increment. The graphics manipulation application updates a canvas portion affected by a brushstroke input to include the output canvas opacity and the output canvas color.

Claims (79)

1. A method that includes performing, with one or more processing devices, operations comprising:

accessing brushstroke parameters of a graphics manipulation application that include a maximum alpha-deposition parameter and a fractional alpha-deposition parameter, wherein the maximum alpha-deposition parameter controls a maximum change in opacity resulting from brushstroke inputs and the fractional alpha-deposition parameter controls a fraction of the maximum alpha-deposition parameter applied in each brushstroke input;

receiving, by the graphics manipulation application, a first brushstroke input within a digital canvas having a first canvas opacity;

computing, based on the maximum alpha-deposition parameter exceeding the first canvas opacity, a second canvas opacity by increasing the first canvas opacity based on an alpha flow increment computed from the maximum alpha-deposition parameter and the fractional alpha-deposition parameter;

receiving, by the graphics manipulation application, a second brushstroke input within the digital canvas having the second canvas opacity;

selecting, based on the second canvas opacity exceeding the maximum alpha-deposition parameter, the second canvas opacity as an output canvas opacity; and

updating display data in a portion of the digital canvas, to which the second brushstroke input is applied, to include the output canvas opacity and an output canvas color.

2. The method of claim 1 , the operations further comprising:

computing the output canvas color from the alpha flow increment and the second canvas opacity; and

modifying a portion of the digital canvas, to which the second brushstroke input is applied, to display the updated display data.

3. The method of claim 2 , wherein the second brushstroke input is a single brushstroke input and, responsive to the single brushstroke input, wherein modifying the portion of the digital canvas to which the second brushstroke input is applied comprises, responsive to the single brushstroke input:

increasing an opacity of the portion of the digital canvas to the output canvas opacity; and

modifying color information of the portion of the digital canvas to include the output canvas color.

4. The method of claim 2 , wherein computing the output canvas color from the alpha flow increment and the second canvas opacity comprises:

computing an interim canvas opacity that is the second canvas opacity adjusted by a value corresponding to the alpha flow increment;

computing a color mixing factor indicating a contribution of the alpha flow increment to a combination of the alpha flow increment and the interim canvas opacity; and

selecting, as the output canvas color, a sum of (i) a current canvas color that is weighted based on the color mixing factor and (ii) a brush color selected for the second brushstroke input that is differently weighted based on the color mixing factor.

5. The method of claim 1 , the operations further comprising computing the alpha flow increment by performing operations comprising:

computing an initial alpha flow increment that is a product of (i) the fractional alpha-deposition parameter and (ii) a function of the maximum alpha-deposition parameter and a location within a stamp boundary of a brush tool used to perform a brushstroke input; and

selecting, as the alpha flow increment, a difference between the initial alpha flow increment and a current canvas opacity weighted with the initial alpha flow increment.

6. The method of claim 1 , the operations further comprising computing the alpha flow increment by performing operations comprising:

computing an initial alpha flow increment that is a product of (i) the fractional alpha-deposition parameter and (ii) a function of the maximum alpha-deposition parameter and a location within a stamp boundary of a brush tool used to perform the first brushstroke input;

computing an alpha flow reduction that is a difference between (i) a current canvas opacity and (ii) the current canvas opacity weighted with a pigment-replacement parameter controlling an amount of canvas color replaced by brush color from the first brushstroke input; and

selecting, as the alpha flow increment, a difference between (i) the initial alpha flow increment and (ii) the alpha flow reduction weighted with the initial alpha flow increment.

7. The method of claim 1 , wherein the operations further comprise computing the maximum alpha-deposition parameter that is used for computing the alpha flow increment, the output canvas opacity, and the output canvas color, wherein computing the maximum alpha-deposition parameter comprises:

accessing an initial maximum alpha-deposition parameter value specified by a user input to the graphics manipulation application;

identifying a brush stamp of a brush tool used to perform a brushstroke input, wherein pixels within a boundary defined by the brush stamp are editing with the brushstroke input; and

calculating (i) a first value of the maximum alpha-deposition parameter from the initial maximum alpha-deposition parameter value and a first location within the boundary and (ii) a second value of the maximum alpha-deposition parameter from the initial maximum alpha-deposition parameter value and a second location within the boundary, the first value and the second value of the maximum alpha-deposition parameter being different for the first and second locations.

8. A computing system that includes performing, with one or more processing devices, operations comprising:

processing hardware; and

a non-transitory computer-readable medium communicatively coupled to the processing hardware,

wherein the processing hardware is configured to execute program code stored in the non-transitory computer-readable medium and thereby perform operations comprising:

accessing brushstroke parameters of a graphics manipulation application that include a maximum alpha-deposition parameter and a fractional alpha-deposition parameter, wherein the maximum alpha-deposition parameter controls a maximum change in opacity resulting from brushstroke inputs and the fractional alpha-deposition parameter controls a fraction of the maximum alpha-deposition parameter applied in each brushstroke input;

computing, based on the maximum alpha-deposition parameter exceeding a first canvas opacity with which a digital canvas of the graphics manipulation application is configured, a second canvas opacity for a first brushstroke input within the digital canvas, wherein computing the second canvas opacity comprises increasing the first canvas opacity based on an alpha flow increment computed from the maximum alpha-deposition parameter and the fractional alpha-deposition parameter;

selecting, for a second brushstroke input within the digital canvas having the second canvas opacity, the second canvas opacity as an output canvas opacity, wherein the second canvas opacity is selected as the output canvas opacity based on the second canvas opacity exceeding the maximum alpha-deposition parameter; and

updating display data depicting a portion of the digital canvas to which the second brushstroke input is applied, wherein the updated display data includes the output canvas opacity and an output canvas color.

9. The computing system of claim 8 , the operations further comprising:

computing the output canvas color from the alpha flow increment and the second canvas opacity; and

modifying a portion of the digital canvas, to which the second brushstroke input is applied, to display the updated display data.

10. The computing system of claim 9 , wherein the second brushstroke input is a single brushstroke input and, responsive to the single brushstroke input, wherein modifying the portion of the digital canvas to which the second brushstroke input is applied comprises, responsive to the single brushstroke input:

increasing an opacity of the portion of the digital canvas to the output canvas opacity; and

modifying color information of the portion of the digital canvas to include the output canvas color.

11. The computing system of claim 9 , wherein computing the output canvas color from the alpha flow increment and the second canvas opacity comprises:

computing an interim canvas opacity that is the second canvas opacity adjusted by a value corresponding to the alpha flow increment;

computing a color mixing factor indicating a contribution of the alpha flow increment to a combination of the alpha flow increment and the interim canvas opacity; and

selecting, as the output canvas color, a sum of (i) a current canvas color that is weighted based on the color mixing factor and (ii) a brush color selected for the second brushstroke input that is differently weighted based on the color mixing factor.

12. The computing system of claim 8 , the operations further comprising computing the alpha flow increment by performing operations comprising:

computing an initial alpha flow increment that is a product of (i) the fractional alpha-deposition parameter and (ii) a function of the maximum alpha-deposition parameter and a location within a stamp boundary of a brush tool used to perform the first brushstroke input; and

selecting, as the alpha flow increment, a difference between the initial alpha flow increment and a current canvas opacity weighted with the initial alpha flow increment.

13. The computing system of claim 8 , the operations further comprising computing the alpha flow increment by performing operations comprising:

computing an initial alpha flow increment that is a product of (i) the fractional alpha-deposition parameter and (ii) a function of the maximum alpha-deposition parameter and a location within a stamp boundary of a brush tool used to perform the first brushstroke input;

computing an alpha flow reduction that is a difference between (i) a current canvas opacity and (ii) the current canvas opacity weighted with a pigment-replacement parameter controlling an amount of canvas color replaced by brush color from the first brushstroke input; and

selecting, as the alpha flow increment, a difference between (i) the initial alpha flow increment and (ii) the alpha flow reduction weighted with the initial alpha flow increment.

14. The computing system of claim 8 , wherein the operations further comprise computing the maximum alpha-deposition parameter that is used for computing the alpha flow increment, the output canvas opacity, and the output canvas color, wherein computing the maximum alpha-deposition parameter comprises:

accessing an initial maximum alpha-deposition parameter value specified by a user input to the graphics manipulation application;

identifying a brush stamp of a brush tool used to perform a brushstroke input, wherein pixels within a boundary defined by the brush stamp are editing with the brushstroke input; and

calculating (i) a first value of the maximum alpha-deposition parameter from the initial maximum alpha-deposition parameter value and a first location within the boundary and (ii) a second value of the maximum alpha-deposition parameter from the initial maximum alpha-deposition parameter value and a second location within the boundary, the first value and the second value of the maximum alpha-deposition parameter being different for the first and second locations.

15. A method in which one or more processing devices execute a graphics manipulation application and thereby perform operations comprising:

accessing brushstroke parameters that include a maximum alpha-deposition parameter and a fractional alpha-deposition parameter, wherein the maximum alpha-deposition parameter controls a maximum change in opacity resulting from brushstroke inputs and the fractional alpha-deposition parameter controls a fraction of the maximum alpha-deposition parameter applied in each brushstroke input;

receiving a brushstroke input within a digital canvas;

computing an alpha flow increment based on a location of the brushstroke input within a stamp boundary of a brush tool and from the maximum alpha-deposition parameter and the fractional alpha-deposition parameter;

computing an interim canvas opacity that is a current canvas opacity of the digital canvas adjusted by a value corresponding to the alpha flow increment;

computing a color mixing factor indicating a contribution of the alpha flow increment to a combination of the alpha flow increment and the interim canvas opacity;

computing an output canvas color based on a current canvas color, a brush color selected for the brushstroke input, and the color mixing factor; and

updating display data in a portion of the digital canvas, to which the brushstroke input is applied, to include the output canvas color and an output canvas opacity.

16. The method of claim 15 , further comprising:

receiving, by the graphics manipulation application, a prior brushstroke input within the digital canvas having a first canvas opacity;

computing, responsive to receiving the prior brushstroke input and based on the maximum alpha-deposition parameter exceeding the first canvas opacity, a second canvas opacity by increasing the first canvas opacity based on the alpha flow increment.

17. The method of claim 16 , further comprising selecting, responsive to receiving the brushstroke input, the second canvas opacity as the output canvas opacity based on the second canvas opacity exceeding the maximum alpha-deposition parameter.

18. The method of claim 15 , the operations further comprising computing the alpha flow increment by performing operations comprising:

computing an initial alpha flow increment that is a product of (i) the fractional alpha-deposition parameter and (ii) a function of the maximum alpha-deposition parameter and the location within the stamp boundary; and

selecting, as the alpha flow increment, a difference between the initial alpha flow increment and the current canvas opacity weighted with the initial alpha flow increment.

19. The method of claim 15 , the operations further comprising computing the alpha flow increment by performing operations comprising:

computing an initial alpha flow increment that is a product of (i) the fractional alpha-deposition parameter and (ii) a function of the maximum alpha-deposition parameter and the location within the stamp boundary used to perform the brushstroke input;

computing an alpha flow reduction that is a difference between (i) the current canvas opacity and (ii) the current canvas opacity weighted with a pigment-replacement parameter controlling an amount of canvas color replaced by brush color from the brushstroke input; and

selecting, as the alpha flow increment, a difference between (i) the initial alpha flow increment and (ii) the alpha flow reduction weighted with the initial alpha flow increment.

20. The method of claim 15 , wherein the operations further comprise computing the maximum alpha-deposition parameter that is used for computing the alpha flow increment, the output canvas opacity, and the output canvas color, wherein computing the maximum alpha-deposition parameter comprises:

accessing an initial maximum alpha-deposition parameter value specified by a user input to the graphics manipulation application; and

calculating (i) a first value of the maximum alpha-deposition parameter from the initial maximum alpha-deposition parameter value and a first location within the stamp boundary and (ii) a second value of the maximum alpha-deposition parameter from the initial maximum alpha-deposition parameter value and a second location within the stamp boundary, the first value and the second value of the maximum alpha-deposition parameter being different for the first and second locations.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2020
From: KIM, BYUNGMOON; KWON, JINYI
To: ADOBE SYSTEMS INCORPORATED
Reel/Frame 054546/0510 →
CHANGE OF NAME Recorded Dec 4, 2020
From: ADOBE SYSTEMS INCORPORATED
To: ADOBE INC.
Reel/Frame 054590/0509 →
Continuity (2)
Continuation 16136897 · Sep 20, 2018
Related Publication 20210090305A1 · Mar 25, 2021