The ways in which users are able to create digital images through interaction with computing devices continues to expand. However, the techniques used to select and generate colors have not kept pace with this expansion. For example, conventional techniques are limited to selecting a particular hue for a color, which limits functionality that otherwise may be made available to users. Further, these conventional techniques typically rely on complex user interface interactions and thus require expertise that make these systems unapproachable by untrained and novice users.
In one conventional example, a color picker is used to select a fill or stroke color by choosing from a color field and spectrum, which defines the color numerically or by clicking a swatch. A swatch is a named color, tint, gradient, and pattern used to define the named color that are typically defined through a swatches panel and swatch library that are output in a user interface. The swatches panel includes options to select colors, gradients, and patterns for the named color. Therefore, selection of a color in this technique relies on a user's understanding in how to interact with the color field and spectrum numerically and/or through the swatches panel and swatch library, which may be intimidating and confusing to novice and casual users. Further, the result of this selection is limited to conventional colors for rendering in a user interface and therefore does not expand from these colors.
In another conventional example, a color panel is used to apply and edit an object's fill or stroke in a user interface. The color panel typically includes numerical options to select color values, a color spectrum bar, and a color slider. To select a color, a user first selects a color mode (e.g., RGB, CMYK) and then drags or clicks the slider to set numerical color values, enters the numerical values directly as text, or selects a point on a static color spectrum bar. Thus, the user is tasked with manually selecting color values and/or making a selection from the static color spectrum bar, which also requires specialized knowledge and thus may also be confusing to novice and casual users. Like the previous example, this result is also limited to selection of conventional colors.
Therefore, in each of the conventional examples above, a user may take years of practice and training in order to consistently achieve a desired result, e.g., a desired color for use as part of a digital image. As a result, this functionality as implemented by conventional systems may cause users to confuse an initial lack of understanding in how to use this functionality with an inability to do so due to lack of an innate ability. Therefore, conventional systems may be considered to be unapproachable by novice and casual users and further have not expanded beyond conventional use of color as part of the digital image.
Digital paint generation techniques and systems are described that are configured to generate digital paint in an efficient and intuitive manner. These techniques and systems overcome limitations of conventional systems to expand how digital paint is able to be represented in a user interface through use of physical digital paint properties along with color digital paint properties. This supports the creation of digital images having characteristics that are not possible using conventional systems that are limited to conventional uses of color. These techniques and systems also bridge a perceived divide between functionality made available to users to create digital images and the users' understanding as to how this functionality is to be used. In this way, the digital paint generation techniques and systems as implemented by an image processing system expand accessibility and availability of a range of digital image creation techniques to a wider range of users.
In one example, the digital paint generation techniques are configured to support both color and physical digital paint properties as part of generation of the digital paint by an image processing system. Color digital paint properties are defined using pigments (e.g., hues) that may be mixed to specify a color of digital point. Physical digital paint properties describe physical characteristics that may change how a color is perceived when viewed by a user. Physical digital paint properties, for instance, may be used to mimic physical digital paint in the real world, such as medium (e.g., chalk, ink), surface (e.g., paper, metal), instrument used to apply the medium (e.g., brush, pencil), technique used by the instrument to apply the medium (e.g., layered, blending), environment in which the medium and surface as disposed (e.g., lighting conditions), and so forth.
The physical digital paint properties may also expand to realize capabilities that are not limited to the physical world, such as meta-conditions including particle gravity, attraction, sparkles, dynamic gradients and repulsion as part of an animation of the digital paint. Thus, the physical digital paint properties permit user interaction to expand beyond selection of colors as limited by conventional systems to also include how those physical properties define how digital paint having those colors is perceived when rendered in a user interface. Further, these physical digital paint properties may also expand how digital paint is incorporated as part of a digital image, thereby supporting creation of art that is not possible using conventional techniques.
Further, the physical digital paint generation techniques may support defined interactions within an environment, in which, the digital paint is rendered by a computing device. An environmental sensor, for instance, may be configured to detect characteristics of a physical environment of a computing device, e.g., temperature, orientation in three dimensional space, lighting conditions, and so forth. Data describing these characteristics as detected by the environmental sensor may then be used as part of definition of a physical digital paint property as part of generation of the digital paint. The digital paint, for instance, when rendered in the user interface as part of an animation may cause the digital paint to appear to run down the user interface, float upward, respond to light, and so forth. As a result, the generation of the digital paint may expand past conventional color selection systems to respond to a physical environment.
This Summary introduces a selection of concepts in a simplified form that are further described below in the Detailed Description. As such, this Summary is not intended to identify essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
The detailed description is described with reference to the accompanying figures. Entities represented in the figures may be indicative of one or more entities and thus reference may be made interchangeably to single or plural forms of the entities in the discussion.
The patent or application file contains at least one drawing executed in color. Copies of this patent or patent application publication with color drawings will be provided by the Office upon request and payment of the necessary fee.
Overview
Digital paint generation techniques and systems are described that support color and physical digital paint properties and interaction of these properties with each other as part of generating digital paint. As a result, digital paint generated using these techniques may expand beyond conventional techniques used to pick a color, solely, to now include dynamic and complex interactions, e.g., as part of an animation of the digital paint. Further, these techniques support creation of types of art as part of the digital images that is not possible using conventional techniques based solely on color.
In one example, a digital paint generation technique supports user interaction to define digital color properties to be used to generate digital paint. This includes color digital paint properties that define a pigment (e.g., hue) to be used to generate the digital paint, e.g., red, green, blue, etc. This technique, for instance, may be used to mix two or more different pigments to generate a desired hue of digital paint, e.g., purple, indigo, chartreuse, and so on. This also includes physical digital paint properties, such as medium (e.g., chalk, ink), surface (e.g., paper, metal), instrument used to apply the medium (e.g., brush, pencil), technique used by the instrument to apply the medium (e.g., layered, blending), environment in which the medium and surface as disposed (e.g., lighting conditions), and so forth. In this way, user interaction supported by this technique may expand beyond conventional color selection techniques described above to support combinations of digital paint properties that are not possible in conventional systems.
The combination and adjustment of color and physical digital paint properties may be used by the image processing system to aid a user in understanding effects of color and physical digital paint property interaction. A color digital paint property, for instance, may represent a certain hue of red, e.g., R210, G10, B30. However, the same hue combined with a physical digital paint property may cause the hue to have the specularity of a heavy oil-based paint. This hue and physical digital paint property combination would be considered, when viewed by a user, to have a different color even though it is based on the same RGB value. Therefore, the user may view how combinations of color and physical digital paint properties interact with each other as part of digital paint generation. This is not possible using conventional color selection systems that are based solely on color.
Further, the image processing system also supports defined interactions within an environment, in which, the digital paint is rendered by a computing device as part of the physical digital paint properties. An environmental sensor, for instance, may be configured to detect characteristics of a physical environment of a computing device used to render the digital paint, e.g., temperature, orientation in three dimensional space, lighting conditions, and so forth. Data describing these characteristics as detected by the environmental sensor may then be used as part of definition of a physical digital paint property as part of generation of the digital paint. The digital paint, for instance, when rendered in the user interface as part of an animation may cause the digital paint to appear to run down the user interface, float upward, respond to light, and so forth based on orientation of the computing device in three dimensional space. As a result, the generation of the digital paint may expand past conventional color selection systems to respond to a real world physical environment.
These interactions may also expand beyond mimicking “real world” interactions in the physical world to include any physical digital paint property that can be imagined by the user and defined (e.g., mathematically) for rendering by the image processing system. The physical digital paint properties, for instance, may include meta-conditions including particle gravity, attraction, sparkles, dynamic gradients and repulsion as part of an animation of the digital paint. These physical digital paint properties may then leverage the environmental sensor to support interactions that are not possible in a real world environment, such as to cast digital paint using a wand that behaves like the fire of a dragon. Consequently, the digital paint and digital images created using this paint may be created and rendered by the image processing system that has never been seen before. In this way, creation of digital paint may be untethered from conventional digital image creation techniques to mimic the physical world (e.g., use of brushes, pens, pencils) to creating imaginary and fanciful digital paint as part of digital images.
In the following discussion, an example environment is first described that may employ the techniques described herein. Example procedures are also described which may be performed in the example environment as well as other environments. Consequently, performance of the example procedures is not limited to the example environment and the example environment is not limited to performance of the example procedures.
Example Environment
The computing device 102, for instance, may be configured as a desktop computer, a laptop computer, a mobile device (e.g., assuming a handheld configuration such as a tablet or mobile phone as illustrated), and so forth. Thus, the computing device 102 may range from full resource devices with substantial memory and processor resources (e.g., personal computers, game consoles) to a low-resource device with limited memory and/or processing resources (e.g., mobile devices). Additionally, although a single computing device 102 is shown, the computing device 102 may be representative of a plurality of different devices, such as multiple servers utilized by a business to perform operations “over the cloud” as described in
The computing device 102 is illustrated as including an image processing system 104. The image processing system 104 is implemented at least partially in hardware of the computing device 102 to process and transform a digital image 106, which is illustrated as maintained in a storage device 108 of the computing device 102. Such processing includes creation of the digital image 106, modification of the digital image 106, and rendering of the digital image 106 in a user interface 110 for output, e.g., by a display device 112. Although illustrated as implemented locally at the computing device 102, functionality of the image processing system 104 may also be implemented as whole or part via functionality available via the network 114, such as part of a web service or “in the cloud.”
An example of functionality incorporated by the image processing system 104 is represented as a digital paint mixing system 116. The digital paint mixing system 116 is implemented in functionality of the computing device 102 (e.g., a processing system and computer-readable storage media) to generate digital paint 118 for rendering in the user interface 110 of the display device 112 and/or inclusion as part of the digital image 106. The digital paint 118 is also illustrated as stored in the storage device 108.
The digital paint mixing system 116 in this example is configured to support output of the user interface 110 as having a paint generation control portion 120 and a paint generation output portion 122. The paint generation control portion 120 is configured to support user interaction to support selection of digital paint properties to be used to generate digital paint as well as amounts of the selected digital paint properties as part of generating the digital paint. The illustrated example of this is a mix control 124. The paint generation output portion 122 is configured to display feedback 126 as a rendering of the digital paint 118 as generated based on user interaction with the paint generation control portion 120.
In one example, a first hand 128 of a user interacts with the mix control 124 to specify amount of the digital paint properties that serve as a basis to generate the digital paint 118. In response, the digital paint mixing system 116 generates and outputs the digital paint 118 in real time to follow another user input received via interaction with a second hand 130 of the user as feedback 126. The second hand 130, for instance, may draw a freeform line in the paint generation output portion 122 of the user interface 110. The digital paint mixing system 116, based on detection of the other input via touchscreen functionality, then generates the digital paint 118 in real time (e.g., through use of pixel shaders) to follow the user input of the second hand 140 as the feedback 126, e.g., in real time. In this way, the digital paint mixing system 116 provides real time feedback 126 regarding an effect of amounts of digital paint properties on generation of the digital paint 118 displayed in the user interface 110.
The mix control 124 may be configured in a variety of ways. In the illustrated example, the mix control 124 is configured to support multi-axis control through use of a first axis 132 and a second axis 134. The first and second axes 132, 134 each include respective first ends 136, 138 and second ends 140, 142. The first and second ends 136, 138, 140, 142 correspond to respective digital paint properties that are user selected. Interaction with the mix control 124 is then used to control the amounts of these digital paint properties that are used to generate the digital paint 118, e.g., as gradations between the options at respective ends of the first and second axes 132, 134.
A user input, for instance, may be detected as initiated by the first hand 128 of the user to move in X and/or Y directions. In this instance, movement in the X direction is used to control amounts of digital paint properties at first and second ends 136, 140 of the first axis 132 of the mix control 124. Likewise, movement in the Y direction is used to control amounts of digital paint properties at first and second ends 138, 142 of the second axis 134 of the mix control 124.
In one example, the input is implemented as a single multi-axis user input to specify an inverse relationship between digital paint properties at the first and second ends 136, 138, 140, 142 of the respective first and second axes 132, 134. Accordingly, an increase in an amount at one end of the axis causes a corresponding decrease in an amount at the other end of the axis through interaction with the mix control 124 through a plurality of gradations. Indications 144, 146 may also be included as part of the mix control 124 to indicate these relative amounts of digital paint properties to be used to generate the digital paint 118 of the respective first and second axes 132, 134.
The mix control 124 may be used to specify a variety of different amounts and types of digital paint properties. Examples of digital paint properties include color digital paint properties, referred to as pigments 148. Color digital paint properties, as pigments 138, describe hues of colors. Hues are an attribute of color by virtue of which it is discernible as red, green, blue, and so on, which is dependent on its dominant wavelength, and independent of intensity or lightness. A user selection, for instance, may be received through interaction with the user interface 110 to select from a variety of pigments 162, 164, 166, 168, 170, 172 options for use at particular ends of the mix control 124. These selections may then be used through interaction with the mix control 124 to generate digital paint 118 having a desired hue.
The digital paint properties may also include physical digital paint properties. Examples of physical digital paint properties include medium 156 (e.g., chalk, ink), surface 158 (e.g., paper, metal), instrument 160 used to apply the medium (e.g., brush, pencil), technique 150 used by the instrument to apply the medium (e.g., layered, blending), 152 environment in which the medium and surface as disposed (e.g., lighting conditions, meta-conditions such as particle gravity and repulsion), and so forth. Further examples of physical digital paint properties are described in relation to
In this way, a user may select which digital paint properties are to be used as a basis to generate the digital paint 118, control amounts of the digital paint properties used in the generation through interaction with the mix control 124, and output a result of this generation as feedback 126 in the user interface 110, e.g., in real time. As a result, the digital paint mixing system 116 supports efficient and intuitive techniques to indicate an effect of interaction of these digital paint properties with each other as part of generating the digital paint 118. This digital paint 118 may then be leveraged in a variety of ways, such as to incorporate the digital paint 118 as part of a digital image 106 configured to be rendered by the display device 112. Further discussion of operation of the digital paint mixing system 116 is described in the following sections.
In general, functionality, features, and concepts described in relation to the examples above and below may be employed in the context of the example procedures described in this section. Further, functionality, features, and concepts described in relation to different figures and examples in this document may be interchanged among one another and are not limited to implementation in the context of a particular figure or procedure. Moreover, blocks associated with different representative procedures and corresponding figures herein may be applied together and/or combined in different ways. Thus, individual functionality, features, and concepts described in relation to different example environments, devices, components, figures, and procedures herein may be used in any suitable combinations and are not limited to the particular combinations represented by the enumerated examples in this description.
Digital Paint Property Selection and Use
The following discussion describes techniques that may be implemented utilizing the previously described systems and devices. Aspects of each of the procedures may be implemented in hardware, firmware, software, or a combination thereof. In portions of the following discussion, reference is made interchangeably to
The system 200 of
A user input device 224 is configured to receive user inputs 222 both to select digital paint properties to be used to generate the digital paint 118 as well as to specify amounts of the selected digital paint properties 204 used to generate the digital paint 118. The digital paint 118 is then output in the user interface 110, e.g., for display on the display device 112 of
In this example, a single user input 306 is usable to define a relationship 308 with respect to both the first and second axes 132, 134. This relationship 308 may then be used to specify amounts of digital paint properties associated with those axes that are to be used to generate digital paint 118. First and second digital paint properties 310, 312, for instance, are defined at opposing ends of the first axis 132 that corresponds to an X axis in the multi-axis input space 304. Likewise, third and fourth digital paint properties 314, 316 are defined at opposing ends of the second axis 134.
The single user input 306 thus defines a relationship 308 between the opposing ends of the first axis 132 as well as the opposing ends of the second axis 134. From this, the mix control module 302 determines amounts of associated first, second, third, and fourth digital paint properties 310, 312, 314, 316 to be used to generate digital paint 118. The multi-axis input space 304, for instance, may define a grid, from which, closeness of the single user input 306 to respective first and second axes 132, 134 (e.g., X and Y axes) is determined. Thus, the single user input 306 may be used to define a continuous inverse relationship between the digital paint properties defined at the ends of the first and second axes 132, 134. In other words, greater amounts of a digital paint property at one end of an axis cause lesser amount of a digital paint property at another end of the axis. This user input may continue 306 through continued movement of the user input 306 in the multi-axis input space 304 to make continued changes to these amounts, e.g., through different gradations between opposing ends of the axes.
A user selection, for instance, is received of a first digital paint property and a second digital paint property via a user interface, e.g., via a user input device 224. At the first stage 502, a finger of a user's hand 128 is used to select a pigment 162 option from a menu of pigments, i.e., color digital paint properties. The represented pigment 162 is dragged to a first end 136 of a first axis 132 of the mix control 124. Likewise, at the second stage 504, the finger of the user's hand 128 is used to select another pigment 166 option, which is the dragged to a second end 140 of the first axis 132.
At the third stage 506, a menu of medium 156 options is displayed in the user interface 110. From this, a medium option of a physical digital paint property (e.g., smoke 508) is selected for inclusion at a first end 138 of the second axis 134 of the mix control. The second end 142 of the second axis 134 of the mix control 124 is left blank (i.e., open) in this example, which also supports user interaction as further described below. Other examples of selection are also contemplated without departing from the spirit and scope thereof, such as use of a cursor control device, spoken utterance, and so forth.
Thus, the selected digital paint properties 404 are provided from the digital paint property selection module 402 to the mix control module 302. In response, the mix control module 302 associates the first digital paint property (e.g., pigment 162 option) with a first end 136 of the first axis 132 of the mix control 124 and the second digital paint property (e.g., pigment 166 option) with the second end 140 of the first axis 132 of the mix control 124 (block 804).
Likewise, a third digital paint property (e.g., smoke 508) is associated with a first end 138 of the second axis 134 of the mix control 124 and a fourth “null” digital paint property is associated with a second end 142 of the second axis 134. This configures the mix control 124 to implement a multi-axis input space 304 that is usable via a single user input 128. Other examples are also contemplated, such as a single axis or three or more axes input space, e.g., in a virtual reality space.
Referring again to
At the first stage 602, the first and second ends 136, 138, 140, 142 of the first and second axes 132, 134 of the mix control are configured as described in relation to
At the first stage 602, a single user input 306 is received with respect to the first and second axes 132, 134, e.g., via a finger of the user's hand 128 as detected using touchscreen functionality of the display device 112. The user input 306 in this instance is closer to the second end 140 than the first end 136 of the first axis 132. In response, digital paint 118 is generated by the digital paint generation module 408 having more of a pigment 166 option (e.g., blue) associated with the second hand 130 than pigment 162 option (e.g., red) associated with the first end 136. These relative amounts are also illustrated by the indication 144 associated with the mix control 124.
Additionally, the user input 306 is disposed at the closest positioning available to the first end 138 of the second axis 134 and further away from the second end 142. In response, the digital paint 118 is also generated to have a maximum amount of a physical digital paint property associated with the first end 138 of the axis, e.g., smoke 508. Thus, the output of the generated digital paint is based on a mix of color digital paint properties and physical digital paint properties.
At the second stage 602, the single user input 306 is moved a greater amount along the second axis 134 than the first axis 132. In response, a slight color change is noted in the generation of the digital paint 118 to include more of the pigment 162 option associated with the first end 136 than the pigment 166 option associated with the second end 140 of the first axis 132.
Additionally, a larger change is exhibited in the generation of the digital paint 118 to include additional amounts of a null option of the second end 142 of the second axis 134 and thus less of a smoke 508 physical digital paint property. Thus, the null option of the second axis 134 supports definition of amounts of the digital paint property on an opposing side of the axis, solely, without affecting another digital paint property.
At the third stage 702, the user input 306 defines a relationship between the first and second ends 136, 140 of the first axis 132 to further increase amount of the pigment 162 option associated with the first end 136 than the pigment 166 option associated with the second end 140. This causes the digital paint to appear as magenta in this example rather than purely blue as shown in the first and second stages 602, 604. Further, the single user input 306 defines a return to a maximum amount of a digital paint property associated with a first end 138 as opposed to a second end 142 of the second axis 134. This causes the digital paint 118 to exhibit a maximum amount of the smoke 508 physical digital paint property.
At the fourth stage 704 in this example, the user input 306 defines a relationship between the first and second ends 136, 140 of the first axis 132 as a maximum amount of the pigment 162 option associated with the first end 136 and minimum amount of the pigment 166 option associated with the second end 140. This causes the digital paint to appear more red in this example than the magenta color as shown at the third stage 702 and the blue as shown in the first and second stages 602, 604.
Further, the single user input 306 defines a return to a lesser amount of a digital paint property associated with a first end 138 as opposed to a second end 142 of the second axis 134. This causes the digital paint 118 to reduce the amount of the smoke 508 physical digital paint property used to generate the digital paint 118. Thus, the mix control 124 supports a single user input 306 to define a continuous inverse relationship of digital paint properties defined at opposing axes, which may include combination of both color and physical digital paint properties. A result of this is output as feedback to follow a freeform line 706 drawn in the user interface such that a user may readily compare changes to the digital paint properties to each other concurrently over time, e.g., as changes in color, application of physical digital paint properties (e.g., smoke as illustrated), and so forth.
In this way, a user may specify digital paint properties to be used to generate digital paint as well as amounts of the specified digital paint properties through interaction with the digital paint mixing system 116. The digital paint mixing system 116 may also support interactions between the physical digital paint properties and an intensity of those interaction through sue of the mix control 124, an example of which is described in the following section.
Physical Digital Paint Property Interaction
The following discussion describes techniques that may be implemented utilizing the previously described systems and devices. Aspects of the procedure may be implemented in hardware, firmware, software, or a combination thereof. The procedure is shown as a set of blocks that specify operations performed by one or more devices and are not necessarily limited to the orders shown for performing the operations by the respective blocks. In portions of the following discussion, reference will be made interchangeably to
In the previous sections, amounts of digital paint properties are specified through interaction with the mix control 124 to generate digital paint. This may be used to mix different color digital paint properties (e.g., green and blue pigments) as well as physical digital paint properties, e.g., medium 212, surface 214, instrument 216, technique 218, and environment 220. The physical digital paint properties may be configured to mimic the physical world and may include meta and “supernatural” type properties such as gravity, attraction, repulsion, particle movement, and so forth. As a result, these techniques support creation of art that is not possible to conventional systems that are limited to color, alone. In this section, interaction is described of physical digital paint properties with each other as part of digital paint generation.
As illustrated in
A first user input is received that results from user interaction detected with respect to the mix control 124 (block 1106). Interaction is determined by the mix control module 302 of the physical digital paint properties, one to another, based on the user input (block 1108). This may include single and multi-axis detection as described in relation to
In this example, however, the amounts of digital paint properties 808 are provided to a physical property interaction determination module 1106. The physical property interaction determination module 1106 is configured to generate an animation 810 as part of generation of the digital paint 118 having an intensity of physical property interaction 812 based at least in part on the amounts of digital paint properties (block 1110). The animation 810 of the digital paint 118 is then output in a user interface 110 (block 1112) such that the generated digital paint 118 mimics this interaction. In this way, the generation of the digital paint 118 may expand beyond amounts of physical digital paint properties (e.g., an amount of smoke as shown in
Likewise, there are a variety of types of surfaces 214 that may be mimicked by digital paint that either mimic real world surfaces or non-existent surfaces that are imagined and interaction with is mathematically modeled as part of the data. Examples of surfaces 214 include wood 214(1), stone 214(2), metal 214(3), snow 214(4), food 214(5), fauna 214(60, flora 214(7), fire 214(8), water 214(9), masonry 214(10), wine 214(11), paper 214(12), and other 214(N) surfaces. Thus, the surface 214 acts a base of the medium 212, e.g., is a substrate for the medium 212.
An instrument 216 refers to functionality of an instrument being mimicked to apply the medium 212 to the surface 214. Examples of instruments include a brush 216(1), marker 216(2), pen 216(3), pencil 216(4), chalk 216(5), hammer 216(6), chisel 216(7), aerosol 216(8), torch 216(9), and others 216(0). A technique 218 refers to a technique used by the instrument 216 to apply to medium 212 to the surface 214. Examples of techniques 218 include stroke 218(1), angle 218(2), pressure 218(3), layering 218(4), duration 218(5), pattern 218(6), blend 218(7), burnish 218(8), rub 218(9), and others 218(P).
An environment 220 refers to an environment in which the medium 212 is applied to the surface 214, e.g., by the instrument 216 using the technique 218. Examples of environments 220 includes cold 220(1), wind 220(2), gravity 220(3), age 220(4), hot 220(6), dawn/dusk 220(6), ambient 220(7), frame 220(8), direct light 220(9), and other 220(Q) environments. Thus, these variety of physical digital paint properties may describe a variety of physical characteristics modeled as part of generation of the digital paint 220 that include defined interactions between the properties.
As described above, a multitude of physical digital paint properties may be modeled in data to mimic characteristics of these properties in real life or based upon a user's imagination. So too, a multitude of interactions may also be defined based on interactions of this multitude of physical digital paint properties. For example, a fire medium 212(1) may define a burn interaction with respect to wood 214(1), scorch with respect to stone 214(2), melt with respect to metal 214(3) and snow 214(4), burn flora 214(7), put out by water 214(9), scorch masonry 214(1), put out by wine 214(11), scorch or burn paper 214(12) depending on intensity of the animation, and so forth. Likewise, a water 212(2) medium may soak wood 214(1), make stone 214(2) wet, rust metal 214(3), melt snow 214(4), make food 214(5) and paper 214(12) soggy, and so forth.
In a meta example in which imaginary interaction are supported, yellow digital paint may be configured to be repelled by red digital paint through physical digital paint properties associated with these digital paints. Meta examples of medium 212, surface 214, instrument 216, technique 218, and environment 220 are also contemplated. A digital paint, for instance, may be generated as output in a weightless environment 220 as output by an ignition technique 218 of an instrument 216 of a rocket engine on a surface 214 as an airless void 214 as magnetic particles that cool. Thus, the digital paint generation techniques may expand beyond the limitations of conventional color selection and conventional techniques that mimic the real world. As a result, the digital paint 118 and digital images 106 that are not possible nor even considered using conventional systems.
Environmental Digital Paint Properties
The following discussion describes techniques that may be implemented utilizing the previously described systems and devices. Aspects of each of the procedures may be implemented in hardware, firmware, software, or a combination thereof. The procedures are shown as a set of blocks that specify operations performed by one or more devices and are not necessarily limited to the orders shown for performing the operations by the respective blocks. In portions of the following discussion, reference will be made interchangeably to
In the previous section, a variety of physical digital paint properties are described as well as interaction of those properties with each other. One example of the physical digital paint properties is environmental 220 that describes an environment in which the medium 212 is applied to the surface 214, which may be a virtual environment output by the digital paint mixing system 116 to have any characteristic capable of being modeled in data.
In this section, other examples of physical digital paint property are described that is based at least in part on a physical environment in which the computing device 102 is disposed. In this way, the physical environment may also effect generation of the digital paint 118. This supports numerous advantages and functionality, such as to enforce “how the digital paint 118” is actually likely to appear in the physical environment, affected by movement detected within the physical environment (e.g., wind, the computing device 102 itself), and so forth. These even supports interactions and generation of digital paint that would not be possible in a real world physical environment as further described below.
In the system 1200 of
The system 1200 also includes an environmental sensor 1206 that is configured to provide sensor data 1208 to the digital paint generation module 408 (block 1302). The sensor data 1208 describes an environment in which the computing device 102 is disposed, i.e., characteristics of an actual physical environment.
The environmental sensor 1206 may be configured in a variety of different ways to generate a variety of different types of sensor data 1208. Examples of environmental sensors 1206 configured to detect conditions of a physical environment in which the computing device 102 is disposed include a temperature sensor, barometer, altimeter, light sensor, positional sensor, orientation sensor (e.g., in two or three dimensions), humidity, camera, and so forth.
A user input 222 is also detected via a user input device 224. The user input 222 involves user interaction with a mix control 124 via a user interface 110 displayed by a display device 112 (block 1304). In the system 1200 of
An animation 1210 of digital paint 118 is generated by the digital paint generation module 408 using amounts of digital paint properties 904 based on the detected user input 222 and the sensor data 1208 from the environmental sensor 1206 (block 1306), which is then output (block 1308). In this way, the generation of the digital paint 118 may respond to environmental conditions of a physical environment, in which, the computing device 102 is disposed.
The environmental sensor 1206 may be configured in a variety of ways to detect characteristics of a physical environment, in which, the computing device 102 is disposed. Examples of environmental sensors include orientation sensors (e.g., accelerometers, gyroscopes, inertial sensing devices, magnetic compass), light detection sensors (e.g., cameras, IR light sensors), barometers (e.g., for altitude sensing), gravimeters, radar sensors (e.g., via Wi-Fi signals), proximity sensors, structured light arrays, time-of-flight cameras, temperature, humidity, biometric data (e.g., heart rate), global positioning system, and so forth. Sensor data 1208 obtained from these environmental sensors 1206 may be used as part of definition of physical digital paint properties to control generation and output of digital paint.
The digital paint generation module 408, for instance, may be configured to generate digital paint, rendering of which is based at least in part on an orientation of the computing device 102 in three dimensional space. Accordingly, the digital paint generation module 408 makes a call via an application programming interface (API) to the environmental sensor 1206 configured as an orientation sensor, e.g., accelerometers, gyroscopes, inertial sensing devices. In response, detected values of the environmental sensor 1206 are used to generate a value as part of the sensor data 1208 that indicates this orientation, e.g., held vertically in the illustrated example.
In response, the digital paint generation module 408 generates digital paint 118 as part of an animation 1210 in which the paint flows “down” the display device 112. The flow, for instance, may change dependent on the detected orientation of the computing device 102 to appear “downward” and thus reacts to an environment, in which, the digital paint 118 is disposed. This orientation may also be employed for other physical digital paint properties, such as to have smoke or fire appear to “rise.”
In another example, the digital paint generation module 408 is configured to generate digital paint having a physical digital paint property in which the rendered digital paint is to appear as affected by physical light in a physical environment of the computing device 102. In this example, the digital paint generation module 408 makes a call via an API to the environmental sensor 1206 configured as a light sensor, e.g., a forward facing camera. Accordingly, the sensor data 1208 (as a digital image) may capture location of light sources within the physical environment of the computing device 102. This sensor data 1208 is then used by the digital paint generation module 408 to position virtual light sources as part of rendering the digital paint such that the digital paint appears to react to lighting in the physical environment of the computing device 102.
In a further example, the digital paint generation module 408 is configured to generate digital paint having a physical digital paint property in which the rendered digital paint is to appear as affected by temperature in a physical environment of the computing device 102. The physical digital paint property, for instance, may specify that digital paint is to flow at different rates based on how hot or cold it is. In this example, the digital paint generation module 408 makes a call via an API to the environmental sensor 1206 configured as a temperature gauge to obtain sensor data 1208 that describes this temperature. This sensor data 1208 is then used by the digital paint generation module 408 to adjust a rate at which the digital paint appears to flow in the user interface, e.g., downward in the illustrated example.
In yet another example, the digital paint generation module 408 is configured to generate digital paint having a physical digital paint property in which the rendered digital paint is to appear as affected by biometric data obtained from a user of the computing device 102, e.g., a heart rate. In this example, the digital paint generation module 408 makes a call via an API to the environmental sensor 1206 configured as a heart rate monitor. Accordingly, the sensor data 1208 describes a heart rate of a user associated with the computing device 102. This sensor data 1208 is then used by the digital paint generation module 408 to adjust output of the digital paint as rendered. This may be used, for instance, to adjust how much the digital paint appears to “glow” based on the user's heart rate, e.g., to exhibit an amount of intensity that corresponds to a likely level of user agitation. A variety of other examples are also contemplated. In this way, the digital paint mixing system 116 may expand generation of digital paint 118 to include both color and physical digital paint properties as well as environmental properties.
Further, the generation of the digital paint 118 based on the physical digital paint properties and the physical environment may support creation of art and support interactions that are not possible using conventional techniques nor even possible in the real physical world. As a result, these interactions may also expand beyond mimicking “real world” interactions in the physical world to include any physical digital paint property that can be imagined by the user and defined (e.g., mathematically) for rendering by the image processing system.
The physical digital paint properties, for instance, may include meta-conditions as previously described, such as particle gravity, attraction, sparkles, dynamic gradients and repulsion as part of an animation of the digital paint. These physical digital paint properties may then leverage the environmental sensor to support interactions that are not possible in a real world environment, such as to cast digital paint using a wand that behaves like the first of a dragon. Consequently, the digital paint and digital images created using this paint may be created and rendered by the image processing system that has never been seen before. In this way, creation of digital paint may be untethered from conventional digital image creation techniques to mimic the physical world (e.g., use of brushes, pens, pencils) to creating imaginary and fanciful digital paint as part of digital images 106.
Example System and Device
The example computing device 1502 as illustrated includes a processing system 1504, one or more computer-readable media 1506, and one or more I/O interface 1508 that are communicatively coupled, one to another. Although not shown, the computing device 1502 may further include a system bus or other data and command transfer system that couples the various components, one to another. A system bus can include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that utilizes any of a variety of bus architectures. A variety of other examples are also contemplated, such as control and data lines.
The processing system 1504 is representative of functionality to perform one or more operations using hardware. Accordingly, the processing system 1504 is illustrated as including hardware element 1510 that may be configured as processors, functional blocks, and so forth. This may include implementation in hardware as an application specific integrated circuit or other logic device formed using one or more semiconductors. The hardware elements 1510 are not limited by the materials from which they are formed or the processing mechanisms employed therein. For example, processors may be comprised of semiconductor(s) and/or transistors (e.g., electronic integrated circuits (ICs)). In such a context, processor-executable instructions may be electronically-executable instructions.
The computer-readable storage media 1506 is illustrated as including memory/storage 1512. The memory/storage 1512 represents memory/storage capacity associated with one or more computer-readable media. The memory/storage component 1512 may include volatile media (such as random access memory (RAM)) and/or nonvolatile media (such as read only memory (ROM), Flash memory, optical disks, magnetic disks, and so forth). The memory/storage component 1512 may include fixed media (e.g., RAM, ROM, a fixed hard drive, and so on) as well as removable media (e.g., Flash memory, a removable hard drive, an optical disc, and so forth). The computer-readable media 1506 may be configured in a variety of other ways as further described below.
Input/output interface(s) 1508 are representative of functionality to allow a user to enter commands and information to computing device 1502, and also allow information to be presented to the user and/or other components or devices using various input/output devices. Examples of input devices include a keyboard, a cursor control device (e.g., a mouse), a microphone, a scanner, touch functionality (e.g., capacitive or other sensors that are configured to detect physical touch from a user's finger or stylus), a camera (e.g., which may employ visible or non-visible wavelengths such as infrared frequencies to recognize movement as gestures that do not involve touch), spatially aware input device (e.g., motion tracking), and so forth. Examples of output devices include a display device (e.g., a monitor or projector), speakers, a printer, a network card, tactile-response device, and so forth. Thus, the computing device 1502 may be configured in a variety of ways as further described below to support user interaction.
Various techniques may be described herein in the general context of software, hardware elements, or program modules. Generally, such modules include routines, programs, objects, elements, components, data structures, and so forth that perform particular tasks or implement particular abstract data types. The terms “module,” “functionality,” and “component” as used herein generally represent software, firmware, hardware, or a combination thereof. The features of the techniques described herein are platform-independent, meaning that the techniques may be implemented on a variety of commercial computing platforms having a variety of processors.
An implementation of the described modules and techniques may be stored on or transmitted across some form of computer-readable media. The computer-readable media may include a variety of media that may be accessed by the computing device 1502. By way of example, and not limitation, computer-readable media may include “computer-readable storage media” and “computer-readable signal media.”
“Computer-readable storage media” may refer to media and/or devices that enable persistent and/or non-transitory storage of information in contrast to mere signal transmission, carrier waves, or signals per se. Thus, computer-readable storage media refers to non-signal bearing media. The computer-readable storage media includes hardware such as volatile and non-volatile, removable and non-removable media and/or storage devices implemented in a method or technology suitable for storage of information such as computer readable instructions, data structures, program modules, logic elements/circuits, or other data. Examples of computer-readable storage media may include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, hard disks, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or other storage device, tangible media, or article of manufacture suitable to store the desired information and which may be accessed by a computer.
“Computer-readable signal media” may refer to a signal-bearing medium that is configured to transmit instructions to the hardware of the computing device 1502, such as via a network. Signal media typically may embody computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as carrier waves, data signals, or other transport mechanism. Signal media also include any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media.
As previously described, hardware elements 1510 and computer-readable media 1506 are representative of modules, programmable device logic and/or fixed device logic implemented in a hardware form that may be employed in some embodiments to implement at least some aspects of the techniques described herein, such as to perform one or more instructions. Hardware may include components of an integrated circuit or on-chip system, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a complex programmable logic device (CPLD), and other implementations in silicon or other hardware. In this context, hardware may operate as a processing device that performs program tasks defined by instructions and/or logic embodied by the hardware as well as a hardware utilized to store instructions for execution, e.g., the computer-readable storage media described previously.
Combinations of the foregoing may also be employed to implement various techniques described herein. Accordingly, software, hardware, or executable modules may be implemented as one or more instructions and/or logic embodied on some form of computer-readable storage media and/or by one or more hardware elements 1510. The computing device 1502 may be configured to implement particular instructions and/or functions corresponding to the software and/or hardware modules. Accordingly, implementation of a module that is executable by the computing device 1502 as software may be achieved at least partially in hardware, e.g., through use of computer-readable storage media and/or hardware elements 1510 of the processing system 1504. The instructions and/or functions may be executable/operable by one or more articles of manufacture (for example, one or more computing devices 1502 and/or processing systems 1504) to implement techniques, modules, and examples described herein.
The techniques described herein may be supported by various configurations of the computing device 1502 and are not limited to the specific examples of the techniques described herein. This functionality may also be implemented all or in part through use of a distributed system, such as over a “cloud” 1514 via a platform 1516 as described below.
The cloud 1514 includes and/or is representative of a platform 1516 for resources 1518. The platform 1516 abstracts underlying functionality of hardware (e.g., servers) and software resources of the cloud 1514. The resources 1518 may include applications and/or data that can be utilized while computer processing is executed on servers that are remote from the computing device 1502. Resources 1518 can also include services provided over the Internet and/or through a subscriber network, such as a cellular or Wi-Fi network.
The platform 1516 may abstract resources and functions to connect the computing device 1502 with other computing devices. The platform 1516 may also serve to abstract scaling of resources to provide a corresponding level of scale to encountered demand for the resources 1518 that are implemented via the platform 1516. Accordingly, in an interconnected device embodiment, implementation of functionality described herein may be distributed throughout the system 1500. For example, the functionality may be implemented in part on the computing device 1502 as well as via the platform 1516 that abstracts the functionality of the cloud 1514.
Although the invention has been described in language specific to structural features and/or methodological acts, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms of implementing the claimed invention.
Number | Name | Date | Kind |
---|---|---|---|
5409379 | Montag | Apr 1995 | A |
5432896 | Hwong | Jul 1995 | A |
9240063 | Tremblay | Jan 2016 | B1 |
9734635 | Gorumkonda | Aug 2017 | B1 |
10474341 | Randall et al. | Nov 2019 | B2 |
20090085880 | Vitale et al. | Apr 2009 | A1 |
20090222469 | Maillot et al. | Sep 2009 | A1 |
20090262130 | Ramirez | Oct 2009 | A1 |
20110271216 | Wilson | Nov 2011 | A1 |
20110274348 | Oicherman | Nov 2011 | A1 |
20140132617 | Bhattacharyay | May 2014 | A1 |
20140132619 | Landsberger | May 2014 | A1 |
20140153825 | Jones et al. | Jun 2014 | A1 |
20140267223 | Sumner et al. | Sep 2014 | A1 |
20190079661 | Randall et al. | Mar 2019 | A1 |
20190080485 | Randall et al. | Mar 2019 | A1 |
20190080486 | Randall et al. | Mar 2019 | A1 |
20190096096 | Randall et al. | Mar 2019 | A1 |
Entry |
---|
“First Action Interview Office Action”, U.S. Appl. No. 15/701,182, dated Mar. 20, 2019, 54 pages. |
“First Action Interview Office Action”, U.S. Appl. No. 15/701,029, dated Mar. 20, 2019, 65 pages. |
“First Action Interview Office Action”, U.S. Appl. No. 15/716,311, dated Mar. 29, 2019, 58 pages. |
“Pre-Interview First Office Action”, U.S. Appl. No. 15/701,029, dated Feb. 4, 2019, 65 pages. |
“Pre-Interview First Office Action”, U.S. Appl. No. 15/701,182, dated Feb. 4, 2019, 54 pages. |
“Pre-Interview First Office Action”, U.S. Appl. No. 15/701,303, dated Feb. 19, 2019, 32 pages. |
“Pre-Interview First Office Action”, U.S. Appl. No. 15/716,311, dated Feb. 19, 2019, 64 pages. |
“First Action Interview Office Action”, U.S. Appl. No. 15/701,303, dated Apr. 4, 2019, 32 pages. |
“Notice of Allowance”, U.S. Appl. No. 15/701,303, dated Jun. 12, 2019, 8 pages. |
“Notice of Allowance”, U.S. Appl. No. 15/701,029, dated Jun. 27, 2019, 9 pages. |
“Notice of Allowance”, U.S. Appl. No. 15/701,182, dated Jul. 12, 2019, 10 pages. |
“Notice of Allowance”, U.S. Appl. No. 15/716,311, dated Jul. 15, 2019, 8 pages. |
“Supplemental Notice of Allowance”, U.S. Appl. No. 15/701,029, dated Sep. 9, 2019, 2 pages. |
“Supplemental Notice of Allowance”, U.S. Appl. No. 15/701,303, dated Jul. 3, 2019, 2 pages. |
“Supplemental Notice of Allowance”, U.S. Appl. No. 15/701,303, dated Aug. 21, 2019, 2 pages. |
“Supplemental Notice of Allowance”, U.S. Appl. No. 15/701,303, dated Oct. 3, 2019, 2 pages. |
“Supplemental Notice of Allowability”, U.S. Appl. No. 15/701,182, dated Oct. 18, 2019, 2 pages. |
“Supplemental Notice of Allowability”, U.S. Appl. No. 15/716,311, dated Oct. 21, 2019, 2 pages. |
Number | Date | Country | |
---|---|---|---|
20190080487 A1 | Mar 2019 | US |