Title: Interactive Editing and Modeling of Bidirectional Texture Functions
1Interactive Editing and Modeling of Bidirectional
Texture Functions
Solomon Boulos University of Utah
Jan Kautz University College London
2Introduction
- Bidirectional Texture Functions (BTFs)
- A representation for complex materials Dana99
- Collection of textures under many different
viewand light directions - 6D data structure 2D spatial, 2D view, 2D light
view top light top
view top light 50º
view 45º light 50º
view 50º light 60º
3Introduction
- Bidirectional Texture Functions
- Usually acquired from real materials, e.g.
Sattler03 - Include real-world effects (scattering,
occlusions, transparencies, parallax, ) - Very realistic
Lamp
Camera
Sample(on robotic arm)
4Introduction
- Acquisition of Bidirectional Texture Functions
- Is very expensive (time, setup, )
- University of Bonn BTFs have
- 81 view x 81 light images (6561 images)
- Takes several hours to capture
- Only 10 publicly available
5Introduction
- Acquisition of Bidirectional Texture Functions
- Is very expensive (time, setup, )
- University of Bonn BTFs have
- 81 view x 81 light images (6561 images)
- Takes several hours to capture
- Only 10 publicly available
Want better return on investment ?
Editing of BTFs Allows to create
variations from single BTF Create
BTF from flat texture
6Introduction
7Introduction
- How to edit BTFs?
- Everything is baked in
- No explicit knowledge of
- BRDFs
- Geometry
- Transparencies , etc.
- Extraction of these properties is
- Difficult
- How to support editing of high-level properties
8Related Work
- Most work focuses on
- BTF Acquisition Dana99,Sattler03,Koudelka03,
- BTF Rendering/Compression Sattler03,
Meseth04,Vasilescu04, - Very little on BTF editing
- Pasting BTFs onto surfaces Zhou05
- Self-similarity-based editing Dong05
- Structural editing of BTFs Mueller07
- BRDF editing Lawrence06, Colbert06
9Our BTF Editing Approach
- Simple operators
- Can be applied selectively (with selections)
- Enables powerful editing BTFShop
VIDEO
10Our BTF Editing Approach
- Philosophy
- Simple operators ? change material appearance
- Rely on simple aspects of material perception
- Contrast ? roughness Koenderink02
- Histograms ? roughness Ginneken99, Leung97
- Sharpness ? subsurface scattering Fleming04
- ? Enables simple operators to be effective
11Our BTF Editing Operators
- Operators
- E.g., color manipulation, blur/sharpen
- Work on certain dimensions
- The simpler the better
- Use raw data, avoid big inverse problems
- Exploit shape information, when appropriate
- Constrained to user selections
- E.g., highlight pixels, directional range
12Overview
- Shading
- Shadowing
- Geometry
- Global Effects
- Due to time only highlight one example each
13Overview
- Shading
- Shadowing
- Geometry
- Global Effects
- Low-level operators
- Blur / sharpen
- Color manipulation
- Give direct control of simple material properties
- Shading roughness
14Shading Changing Specularity
- Goal
- Specularity relates to frequencies in light-space
Ramamoorthi01
blur/sharpen in light-space
Light-dependencefor given view and location
Light-dependencefor given view and location
15Shading Changing SpecularityResults Part 1
(BTF computed from synthetic micro-geometry)
(BTF computed from synthetic micro-geometry)
16Shading Changing SpecularityResults Part 2
(Measured BTF)
17Shading Changing Roughness
?
18Shading Changing Roughness
- Observation
- Distribution of light vs. dark pixels relates to
roughness Pont and Koenderink 02 - Distribution can be changed with curve tool
- User-controlledcurve
- Remaps input to output intensities
19Original
(BTF )
synthetic micro-geometry
20Overview
- Shading
- Shadowing
- Geometry
- Global Effects
- More complex editing operations
- Requiring selections for effective modification
21Shading Changing Albedos
- Goal
- Do not want to explicitly extract albedos
- Propagate differences/ratios instead (in HSV)
originals
original
propagate
automaticallypropagated
user-modified
22Shading Changing Albedos
23Shadow Removal
- Goal
- Challenges
- How to find shadow areas?
- How to fill them in automatically?
24Shadow Removal Finding Shadow Areas
- User-assisted selection
- Fully-lit, frontal texture slice always
shadow-free - Check ratio of fully-lit frontal slice /
each of light-varying
frontal slices - If (scaled) ratio lt user-threshold pixel in
shadow
/
fully-lit, frontal
side-lit, frontal
ratio
thresholdapplied
25Shadow Removal Finding Shadow Areas
/
/
26Shadow Removal Finding Shadow Areas
Found Shadow Areas
27Shadow Removal Automatically Filling in Shadows
- Two-stage process
- Fill in selected areas with data from fully-lit
frontal texture (never contains shadows) - Adjust average brightness and saturation to match
surrounding area
28Shadow Removal Automatically Filling in Shadows
Original
29Shadow Removal Automatically Filling in Shadows
Selected Shadow Areas
30Shadow Removal Automatically Filling in Shadows
Shadow Areas Filled In From Fully-Lit, Frontal
Texture
31Shadow Removal Automatically Filling in Shadows
Brightness/Saturation Adjusted
32Shadow Removal Results
Label
Shading is preserved
Shadows Removed
Original
33Shadow Removal Results
Shadows Removed
Original
34Shadow Removal
- Limitation
- BTF slices contain spurious lighting variation
- Difficult to perform accurate adjustment
- Input data needs to be consistent
35Shadow Creation
- Easy to create new shadows
- Select new shadow areas
- Trace rays based on height field and light
directions (heightfield user-defined, or
extracted) - Darken areas using curve tool
36Shadow Creation
Original
37Shadow Creation
Heightfield for Shadows
Shadows Added
38Shadow Creation / Modification
- Easy to create new shadows
- Select new shadow areas
- Trace rays based on height field and light
directions (user-defined, or extracted) - Darken areas using curve tool
- Modification removal re-creation
39Overview
- Shading
- Shadowing
- Geometry
- Global Effects
- Now
- Editing operator requiring inferred information
40Geometry Parallax
- Parallax is common in complex materials
- Geometric point ? different (x,y)
41Geometry Parallax
- Shows up in BTF slices
- Consequences
- Spatial editing such as painting needs to take it
into account - Change of geometric structure ? warp in texture
space
Frontal Slice
Oblique Slice
Frontal Slice
Oblique Slice
Original Height
Increased Height
42Parallax Spatial Editing
-
-
-
Extract Heightfield (Shape from Shadows)
Unwarp Texture Slices (Removes Parallax, Aligns
Texture Slices)
Spatial Editing
Warp Texture Slices (Reintroduce Parallax)
43Parallax Spatial Editing Result
No Correction
Parallax Correction
44Geometric Modification
- Parallax Warp can also be used to impose
different geometric structure
Heightfield
45Local Geometric Appearance
- Parallax Warp
- Does not modify underlying shading
- Bump mapping Blinn78 modify local view and
light direction
Diffuse
Heightfield
Bump Mapped
46Local Geometric Appearance
- Use same idea for BTFs
- Rotate lookup directions w.r.t. heightfield
- Lookup values with rotated directions
- Store values again as BTF
47Local Geometric Appearance
Original BTF
Heightfield
48Thickness
- Goal modify apparent thickness
49Thickness
50Thickness
51Thickness
Stretch view directions down
52Apparent Thickness
- Can also edit apparent thickness
Original (BTF synthetic micro-geometry)
53Overview
- Shading
- Shadowing
- Geometry
- Global Effects
54Global Effects
- Asperity Scattering Koenderink03
- Glow at grazing angles
- Simulate using angular selection and curve tool
Fuzz Reference (BTF synth. micro-geo.)
No Fuzz (BTF synth. micro-geo.)
55Global Effects
- Subsurface Scattering
- E.g., increased brightness in concavities
- E.g., remove using selection and curve tool
Original
BTFShop
Reference(BTF synthetic micro-geo.)
56Overview
- Shading
- Shadowing
- Geometry
- Global Effects
- More tools / selections see paper
Edit Albedos
Modify Shadows
Edit Thickness
Edit Subsur. Scat.
57More Editing Results
58More Results
VIDEO
59Overview
- Shading
- Shadowing
- Geometry
- Global Effects
- More tools / selections see paper
60Modeling of BTFs
Single Texture
BTF Created
61Modeling of BTFs
Single Texture
BTF Created
62Modeling of BTFs
Single Texture
Created BTF
Reference BTF
63Modeling of BTFs
VIDEO
64BTFShop System
- Multi-threaded, tile-based architecture with
efficient out-of-core caching - Visual feedback in 2s (touch 5 data)
- Complete BTF (1.6GB data) minutes
65Discussion
- Approach works well for tweaking BTF appearance
- Shading, Shadowing, Geometry, and Global Effects
- Limitations
- Cannot turn bark into wool
- Resulting BTFs not physically correct
- Operators edit one effect at a time
66Conclusions
- Simple operators and selections ? surprisingly
effective - Mostly work on raw 6D data
- Infer properties when necessary
- BTFShop out-of-core (6D dataset)
- BTF
- Modification
- Creation from single textures
67Acknowledgements
- Pete Shirley
- Mary Williamson and Omari Dennis for PBRT tools
- Reviewers and referees
- University of Bonn and UCSD for BTF data
- NSF Career Award 0447561, Microsoft Research New
Faculty Fellowship, and Sloan Fellowship - University of Utah Brown Fellowship
- German Research Foundation Emmy-Noether
Fellowship - Code will be available at http//btfshop.sourcefor
ge.net