System and method for artist friendly controls for hair shading

There is provided a system and method for artist friendly control of three-dimensional object shading, particularly hair. A methodology is disclosed for deriving a pseudo scattering function over a domain of Artist Friendly Controls (AFCs) from a physically based scattering function over a domain of Physically Based Controls (PBCs). The pseudo scattering function can provide intuitive decoupled adjustments of specific important visual characteristics while still providing a convincing and aesthetically pleasing result. An end user such as an artist may thus control the values, or AFCs, to implement specific aesthetic features for the shading of objects as seen on a display. The pseudo scattering function may be utilized for single scattering and multiple scattering models of hair shading.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to computer generated graphics. More particularly, the present invention relates to shading for three-dimensional computer generated graphics.

2. Background Art

Providing aesthetically pleasing visual results for three-dimensional computer generated graphics is an important and challenging task. As entertainment media such as movies and video games increasingly rely on three-dimensional computer generated graphics to supplement or replace live action footage or traditional painting techniques, it becomes important to streamline the computer aided workflow process. By providing artists and other creative professionals with intuitive computer based tools that ease the transition from ideas to computer generated renderings, visually appealing three-dimensional graphics can be more easily integrated into creative media while adhering to project budgets and schedules.

In particular, most three-dimensional characters, such as humans or animals, will have some kind of hair or fur on their bodies needing to be rendered. Human vision is very sensitive to the appearance of hair and can detect subtle inaccuracies in its appearance. Moreover, since hair can provide a very personal expression of style and creativity, hair is often considered one of the most important customization features for avatars, such as for online social communities and gaming networks. Thus, the importance of providing aesthetically pleasing hair is not to be overlooked.

On the other hand, rendering hair is not a trivial matter as it is computationally expensive to model the complex behavior of light scattering events in a volume of hair. While there has been much research on hair shading using physical models, it is difficult for computer graphics rendering to benefit from such research. Since the rendering parameters are based on physical material properties such as indices of refraction and absorption coefficients, it is difficult for artists and other creative professionals to manipulate the rendering parameters to achieve a specific aesthetic goal. In particular, due to the laws of physics and the coupling of physical material properties to multiple visual effects, it is difficult to create specific aesthetic changes, such as adjusting only the width of hair highlights, without changing the appearance of the rendering as a whole.

Thus, while physically based shading models can provide realistic and aesthetically pleasing results, they are often inappropriate for creative works due to their unintuitive art direction behavior. As a result, ad-hoc shaders that are more easily manipulated by artists have become common in production use. However, such ad-hoc shaders may lack the richness of detail provided by physical shaders, thereby providing a sub-optimal aesthetic appearance that may also break down in certain lighting conditions.

Accordingly, there is a need to overcome the drawbacks and deficiencies in the art by providing a three-dimensional computer graphics rendering system capable of producing aesthetically pleasing results for features such as hair while providing intuitive manipulation controls for art direction.

SUMMARY OF THE INVENTION

There are provided systems and methods for artist friendly control of three-dimensional object shading, particularly hair, substantially as shown in and/or described in connection with at least one of the figures, as set forth more completely in the claims.

DETAILED DESCRIPTION OF THE INVENTION

The present application is directed to a system and method for artist friendly control of three-dimensional object shading, particularly hair. The following description contains specific information pertaining to the implementation of the present invention. One skilled in the art will recognize that the present invention may be implemented in a manner different from that specifically discussed in the present application. Moreover, some of the specific details of the invention are not discussed in order not to obscure the invention. The specific details not described in the present application are within the knowledge of a person of ordinary skill in the art. The drawings in the present application and their accompanying detailed description are directed to merely exemplary embodiments of the invention. To maintain brevity, other embodiments of the invention, which use the principles of the present invention, are not specifically described in the present application and are not specifically illustrated by the present drawings.

Before discussing the artist friendly controls provided by the present invention, it may be helpful to provide a brief overview of the state of the art in different shading models. As discussed in the background art, while physically based shader models may provide realistic and aesthetically pleasing hair rendering, they are difficult for artists to utilize since the control parameters are based on unintuitive physical material parameters. Such physical material parameters define the behavior of a material in response to light. These parameters may include an absorption coefficient, an extinction coefficient, a scattering coefficient and an index of refraction. However, artists are not interested in these parameters but in specific visual parameters such as color and brightness. To affect changes in specific visual parameters, artists using physical shader models must manually tweak physical parameters using trial and error, a tedious and time consuming process. Moreover, since the physical parameters are often coupled to several visual parameters, it is difficult to adjust one visual element in isolation without affecting others, which is highly undesirable behavior for art direction.

Although methods exist to extrapolate estimated physical parameters from photographic sources, thereby relieving artists from much of the trial and error of parameter selection, the requirement for photographic source material in the first instance is burdensome, particularly for fantastic and futuristic world designs requiring rendering of objects that have no analogues in the real world. If physical shader models are used, it may be difficult or impossible to implement desired art direction without undesirable rendering side effects or artifacts. Thus, artists are unduly restricted from expressing creative world designs that may not necessarily comply with realistic physical models.

As a result, many production environments have turned to ad-hoc shading models better suited to art direction. Many of these ad-hoc shaders are based on simplified shading models with more intuitive control parameters compatible with art direction. However, as discussed in the background art, the tradeoff is forfeiting the richness in visual detail and consistency in different lighting conditions inherently provided by physically based shading models. Thus, while ad-hoc shaders are easier for artists to control, they may provide sub-optimal visual quality.

Since the highly detailed and aesthetically pleasing results inherent in physically based shading models still remain compelling despite difficulties in art direction control, it may be a good starting point to return to focus on physically based shading models. Physically based scattering functions (ƒs) may be defined over the domain of material properties, or Physically Based Controls (PBC), which include parameters such as index of refraction η, absorption coefficient σa, and other parameters as discussed above. Thus,
ƒs=f(ωi, ωr, σa, η, . . . )=ƒ(ωi, ωr, {PBC})
where ωiand ωrare lighting and viewing directions. From this physical model, the goal is to produce a pseudo scattering function ƒ′sthat approximates ƒsbut is defined on a different domain of parameters that have intuitive visual meanings for artists and are separate for all visually meaningful components. This domain of intuitive, decoupled, and meaningful parameters shall be referred to as Artist Friendly Controls (AFC). Thus,
ƒ′s=f(ωi,ωr,{AFC})≈ƒs
Since the pseudo scattering function ƒ′sis an approximation of ƒs, it is not limited to the rules of physics and can generate a larger range of appearances such as super-natural appearances, allowing artists to more faithfully reproduce their creative visions that may include values beyond the possible range of physical models. Of course, if a more realistic rendering is desired, then ƒ′smay also provide a closer approximation of ƒsas well.

FIG. 1presents a diagram showing the steps for deriving, from a physically based scattering function over a domain of Physically Based Controls (PBCs), a pseudo scattering function over a domain of Artist Friendly Controls (AFCs), according to one embodiment of the present invention. As shown in diagram100ofFIG. 1, deriving ƒ′sfrom ƒsmay be summarized as a five-step process. At step110or the first step, the exact behavior of ƒsis examined over the domain of some material properties {PBC}. At step120or the second step, the behavior of ƒsis decomposed into visually separate and meaningful scattering sub-functions ƒsi. Since the definition of “meaningful” in this context is subjective, this step should take into account the input of end users or artists who will be using the new shader. At step130or the third step, for each subcomponent ƒsi, artist friendly control parameters AFCijshould be defined that are intuitive, decoupled, and visually meaningful. Again, since “visually meaningful” is subjective, the input of the end users or artists should be integrated into step130. At step140or the fourth step, pseudo scattering functions ƒ′siare reproduced that approximate the qualitative behavior of the decomposed scattering functions ƒsifrom step120over the domain of {AFCij} from step130. At step150or the fifth step, the pseudo scattering functions ƒ′sifrom step140are combined into a single pseudo scattering function ƒ′s, which approximates ƒsbut is defined over the domain of artist friendly control parameters {AFCij}.

While the process described in steps110-150ofFIG. 1are specifically applied to hair shading, the process is not limited to hair only. The results ofFIG. 1may also be generically applied to other fiber-like structures. Additionally, by adjusting the process to account for the light scattering behavior of other objects, those other objects can also be analyzed and rendered using a similarly derived pseudo scattering function, enabling greater art direction while maintaining the visual appeal of physical based shader models for a wide variety of object materials.

Moving toFIGS. 2athrough2c,FIGS. 2athrough2cpresent diagrams showing single scattering subcomponents of light as applied to one or more fibers of hair, where each of the subcomponents controls a different visually apparent characteristic of the one or more fibers. To explain the simpler case first, the five-step process described in diagram100ofFIG. 1will be first applied to the single scattering case, where a single hair fiber is to be rendered using a light source. Thus, corresponding to step110ofFIG. 1, the exact light scattering behavior of a single hair fiber will be examined. Diagram200ofFIGS. 2athrough2ceach includes light source210and components220a,220b, and220c. The arrow indicates the tip of the hair fiber, as shown. As is known in the art, the single scattering of light source210from a single hair fiber has three main subcomponents, as shown inFIG. 2d:1) Component220aor “R”: Light reflecting off the surface of hair or the “primary highlight”2) Component220bor “TT”: Light transmitted through hair medium or the “transmission highlight”3) Component330cor “TRT”: Light internally reflected off the inner surface of hair or the “secondary highlight”

Due to the presence of tilted cuticles, components220athrough220cwill be reflected in three different angles around the hair fiber, forming three different cones. Component220ahas the color of the light source and usually appears as a bright white highlight. Component220bappears in backlit situations and is the bright halo around the hair. Component220cappears above the primary highlight and has the color of the hair. Component220ccontains some randomized looking sharp peaks that are basically caustics formed as the light passes through the hair fibers. The randomized appearance is due to the fact that hairs have elliptical cross sections and are oriented randomly.

As is known in the art, components220athrough220ccan be decomposed into three longitudinal functions M(θ), depicted inFIG. 2b, and three azimuthal functions N(θ), depicted inFIG. 2c. Thus,

fs⁡(θ,ϕ)=∑X⁢MX⁡(θ)⁢NX⁡(ϕ)/cos2⁢θ
where subscript Xε{R, TT, TRT} represents one of the three subcomponents from components220athrough220c.

The longitudinal scattering functions Mx(θ) have been modeled as unit-integral, zero-mean Gaussian functions. The variance of these Gaussian functions represents the longitudinal width of each highlight:
MX(θ)=g(βX2,θh−αX)
where g is a unit-integral, zero-mean Gaussian function and β2represents the variance of the lobe and αxrepresents its longitudinal shift. By assuming circular cross sections for the hair fibers when computing the azimuthal scattering functions, the final shape of the scattering functions is relatively easy to characterize, as shown inFIG. 2c.

Proceeding with step120ofFIG. 1, a team of artists was consulted to derive a desired list of controllable appearance properties. The results came up as four components: the primary highlight, the secondary highlight, glints, and the rim light when the hair is backlit. Advantageously, these components happened to align with the underlying physically based calculations fairly closely. The primary highlight corresponds to R or component220a, the rim light corresponds to TT or component220b, and the glints and the secondary highlight correspond to sub-components of TRT or component220c.

Proceeding with step130ofFIG. 1, the team of artists was again consulted to define decoupled and meaningful Artist Friendly Controls or AFCs. These correspond to specific visual qualities such as color, intensity, size, shape, and position. The results came up as follows:1) R, or component220a:Color, intensity, longitudinal position, longitudinal width2) TT, or component220b:Color, intensity, longitudinal position, longitudinal width, azimuthal width3) TRT minus glints, or a portion of component220c:Color, intensity, longitudinal position, longitudinal width4) Glints, or the remainder of component220c:Color, intensity, frequency of appearance
As previously described, since the results of steps120and130are subjective and based on artist preferences, they may vary depending on the specific needs of the artists.

Proceeding with step140ofFIG. 1, the current task is to reproduce the decomposed subcomponents described in step120based on the AFCs defined in step130. Since separate longitudinal and azimuthal scattering functions for single scattering are already known in the art as described above, they will be used for this purpose. However, since it is desirable to decouple width and brightness so that adjusting the width of highlights does not affect brightness, unit height Gaussian functions will be used rather than unit-area.

Thus, the pseudo longitudinal scattering function is defined as follows:
M′X(θ)=g′(β2X,θh−αX)
where Xε{R, TT, TRT} and g′ is a unit-height zero-mean Gaussian function and βxrepresents the longitudinal width of component X and αxis its longitudinal shift.

Moving toFIG. 3,FIG. 3presents azimuthal visualizations of the Artist Friendly Controls (AFCs) as applied to a single scattering model of hair rendering, according to one embodiment of the present invention. The azimuthal scattering functions are more complex than the longitudinal scattering functions and will need to be simulated separately, as shown in diagrams310athrough310cwith corresponding renderings320athrough320c.

The azimuthal scattering function for the primary highlight Nr(φ) appears as an up-side down heart shape, as shown in diagram310aofFIG. 3. In diagram310aand render320a, the “a” term indicates the intensity IR, the “b” term indicates the longitudinal shift αR, and the “c” term indicates the longitudinal width β2Rof the primary highlight. A simple approximation of the shape ignoring the Fresnel term is provided as follows:
N′R(φ)=cos(φ/2) 0<φ<π

The azimuthal scattering function for the transmission component NTTappears as a sharp forward directed lobe, as shown in diagram310bofFIG. 3. In diagram310band render320b, the “a” term indicates the intensity ITT, the “b” term indicates the azimuthal width γ2TT, the “c” term indicates the longitudinal shift αTT, and the “d” term indicates the longitudinal width β2TTof the transmission highlight. A reproduction of the shape is provided using a Gaussian with unit height and controllable azimuthal width as follows:
N′TT=g′(γ2TT,π−φ)
where γ2TTis the azimuthal width of the transmission component.

The azimuthal scattering function for the secondary highlight and the glints appears as shown in diagram310cofFIG. 3. In diagram310cand render320c, the “a” term indicates the intensity of the secondary highlight ITRT, the “b” term indicates the relative intensity of glints Ig, the “c” term indicates the azimuthal widths of the glints γ2g, the “d” term indicates the half angle between the glints Gangle, the “e” term indicates the longitudinal shift αTRT, and the “f” term indicates the longitudinal width β2TRTof the secondary highlight.

For the secondary highlight, more control parameters are present because of the glints. Due to the eccentricity of the human hair fibers, the number, intensity, and the azimuthal direction of the glints varies based on the orientation of each hair. However, since only the final visual impact of the glints is of importance, it may be assumed that glints are two sharp peaks with the same intensity that are always coming back towards the incoming light direction. A random shift may be added to the azimuthal direction to provide a randomized appearance. This simplified model produces visually acceptable results with greatly simplified rendering calculations and sufficient artist control over important glint properties, namely relative brightness over the secondary highlight and frequency of appearance. Thus,
N′TRT-G=cos(φ/2)
N′G=Igg′(γg2,Gangle−φ)
N′TRT=N′TRT-G+N′G
where Igis the relative intensity of glints over the intensity of the secondary highlight and γ2gis the azimuthal widths of the glints. Increasing the azimuthal widths increases the frequency of glint appearance, whereas decreasing the azimuthal widths reduces the frequency of glint appearance. Gangleis the half angle between the glints, which may be randomized for each hair strand between 30 and 45 degrees to provide a randomized appearance to the glints.

To provide color and brightness control for each component, it suffices to simply multiply each component by a scalar variable and a color variable. Thus,
ƒ′X=CXIXM′X(θ)N′X(φ)
where Xε{R, TT, TRT} and Cxand Ixare the color and intensity of component X, respectively. These values can be controlled manually, procedurally, or through painted maps.

Proceeding with step150ofFIG. 1, the components are recombined by adding them together and dividing by cos2to account for the projected solid angle of the specular cone. Thus, the following equation is used with the components described in step140:

fs′=∑X⁢fX′/cos2⁡(θ)
As a result, the final pseudo scattering function ƒ′sis derived for the single scattering case.

Unfortunately, single scattering is often inadequate to provide the correct perception of hair color, particularly for light colored hair. Thus, multiple scattering models are preferred to provide accurate representation of hair color. Beginning with step110ofFIG. 1, the exact behavior of hair with multiple scattered light shall be examined. However, to capture the exact behavior of multiple scattered light, brute force path tracing or ray tracing is required, which is computationally very expensive and requires a long time to converge to a result. Although alternative methods such as photon-mapping and grid-based approaches are available, they are still relatively computationally expensive.

However, by taking into consideration the physical properties of human hair, an approximation of the multiple scattering components can be provided by the Dual Scattering model, which is fast and relatively accurate. Thus, the Dual Scattering model will be adopted to apply the steps of diagram100inFIG. 1for multiple scattering. The Dual Scattering method approximates the multiple scattering function as a combination of two components, or global multiple scattering and local multiple scattering.

Global multiple scattering accounts for light reaching the neighborhood of the shading point, and is dependent on the orientation of all the hairs between the light source and the point. It requires calculating the forward scattering transmittance and spread of the light that reaches the shading point from all light sources. Global multiple scattering will be computed for different points separately.

Local multiple scattering approximates the scattering events within the local neighborhood of the shading point, and is only dependent on the longitudinal inclination of the hair strand at the shading point, assuming that all surrounding hairs around the shading region have the same orientation and are infinite.

Moving toFIG. 4a,FIG. 4apresents diagrams showing multiple scattering components of light as applied to a volume of hair, according to one embodiment of the present invention, wherein each of the subcomponents controls a different visually apparent characteristic of the volume of hair. Render410ashows the final result of the Dual Scattering method, render410bshows the single scattering components ƒs, render410cshows the average back scattering attenuation Ab, render410dshows the multiple backscattering distribution function for direct lighting fdirectback, render410eshows the multiple backscattering distribution function for indirect lighting fscatterback, render410fshows the average backscattering spread Sb, render410gshows single scattering for indirect lighting fsscatter, render410hshows the Fscatterterm, and render410ishows the Fdirectterm.

Proceeding with step120ofFIG. 1, the team of artists was again consulted to derive a desired list of controllable appearance properties. Unfortunately, step120is not straightforward for multiple scattering when compared to single scattering. The team of artists was presented with visualizations of all the terms involved in the computation of the final dual scattering model, as shown in renders410bthrough410iofFIG. 4a.

The results from the team of artists came up as two components:1) Forward Scattering component (F.S.), which includes the fsscatterterm and computes the light that scatters forward and maintains its forward directionality inside the hair volume. This component is particularly important in back-lit situations.2) Backscattering component (B.S.), which includes the terms fdirectbackand fscatterback. These are multiple backscattering distribution functions that represent the light that goes into the hair volume and comes back to the surface. fdirectbackcomputes this quantity for direct and fscatterbackcomputes this for indirect illumination. Both of these components are smooth Gaussian functions in the Dual Scattering model.

It should be noted that fscatterbackand fdirectbackare very similar quantities corresponding to the well-known fbackquantity. fdirectbackis being used in the computation of Fdirectterm while fscatterbackis being used in the computation of fscatterand accounts for the variance of forward scattering in the longitudinal directionsσƒf2, as shown in render420dand420einFIG. 4b.

Moving toFIG. 4b,FIG. 4bpresents visualizations of the Artist Friendly Controls (AFCs) as applied to a multiple scattering model of hair rendering, according to one embodiment of the present invention. Render420ashows the final rendering result ƒ′s, render420bshows the primary highlight component R′, render420cshows the secondary highlight component TRT′, render420dshows the transmission component TT′, render420eshows the backscattering component B.S.′, and render420fshows the forward scattering component F.S.′.

Proceeding with step130ofFIG. 1, since the visual components such as color, intensity, size, shape, and position of the decomposed components are already indirectly affected by the values chosen for the single scattering components, it may be counterproductive to simply override these values. Therefore, rather than overriding variables, adjustment control parameters are provided instead. The artist team provided the following AFCs:1) F.S.: Color adjust, intensity adjust2) B.S.: Color adjust, intensity adjust, longitudinal shift adjust, longitudinal width adjust
By setting these parameters to default non-adjusting values, the original result of the dual scattering model is the result. If, however, the artist wants to adjust particular parameters, the artist is enabled to do so using the above AFCs. As previously discussed, since steps120and130are subjective, the results may differ depending on the needs of the artists.

Proceeding with steps140and150ofFIG. 1, the original algorithm for the Dual Scattering model is utilized, substituting the single scattering component fsdirectwith the above described pseudo scattering function ƒ′sand embedding the defined artist controls from step130into the fdirectback, fscatterback, and fsscattercomponents. However since ƒ′sis only an approximation of the physical based ƒsand may therefore break physical energy conservation laws, unwanted artifacts such as blooming colors or disappearing objects may result. To adjust for this, the computations for the dual scattering model are instead calculated on the normalized version of the single scattering components, or ƒ′snorm:

fs′⁢⁢norm⁡(θ,ϕ)=fs′⁡(θ,ϕ)∫Ω⁢fs′⁡(θ′,ϕ′)⁢ⅆθ′⁢ⅆϕ′
where Ω is the full sphere around the shading point.

Combining all of the above, the pseudo code shown below implements steps140and150by reproducing the results of dual scattering with embedded artist controls.

The symbols used in the pseudo code are well known for the Dual Scattering algorithm, and include Ābfor the average backscattering attenuation,Δbfor the average longitudinal shift,σb2for the average backscattering variance, Tffor the front scattering transmittance, andσƒ2for the front scattering variance. MXGand NXGare the averaged forward scattered longitudinal and azimuthal scattering functions, respectively.

The terms M′xand N′xare the pseudo scattering functions corresponding to the longitudinal and azimuthal scattering functions respectively, as described above. Corresponding to the adjustments described above in step130, IForwardand IBackare control parameters for adjusting the intensity values, while CForwardand CBackare control parameters for adjusting the color values of the forward scattering and backscattering components respectively. Finally, βBackand αBackare control parameters for adjusting the longitudinal shift and the longitudinal width of the back scattering components.

One problem that arises is since the multiple scattering computations are based on the single scattering functions, there arises an inherent relationship between the components as multiple scattering is basically the effect of many single scattering events. As previously discussed, such coupling leads to unintuitive and undesirable behavior for art direction. To address this problem, two sets of parameters may be provided, one that feeds into the single scattering and one that feeds into the multiple scattering, which may be linked by default but also severed at will by artists.

Moving toFIG. 5,FIG. 5presents final display renders of a character under different lighting and viewpoints using a pseudo scattering function over a domain of Artist Friendly Controls (AFCs) as applied to hair, according to one embodiment of the present invention. As shown by renders510athrough510e, the newly developed shader using AFCs holds up well in different viewing angles and lighting conditions, which is not always the case with ad-hoc shaders, which may break down and show artifacts and anomalies in certain lighting situations.

According to preliminary user evaluations, the new shader using AFCs provides better art direction, lighting appearance, and photographic reference matching compared to physical based shaders or ad-hoc production shaders. Additionally, as example advantages of shaders according to various embodiment of the present invention, the rendering performance has been measured to be around 3.3 times faster than the ad-hoc production shader and 1.5 times faster than a physical based research shader. Moreover, shaders according to various embodiment of the present invention require less memory, with the production shader requiring 1.3 times more memory and the research shader requiring 1.6 times more memory. This leads to faster rendering turn-around times and allows production to proceed on more modest hardware, tighter budgets, and accelerated schedules.

Moving toFIG. 6,FIG. 6presents a diagram of a computer system by which a user can adjust Artist Friendly Controls (AFCs) in a shading system to create and display a render of a fiber or volume of fibers, such as hair, according to one embodiment of the present invention. Diagram600ofFIG. 6includes computer system610, display621, user625, and input device626. Computer system610includes processor611and memory612. Memory612includes rendering program615, rendering parameters616, object data617, frame data618, and rendered scene620.

For example, user625may comprise the end user or artist, input device626may comprise a keyboard, mouse, pen tablet, or other input device, and computer system610may comprise a workstation or server computer. While only a single computer system610is shown inFIG. 6, it is understood that computer system610may share data and processing resources with other servers, for example for distributed workload sharing.

Processor611may be executing rendering program615, which may comprise a three-dimensional graphics rendering system and user interface such as PhotoRealistic RenderMan by Pixar and Autodesk Maya. Using input device626, user625may manipulate the values stored in rendering parameters616, which may correspond to the Artist Friendly Controls (AFCs) as discussed above. Rendering program615may then use object data617, which may include object models and textures, and frame data618, which may include camera and lighting settings, to generate rendered scene620, which may comprise a still frame or an animated sequence of frames. Through the use of native or plug-in functionality, rendering program615may use a pseudo scattering function shader as described above for the rendering of hair and other fibers on characters and other objects. As previously described, similar pseudo scattering functions may be developed for other materials, which rendering program615may support as well. Rendered scene620may then be output to display621, where user625can review the rendering results. If user625deems the rendering results adequate, then the settings in memory612may be stored in a more permanent fashion, such as in non-volatile memory, to be rendered by rendering servers in high quality for movie applications, or to be used as asset data for real-time applications such as online gaming.

Moving toFIG. 7,FIG. 7shows a flowchart describing the steps, according to one embodiment of the present invention, by which a computer system provides for a user to adjust Artist Friendly Controls (AFCs) in a shading system to create and display a desired render of a single fiber, such as hair. While flowchart700is directed towards a single fiber, flowchart700may also be adapted to a volume of fibers or other materials, as described above. Certain details and features have been left out of flowchart700that are apparent to a person of ordinary skill in the art. For example, a step may comprise one or more substeps or may involve specialized equipment or materials, as known in the art. While steps710through750indicated in flowchart700are sufficient to describe one embodiment of the present invention, other embodiments of the invention may utilize steps different from those shown in flowchart700.

Referring to step710of flowchart700inFIG. 7and diagram600ofFIG. 6, step710of flowchart700comprises processor611of computer system610providing user625with control over defining values for subcomponents of a light scattering by one or more fibers, where each of the subcomponents controls a different visually apparent characteristic of the one or more fibers. Specifically, the one or more fibers may be one or more hair fibers. The one or more fibers may be stored as an object in object data617, and the values for the subcomponents may be stored in rendering parameters616. As previously described, rendering program615may implement a pseudo scattering function over a domain of Artist Friendly Controls (AFCs). Thus, for single scattering, the subcomponents may include R, TT, TRT as previously described, and TRT may be further decomposed into two subcomponents including (1) glints, and (2) the TRT excluding the glints. For multiple scattering, the subcomponents may further include F.S. and B.S., as previously described.

Referring to step720of flowchart700inFIG. 7and diagram600ofFIG. 6, step720of flowchart700comprises processor611of computer system610receiving, from user625, the values of each of the subcomponents of the light scattering by the one or more fibers from step710. For example, user625may use input device626to adjust such values by manually typing in values, by adjusting sliders or other user interface widgets, by providing a procedure or macro for procedurally generated values, or by using other methods to set the values. Since the AFCs are defined to be intuitive, decoupled, and meaningful, adjusting the values in step720leads to predictable and art directed visual changes in the shading of the fiber, providing user625with greater creative control.

Referring to step730of flowchart700inFIG. 7and diagram600ofFIG. 6, step730of flowchart700comprises processor611of computer system610storing the values of each of the subcomponents from step720into memory612. As previously described, the values may more specifically be stored within rendering parameters616, for future use by rendering program615.

Referring to step740of flowchart700inFIG. 7and diagram600ofFIG. 6, step740of flowchart700comprises processor611of computer system610combining the values stored in step730to determine pixel values of the single fiber or one or more fibers. Based on a desired representation of the color spectrum, a pixel may include a number of bits, such as bits representing RGB values. Rendering program615implements steps140and150fromFIG. 1, as previously described, to generate rendered scene620. More specifically, the values provided by user625and stored in memory612directly affect the specific visual parameters listed in step740. In a multiple scattering model, adjustment parameter values may also influence the visual result seen in rendered scene620, and separate values may be provided for the single and multiple scattering portions, as previously described.

Referring to step750of flowchart700inFIG. 7and diagram600ofFIG. 6, step750of flowchart700comprises processor611of computer system610displaying rendered scene620from step740on display621, where rendered scene620includes using the pixel values to display the single fiber or one or more fibers having the properties determined in step740, such as a color, an intensity, a longitudinal position and a longitudinal width of the one or more fibers. In other words, the render is sent to display621for user625to perceive and review. If the user is not satisfied with the result shown in display621, the user may return to step720to further adjust the values of the subcomponents until a desired aesthetic result is achieved.