computer-generated watercolor curtis, anderson, seims, fleischer, & salesin siggraph 1997...
TRANSCRIPT
Computer-Generated Computer-Generated WatercolorWatercolor
Curtis, Anderson, Seims, Fleischer, & Curtis, Anderson, Seims, Fleischer, & SalesinSalesin
SIGGRAPH 1997SIGGRAPH 1997
presented by Dave Edwardspresented by Dave Edwards
MotivationMotivation
Trend toward nonphotorealistic renderingTrend toward nonphotorealistic rendering– D. Small: Watercolor on a Connection MachineD. Small: Watercolor on a Connection Machine– Commercial softwareCommercial software– Q. Guo & T. Kunii: Ink diffusion through paperQ. Guo & T. Kunii: Ink diffusion through paper– Animating the fluid dynamics of waterAnimating the fluid dynamics of water– Effects of water flow on surface appearanceEffects of water flow on surface appearance
Watercolor exhibits beauty & uniquenessWatercolor exhibits beauty & uniqueness
Simulating WatercolorSimulating Watercolor
Simulation based onSimulation based on– Physical nature of watercolorPhysical nature of watercolor– Artistic effects of watercolorArtistic effects of watercolor
Ultimate goalUltimate goal– Result of simulation should be realisticResult of simulation should be realistic
Watercolor MaterialsWatercolor Materials
Watercolor paintWatercolor paint– Pigment particlesPigment particles– BinderBinder– SurfactantSurfactant
Watercolor paperWatercolor paper– Linen or cottonLinen or cotton– SizingSizing
Watercolor EffectsWatercolor Effects
Dry-brushDry-brush– Paint applied to raised areas of paperPaint applied to raised areas of paper
RealReal SimulatedSimulated
Watercolor EffectsWatercolor Effects
Edge DarkeningEdge Darkening– Pigment migrates toward edges of wet Pigment migrates toward edges of wet
surfacesurfaceRealReal SimulatedSimulated
Watercolor EffectsWatercolor Effects
BackrunsBackruns– Spreading water moves pigment on damp Spreading water moves pigment on damp
surfacesurfaceRealReal SimulatedSimulated
Watercolor EffectsWatercolor Effects
GranulationGranulation– More pigment settles in lower areas on More pigment settles in lower areas on
paperpaperRealReal SimulatedSimulated
Watercolor EffectsWatercolor Effects
Flow PatternsFlow Patterns– Wet paper allows pigment to spread freelyWet paper allows pigment to spread freely
RealReal SimulatedSimulated
Watercolor EffectsWatercolor Effects
GlazingGlazing– Thin layers of new paint added atop old dry Thin layers of new paint added atop old dry
layerslayersRealReal SimulatedSimulated
Simulation OverviewSimulation Overview
Image represented by 2-D grid of cellsImage represented by 2-D grid of cells Each brushstroke stored in Each brushstroke stored in glazeglaze data struct data struct
– Stores pigment concentration per image cellStores pigment concentration per image cell Software creates glazes by simulatingSoftware creates glazes by simulating
– Fluid flow over paperFluid flow over paper– Pigment movement in fluidPigment movement in fluid– Fluid diffusion through paperFluid diffusion through paper
Glazes combined into single imageGlazes combined into single image– Optical combination using Kubelka-Munk modelOptical combination using Kubelka-Munk model
Paper RepresentationPaper Representation
Paper attributes (per cell)Paper attributes (per cell)– HeightHeight– Fluid capacityFluid capacity
Paper surface texture examples:Paper surface texture examples:
Simulation DataSimulation Data
Store each of the following per cell:Store each of the following per cell:– Wet-area masksWet-area masks– Water velocityWater velocity– Water pressureWater pressure– Paper saturationPaper saturation– Pigment concentrationPigment concentration
Free in waterFree in water Deposited on paperDeposited on paper
Watercolor SimulationWatercolor Simulation
Three-layer modelThree-layer model
Watercolor SimulationWatercolor Simulation
Simulate fluid & pigment movement in Simulate fluid & pigment movement in looploop– Move water on surface of paperMove water on surface of paper– Move pigment between cellsMove pigment between cells– Adsorb pigment into paper & desorb into Adsorb pigment into paper & desorb into
waterwater– Expand wet portion of paper through Expand wet portion of paper through
diffusiondiffusion– Repeat for each time stepRepeat for each time step
Water MovementWater Movement
ConditionsConditions– Water stays within wet-area maskWater stays within wet-area mask– Water should flow away from concentrated Water should flow away from concentrated
areasareas– Flow should be damped (no sloshing)Flow should be damped (no sloshing)– Flow should be affected by paper contoursFlow should be affected by paper contours– Local changes lead to global effectsLocal changes lead to global effects– Flow toward edges (produce edge Flow toward edges (produce edge
darkening)darkening)
Pigment MovementPigment Movement
Based onBased on– Water velocityWater velocity– Free pigment concentrationFree pigment concentration
Each cell distributes pigment to Each cell distributes pigment to neighborsneighbors
Simplified equation:Simplified equation:
– vvjiji = water velocity between cell = water velocity between cell jj and cell and cell ii
– ppii = pigment concentration at cell = pigment concentration at cell ii
),0max( jijii vppp oldoldnew
Adsorption & DesorptionAdsorption & Desorption
Pigments deposited & picked up againPigments deposited & picked up again Rates based on global constantsRates based on global constants
– Pigment densityPigment density– Staining powerStaining power
Can also be based on paper heightCan also be based on paper height– GranulationGranulation
Diffusion & EffectsDiffusion & Effects
BackrunsBackruns– Water absorbed and diffused through paperWater absorbed and diffused through paper– Cells transfer diffused water to neighborsCells transfer diffused water to neighbors– Water saturation stored for each cellWater saturation stored for each cell
Wet-area mask grows based on saturation Wet-area mask grows based on saturation thresholdthreshold
Dry-brushDry-brush– User can specify height maskUser can specify height mask
Rendering a SimulationRendering a Simulation
Kubelka-Munk optical modelKubelka-Munk optical model– Glazes have absorption & scattering Glazes have absorption & scattering
coefficientscoefficients– One of each coefficient for R, G, and BOne of each coefficient for R, G, and B– Specified interactivelySpecified interactively
User sets pigment color on white & black User sets pigment color on white & black backgroundsbackgrounds
Coefficients calculated from these colorsCoefficients calculated from these colors
Pigment ExamplesPigment Examples
SwatchesSwatches
Compositing GlazesCompositing Glazes
Calculate glaze’s reflectance & transmittanceCalculate glaze’s reflectance & transmittance– Based on absorption & scattering coefficientsBased on absorption & scattering coefficients– Each value has an R, G, and B componentEach value has an R, G, and B component
Calculate total reflectance & transmittanceCalculate total reflectance & transmittance– Based on refl. & trans. from each glaze in cellBased on refl. & trans. from each glaze in cell– Glaze thickness is also taken into accountGlaze thickness is also taken into account
Sum of free & deposited pigment concentrationsSum of free & deposited pigment concentrations
Total reflectance values used to render cellTotal reflectance values used to render cell
ApplicationsApplications
““Interactive” paintingInteractive” painting– User specfies intial conditions for simulationUser specfies intial conditions for simulation
Water, wet-area mask, & pigment concentrationWater, wet-area mask, & pigment concentration Height mask for dry-brush effects is optionalHeight mask for dry-brush effects is optional
– Simulation parameters can be changedSimulation parameters can be changed Can’t run simulation in real-timeCan’t run simulation in real-time Can calculate K-M model in real-timeCan calculate K-M model in real-time
ApplicationsApplications
Automatic watercolorizationAutomatic watercolorization– Based on digital reference imageBased on digital reference image– User specifies pigments & object mattesUser specifies pigments & object mattes– Color SeparationColor Separation
Software calculates ideal final pigment concentrationSoftware calculates ideal final pigment concentration
– Brushstroke planningBrushstroke planning Software adds water or pigment during simulationSoftware adds water or pigment during simulation
– Approximates original image with watercolor Approximates original image with watercolor stylestyle
– Also works for synthetic imagesAlso works for synthetic images
Future WorkFuture Work
Additional watercolor effectsAdditional watercolor effects Completely automatic watercolorizationCompletely automatic watercolorization Generalization of physical effectsGeneralization of physical effects Animation coherenceAnimation coherence