Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants,...
Transcript of Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants,...
![Page 1: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/1.jpg)
Artistic Stylization and Rendering
Aaron Hertzmann Adobe Research
San Francisco
![Page 2: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/2.jpg)
class Nullspace implements Constants, Cloneable{ /** The rows of the nullspace */ Vector rows = new Vector();
/** A list of the variables currently contained in the nullspace */ Vector variables = new Vector();
/** Add a constraint to the nullspace * * @param c The new constraint * @return True if the new constraint is already consistent with the * existing nullspace */
boolean add(Constraint c) { // Convert the Constraint into a Row // do this first to combine equivalent angles; might zero Row newRow = new Row(c);
// Check if c contains any variables that the nullspace doesn't // If so, add them for(int i=0;i<newRow.sources.size();i++) { Object src = newRow.sources.elementAt(i);
if (src instanceof AngleMeasure) src = ((AngleMeasure)src).getEquivalent();
if (variables.indexOf(src) < 0) addVariable(src); }
int nk = rows.size(); // n-k = num vars - num constraints int[] Nx = new int[nk]; boolean zero = true;
int pivot = -1;
// compute N * x, where N is the nullspace and x is the new row
for(int i=0;i<nk;i++) { Nx[i] = Row.dot((Row)rows.elementAt(i),newRow); if (Nx[i] != 0) { zero = false; pivot = i; } }
// test if the new constraint was already consistent
if (zero) return true;
![Page 3: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/3.jpg)
![Page 4: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/4.jpg)
![Page 5: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/5.jpg)
![Page 6: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/6.jpg)
![Page 7: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/7.jpg)
Litwinowicz1997
![Page 8: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/8.jpg)
Input Image
![Page 9: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/9.jpg)
![Page 10: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/10.jpg)
![Page 11: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/11.jpg)
![Page 12: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/12.jpg)
Hertzmann, SIGGRAPH 1998
![Page 13: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/13.jpg)
Hertzmann, NPAR 2000
![Page 14: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/14.jpg)
![Page 15: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/15.jpg)
Non-photorealistic rendering: computer graphics and animation inspired by natural artistic media
![Page 16: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/16.jpg)
1. Scientific models for art
Research goals
![Page 17: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/17.jpg)
2. Rendering algorithms
Research goals
![Page 18: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/18.jpg)
3. New artistic tools
Research goals
![Page 19: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/19.jpg)
The development of art and technology have always gone hand-in-hand
![Page 20: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/20.jpg)
3D Non-Photorealistic Rendering
Smooth surface Occluding contours Stylized rendering
![Page 21: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/21.jpg)
Occluding Contours
Weiss 1966
![Page 22: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/22.jpg)
Suggestive Contours
DeCarlo et al. SIGGRAPH 2003
Camera view Contours Contours+SC
![Page 23: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/23.jpg)
Studies on line drawing
Cole et al. SIGGRAPH 2008
![Page 24: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/24.jpg)
Stylized Contour Algorithms
[Hertzmann and Zorin 2000]
[Grabli et al. 2010]
[Kalnins et al. 2003]
[Buchholz et al. 2011][Eisemann et al. 2008]
![Page 25: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/25.jpg)
Bénard et al. NPAR 2012
![Page 26: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/26.jpg)
Disney’s Paperman
![Page 27: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/27.jpg)
Procedural methods
Pro: lovely results,
very controllable
Cons: hard to design styles, complex to implement
![Page 28: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/28.jpg)
What is texture?
![Page 29: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/29.jpg)
![Page 30: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/30.jpg)
What is texture?
![Page 31: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/31.jpg)
Early Texture models
Haralick 1973
![Page 32: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/32.jpg)
Higher-Order Statistics
Portilla and Simoncelli 2000
![Page 33: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/33.jpg)
Higher-Order Statistics
Portilla and Simoncelli 2000
![Page 34: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/34.jpg)
Higher-Order Statistics
Portilla and Simoncelli 2000
![Page 35: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/35.jpg)
Higher-Order Statistics
Portilla and Simoncelli 1999
![Page 36: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/36.jpg)
Patch-Based Texture
Efros and Leung 1999
Input texture Output texture
![Page 37: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/37.jpg)
Patch-Based Texture
Efros and Leung 1999
Input texture Output texture
![Page 38: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/38.jpg)
Input texture Output texture
Efros and Leung 1999, Wei and Levoy 2000
![Page 39: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/39.jpg)
Results
Efros and Leung 1999, Wei and Levoy 2000
![Page 40: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/40.jpg)
Curve stylization
![Page 41: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/41.jpg)
Curve Propagation
Frame 1
?Frame 2
![Page 42: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/42.jpg)
Image Analogies
Goal: Process an image by example
?: :::
B B’A A’Hertzmann et al. SIGGRAPH 2001
![Page 43: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/43.jpg)
:A’
:
::A
B’BHertzmann et al. SIGGRAPH 2001
![Page 44: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/44.jpg)
:
:A’A
B’B
::
Hertzmann et al. SIGGRAPH 2001
![Page 45: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/45.jpg)
Blur
A A’
B B’Hertzmann et al. SIGGRAPH 2001
![Page 46: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/46.jpg)
Superresolution
Hertzmann et al. SIGGRAPH 2001
![Page 47: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/47.jpg)
Texture transfer
A A’
(same texture)
B Closer to texture Closer to photo
B’s
![Page 48: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/48.jpg)
![Page 49: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/49.jpg)
Color channels
Input image
Luminance Color channels
![Page 50: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/50.jpg)
Color channels
Luminance Blurry color
![Page 51: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/51.jpg)
Color channels
Blurry luminance Color channels
![Page 52: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/52.jpg)
Color transfer
Example luminanceInput luminanceInput photo
Input colors Output luminance
+ Outputimage
![Page 53: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/53.jpg)
![Page 54: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/54.jpg)
![Page 55: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/55.jpg)
![Page 56: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/56.jpg)
![Page 57: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/57.jpg)
![Page 58: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/58.jpg)
A A’
B B’
![Page 59: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/59.jpg)
![Page 60: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/60.jpg)
![Page 61: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/61.jpg)
:
A A’
:
B B’
::
![Page 62: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/62.jpg)
:
A A’
B
::
B’
:
![Page 63: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/63.jpg)
![Page 64: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/64.jpg)
![Page 65: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/65.jpg)
Image Analogies for Animation
Bénard et al. SIGGRAPH 2013
![Page 66: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/66.jpg)
Illumination-GuidedExample-BasedStylizationof3DRenderings
StyLit
1CTUinPrague,FEE 2AdobeResearch
JakubFišer1
EliShechtman2
OndřejJamriška1
PaulAsente2
DanielSýkora1
MichalLukáč1
JingwanLu2
![Page 67: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/67.jpg)
Neural texture
![Page 68: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/68.jpg)
Can we model statistical textures with neural networks?
![Page 69: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/69.jpg)
Texture synthesis
Gatys et al., NIPS 2015
![Page 70: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/70.jpg)
Texture synthesis
Gatys et al., NIPS 2015
![Page 71: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/71.jpg)
Neural stylization
![Page 72: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/72.jpg)
Neural Style Transfer
![Page 73: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/73.jpg)
Results
![Page 74: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/74.jpg)
![Page 75: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/75.jpg)
Where are we?
Procedural NPR Patch-Based (Analogies)
Neural
How do we get the best of each?
![Page 76: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/76.jpg)
Adding control to neural stylization
![Page 77: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/77.jpg)
Color Control - Color Preservation
Gatys et al., arXiv 2016
![Page 78: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/78.jpg)
Color Preservation
![Page 79: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/79.jpg)
Color Preservation
![Page 80: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/80.jpg)
Color Control - Luminance Style Transfer
(a) (b)
(c) (d)
(e) (f)
Stylize
Gatys et al., arXiv 2016
![Page 81: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/81.jpg)
Color Preservation
![Page 82: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/82.jpg)
Spatial Control
Gatys et al., arXiv 2016
![Page 83: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/83.jpg)
Spatial Control
Gatys et al., arXiv 2016
![Page 84: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/84.jpg)
Spatial Control
Guidance Channels
No control
![Page 85: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/85.jpg)
Spatial Control
Gatys et al., arXiv 2016
![Page 86: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/86.jpg)
Neural animation
![Page 87: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/87.jpg)
Where are we?
Procedural NPR Patch-Based (Analogies)
Neural
Open question: How do we get the best of each?
![Page 88: Artistic Stylization and Rendering - GitHub Pages€¦ · class Nullspace implements Constants, Cloneable {/** The rows of the nullspace */ Vector rows = new Vector(); /** A list](https://reader036.fdocuments.es/reader036/viewer/2022071512/6131e3281ecc515869450488/html5/thumbnails/88.jpg)
Open problemsHow do we author images?
Learning style from large datasets
Detailed control of style
Creating 3D animation
Making the details look good
Make the fast methods better
What is style? What is texture?