20
Surface Signals for Surface Signals for Graphics Graphics John Snyder John Snyder Researcher Researcher 3D Graphics Group 3D Graphics Group Microsoft Research Microsoft Research

Surface Signals for Graphics John Snyder Researcher 3D Graphics Group Microsoft Research

Embed Size (px)

Citation preview

Page 1: Surface Signals for Graphics John Snyder Researcher 3D Graphics Group Microsoft Research

Surface Signals for GraphicsSurface Signals for Graphics

John SnyderJohn SnyderResearcherResearcher3D Graphics Group3D Graphics GroupMicrosoft ResearchMicrosoft Research

Page 2: Surface Signals for Graphics John Snyder Researcher 3D Graphics Group Microsoft Research

Why Surface Signals?Why Surface Signals?Why Surface Signals?Why Surface Signals?

Many useful types of surface signals:Many useful types of surface signals: texture map texture map [Catmull74, Blinn&Newell76][Catmull74, Blinn&Newell76] (color)(color) bump mapbump map [Max81][Max81] (normal) (normal) displacement map displacement map [Cook 84][Cook 84] (geometric offset) (geometric offset) geometry imagegeometry image (geometry) (geometry) bidirectional texture functionbidirectional texture function (precomputed shading) (precomputed shading) self-transfer textureself-transfer texture (spherical harmonic (spherical harmonic

coefs)coefs) ……

Simplicity of regular 2D imageSimplicity of regular 2D image

Support on current graphics hardware (e.g. pixel shaders)Support on current graphics hardware (e.g. pixel shaders)

Research questions:Research questions: How to generate and manipulate signals?How to generate and manipulate signals? What new graphics architectures?What new graphics architectures?

Many useful types of surface signals:Many useful types of surface signals: texture map texture map [Catmull74, Blinn&Newell76][Catmull74, Blinn&Newell76] (color)(color) bump mapbump map [Max81][Max81] (normal) (normal) displacement map displacement map [Cook 84][Cook 84] (geometric offset) (geometric offset) geometry imagegeometry image (geometry) (geometry) bidirectional texture functionbidirectional texture function (precomputed shading) (precomputed shading) self-transfer textureself-transfer texture (spherical harmonic (spherical harmonic

coefs)coefs) ……

Simplicity of regular 2D imageSimplicity of regular 2D image

Support on current graphics hardware (e.g. pixel shaders)Support on current graphics hardware (e.g. pixel shaders)

Research questions:Research questions: How to generate and manipulate signals?How to generate and manipulate signals? What new graphics architectures?What new graphics architectures?

Page 3: Surface Signals for Graphics John Snyder Researcher 3D Graphics Group Microsoft Research

Surface Signal Research ProjectsSurface Signal Research ProjectsSurface Signal Research ProjectsSurface Signal Research Projects

CreationCreationprecomputed radiance transferprecomputed radiance transfer ParameterizationParameterization

signal-specialized param.signal-specialized param.

RepresentationRepresentationgeometry imagesgeometry images

RenderingRenderingsignal-based signal-based

graphics architecturegraphics architecture

Page 4: Surface Signals for Graphics John Snyder Researcher 3D Graphics Group Microsoft Research

Motivation for Precomputed TransferMotivation for Precomputed TransferMotivation for Precomputed TransferMotivation for Precomputed Transfer

better light integration better light integration and light transportand light transport dynamic, area lights dynamic, area lights shadowing shadowing interreflectionsinterreflections

in real-timein real-time

point lightpoint light area lightarea light

area lighting,area lighting,no shadowsno shadows

area lighting,area lighting,shadowsshadows

Page 5: Surface Signals for Graphics John Snyder Researcher 3D Graphics Group Microsoft Research

Self-Transfer Signal (25D)Self-Transfer Signal (25D)Self-Transfer Signal (25D)Self-Transfer Signal (25D)

Basis Basis 1616

Basis Basis 1717

Basis Basis 1818

illuminateilluminate resultresult

......

......

Reduces shading to a Reduces shading to a 25D 25D dot product dot product (low-frequency lighting)(low-frequency lighting)

Page 6: Surface Signals for Graphics John Snyder Researcher 3D Graphics Group Microsoft Research

Self-Transfer Results (Diffuse)Self-Transfer Results (Diffuse)Self-Transfer Results (Diffuse)Self-Transfer Results (Diffuse)

No Shadows/Inter Shadows Shadows+InterNo Shadows/Inter Shadows Shadows+Inter

Page 7: Surface Signals for Graphics John Snyder Researcher 3D Graphics Group Microsoft Research

Self-Transfer Results (Glossy)Self-Transfer Results (Glossy) Self-Transfer Results (Glossy)Self-Transfer Results (Glossy)

No Shadows/Inter Shadows Shadows+InterNo Shadows/Inter Shadows Shadows+Inter

Page 8: Surface Signals for Graphics John Snyder Researcher 3D Graphics Group Microsoft Research

Self-Transfer DemoSelf-Transfer DemoSelf-Transfer DemoSelf-Transfer Demo

Page 9: Surface Signals for Graphics John Snyder Researcher 3D Graphics Group Microsoft Research

Geometry-basedGeometry-based(know geometry only)(know geometry only)

Signal-specializedSignal-specialized(know geometry+signal)(know geometry+signal)

Parameterization of Surface SignalsParameterization of Surface SignalsParameterization of Surface SignalsParameterization of Surface Signals

Page 10: Surface Signals for Graphics John Snyder Researcher 3D Graphics Group Microsoft Research

Measuring Parameterization QualityMeasuring Parameterization QualityMeasuring Parameterization QualityMeasuring Parameterization Quality

2D texture domain2D texture domain surface in 3Dsurface in 3D

linear maplinear map

singular values: singular values: γγ , , ΓΓ

Page 11: Surface Signals for Graphics John Snyder Researcher 3D Graphics Group Microsoft Research

Geometric Stretch MetricGeometric Stretch MetricGeometric Stretch MetricGeometric Stretch Metric

2D texture domain2D texture domain surface in 3Dsurface in 3D

linear maplinear mapTTTT

singular values: singular values: γγ , , ΓΓ

geometric stretch = geometric stretch = γγ22 + + ΓΓ22 Parameterize = minimize Parameterize = minimize surface integral of surface integral of geometric stretchgeometric stretch

Page 12: Surface Signals for Graphics John Snyder Researcher 3D Graphics Group Microsoft Research

geometric stretch: geometric stretch: γγff2 2 + + ΓΓff

22

signal stretch: signal stretch: γγhh2 2 + + ΓΓhh

22

geometric stretch: geometric stretch: γγff2 2 + + ΓΓff

22

signal stretch: signal stretch: γγhh2 2 + + ΓΓhh

22

Parameterize = minimize Parameterize = minimize surface integral of surface integral of

signalsignal stretch stretch

Signal Stretch MetricSignal Stretch MetricSignal Stretch MetricSignal Stretch Metric

ff

gg

domaindomain surfacesurface

signalsignal

hh = = ggff

Page 13: Surface Signals for Graphics John Snyder Researcher 3D Graphics Group Microsoft Research

Geometric stretch [Sander01]Geometric stretch [Sander01]Geometric stretch [Sander01]Geometric stretch [Sander01]

Conformal [Floater97]Conformal [Floater97]Conformal [Floater97]Conformal [Floater97]

Signal stretch [Sander02]Signal stretch [Sander02]Signal stretch [Sander02]Signal stretch [Sander02]

Page 14: Surface Signals for Graphics John Snyder Researcher 3D Graphics Group Microsoft Research

Geometric stretchGeometric stretch

Signal stretchSignal stretch

(64x64 texture)(64x64 texture)Results: Scanned ColorResults: Scanned ColorResults: Scanned ColorResults: Scanned Color

Page 15: Surface Signals for Graphics John Snyder Researcher 3D Graphics Group Microsoft Research

Results: Normal MapResults: Normal MapResults: Normal MapResults: Normal Map

Geometric stretchGeometric stretch Signal stretchSignal stretch

128x128 texture - multichart128x128 texture - multichart

Page 16: Surface Signals for Graphics John Snyder Researcher 3D Graphics Group Microsoft Research

Results: Precomputed Radiance TransferResults: Precomputed Radiance TransferResults: Precomputed Radiance TransferResults: Precomputed Radiance Transfer

25D signal – 256x256 texture25D signal – 256x256 texture

Geometric stretchGeometric stretch Signal stretchSignal stretch

Page 17: Surface Signals for Graphics John Snyder Researcher 3D Graphics Group Microsoft Research

3D graphics = 2D image processing?3D graphics = 2D image processing?3D graphics = 2D image processing?3D graphics = 2D image processing?

not quite not quite → use → use imagesimages but of but of surface signalssurface signals not not viewsviewsnot quite not quite → use → use imagesimages but of but of surface signalssurface signals not not viewsviews

• synthesize images from synthesize images from 3D surface descriptions3D surface descriptions run-time flexibilityrun-time flexibility – change view, lighting, rendering params – change view, lighting, rendering params

compactnesscompactness – single surface parameterization, not multiple views – single surface parameterization, not multiple views

high qualityhigh quality (global illumination) (global illumination) – resolution independence– resolution independence cheap creationcheap creation – no costly rigs & operator, easy to edit – no costly rigs & operator, easy to edit

• as preprocess, convert 3D descriptions to as preprocess, convert 3D descriptions to 2D image reps2D image reps ( (surface signalssurface signals) to accelerate run-time) to accelerate run-time

signals can be represented as signals can be represented as regular 2D imagesregular 2D images

rendering via rendering via general, programmable image processing opsgeneral, programmable image processing ops

Page 18: Surface Signals for Graphics John Snyder Researcher 3D Graphics Group Microsoft Research

Rendering FactorizationRendering FactorizationRendering FactorizationRendering Factorization

PreprocessPreprocess(slow)(slow)

Run-TimeRun-Time(fast)(fast)

• 3D surfaces (meshes)3D surfaces (meshes)

• 3D graphics: 3D graphics: ray tracing, Monte Carlo ray tracing, Monte Carlo integration, dynamics integration, dynamics simulation, encodingsimulation, encoding

• 2D images, streams2D images, streams

• 2D image processing2D image processingdecoding, interpolation / decoding, interpolation / decimation, programmable decimation, programmable pixel “shaders”, sample pixel “shaders”, sample gather gather

global illumination computation is too expensive from scratchglobal illumination computation is too expensive from scratch

surface surface signalssignalssurface surface signalssignals

Page 19: Surface Signals for Graphics John Snyder Researcher 3D Graphics Group Microsoft Research

EndEndEndEnd

Page 20: Surface Signals for Graphics John Snyder Researcher 3D Graphics Group Microsoft Research

PeoplePeoplePeoplePeople

Microsoft Research 3D Graphics Group:Microsoft Research 3D Graphics Group:Jim Blinn, Conal Elliot, Brian Guenter, Hugues Jim Blinn, Conal Elliot, Brian Guenter, Hugues Hoppe, Charles Loop, Don Mitchell, Kirk Hoppe, Charles Loop, Don Mitchell, Kirk Olynyk, Peter-Pike Sloan, John Snyder, Olynyk, Peter-Pike Sloan, John Snyder, Turner WhittedTurner Whitted

Collaborators:Collaborators:

Steven Gortler, Xianfeng Gu,Steven Gortler, Xianfeng Gu, Ziyad Hakura, Ziyad Hakura, Jesse Hall, Jan Kautz, Leonard McMillan, Jesse Hall, Jan Kautz, Leonard McMillan, Pedro Sander, Zoe WoodPedro Sander, Zoe Wood