AL T A: A BRDF analysis library Laurent Belcour 1,2 , Pascal - - PowerPoint PPT Presentation

al t a a brdf analysis library
SMART_READER_LITE
LIVE PREVIEW

AL T A: A BRDF analysis library Laurent Belcour 1,2 , Pascal - - PowerPoint PPT Presentation

AL T A: A BRDF analysis library Laurent Belcour 1,2 , Pascal Barla 2 , Romain Pacanowski 3,2 1 Ligum, Universit de Montral 2 Inria Bordeaux Sud-Ouest 3 LP2N, CNRS


slide-1
SLIDE 1

AL T A: A BRDF analysis library

Laurent ¡Belcour1,2, ¡Pascal ¡Barla2, ¡Romain ¡Pacanowski3,2 ¡ ¡

1 ¡Ligum, ¡Université ¡de ¡Montréal ¡ 2 ¡Inria ¡Bordeaux ¡Sud-­‑Ouest ¡ 3 ¡LP2N, ¡CNRS ¡

¡

slide-2
SLIDE 2

Motivations & Goals ¡

slide-3
SLIDE 3

Motivations & Goals ¡

slide-4
SLIDE 4

The ‘‘BRDF Map’’ ¡

Ashikmin ¡& ¡Shirley ¡[2000] ¡ Cook ¡& ¡Torrance ¡[1982] ¡ Ward ¡[1992] ¡ Blinn ¡[1977] ¡

RaOonal ¡BRDFs ¡[Pacanowski ¡et ¡al. ¡2012] ¡

SGD ¡[Bagher ¡et ¡al. ¡2012] ¡

ABC ¡[Löw ¡et ¡al. ¡2012] ¡

GGX ¡[Walter ¡et ¡al ¡.2007] ¡

He ¡et ¡al. ¡[1991] ¡

Lafortune ¡et ¡al. ¡[1997] ¡

Schlick ¡[1994] ¡

Oren ¡& ¡Nayar ¡[1994] ¡

Neumann ¡and ¡Neumann ¡[1996] ¡

Beard-­‑Maxwel ¡[1973] ¡

Hanrahan ¡& ¡Kruger ¡[1993] ¡ Granier ¡& ¡Heidrich ¡[2003] ¡

Ashikmin ¡et ¡al. ¡[2000] ¡

slide-5
SLIDE 5

Motivations & Goals ¡

§ Understanding ¡BRDF ¡

  • 4D ¡space ¡is ¡complex ¡to ¡visualize ¡
  • EsOmaOng ¡model ¡parameters ¡from ¡data ¡is ¡hard ¡

§ Available ¡tools ¡are ¡limited ¡

  • Tools ¡in ¡CG ¡are ¡mostly ¡for ¡preview ¡
  • Tools ¡in ¡other ¡fields ¡are ¡specialized ¡

(Gwyddion, ¡MiePlot, ¡…) ¡

BRDF ¡Explorer ¡ BRDFLab ¡

slide-6
SLIDE 6

Motivations & Goals ¡

§ Heterogeneous ¡measurements ¡

  • plasOcs ¡and ¡metals ¡mostly ¡
  • different ¡sampling ¡density ¡
  • a ¡few ¡under ¡sampled ¡anisotropic ¡BRDF ¡

§ Heterogeneous ¡data ¡formats ¡

  • binary ¡/ ¡text ¡
  • various ¡parametrizaOons ¡
  • incomplete/extrapolated ¡data ¡

CUReT ¡ MERL ¡ Cornell ¡

slide-7
SLIDE 7

Introducing AL T A ¡

§ Open-­‑source ¡C++ ¡Library ¡

  • Comparison ¡of ¡models ¡(fihng ¡& ¡approx.) ¡
  • Analysis ¡of ¡data ¡
  • Cross ¡plaiorm ¡

§ Plugins ¡mechanism ¡

  • Easy ¡to ¡extend ¡
  • Interact ¡with ¡exisOng ¡(BRDF ¡Explorer) ¡
slide-8
SLIDE 8

AL T A overview ¡

CompaOble ¡data ¡

MERL ¡ ASTM ¡

Fijers ¡

CERES ¡ Eigen ¡ IpOpt ¡

quadra&c ¡ ¡ programming ¡ nonlinear ¡

  • p&miza&on ¡

Matlab ¡ QuadProg++ ¡

Tools ¡

Data ¡interpolaOon ¡ Moment ¡analysis ¡

CompaObility ¡ ¡ ¡

Matlab ¡ GLSL ¡

BRDF ¡Models ¡or ¡ ¡FuncOons ¡

[Low ¡et ¡al. ¡2012] ¡ [Pacanowski ¡et ¡al. ¡2012] ¡ [Beckmann ¡& ¡Spizzchino ¡1987] ¡ [Ward ¡199X] ¡ [Blinn ¡199X] ¡ [Lafortune ¡et ¡al. ¡2012] ¡

slide-9
SLIDE 9

AL T A Architecture ¡

data ¡plugin ¡ BRDF ¡plugin ¡ fijer ¡plugin ¡ data ¡plugin ¡ BRDF ¡plugin ¡ fijer ¡plugin ¡

dynamic ¡library ¡ .so, ¡.dll, ¡.dylib ¡

program ¡ ¡

binary ¡executable ¡ measurements ¡ parameters ¡ configuraOon ¡ data ¡ shader ¡ configuraOon ¡

plugin ¡manager ¡

linked ¡with ¡core ¡

slide-10
SLIDE 10

Usage example: data conversion ¡

gold.binary

data2data ¡ EXR ¡plugin ¡ MERL ¡plugin ¡

slide-11
SLIDE 11

Usage example: data conversion ¡

gold.binary

data2data ¡

EXR ¡plugin ¡

MERL ¡plugin ¡

laurent$ ./build/data2data --input ~/Research/Data/Merl/gold- metallic-paint.binary --in-data ./build/libdata_merl.dylib --

  • utput ../data/2d/merl/gold-met.exr --out-data ./build/

libdata_brdf_slice.dylib ¡

slide-12
SLIDE 12

RaOonal ¡fijer ¡ plugin ¡ Chebychev ¡ plugin ¡

gold.brdf

Fitting a rational function ¡

data2brdf ¡ EXR ¡plugin ¡

slide-13
SLIDE 13

Comparing data and fitting results ¡

input ¡BRDF ¡slice ¡ conversion ¡from ¡BRDF ¡ file ¡to ¡data ¡file ¡using ¡brdf2data

gold.brdf

brdf2data ¡

EXR ¡plugin ¡ Chebychev ¡ plugin ¡

slide-14
SLIDE 14

XML ¡and ¡scripOng ¡capabiliOes ¡

§ Each ¡program ¡has ¡a ¡command ¡line ¡

§ ConcatenaOng ¡programs ¡

  • Create ¡complex ¡processes ¡
  • Can ¡be ¡automated ¡using ¡bash ¡scripts ¡

§ But ¡.. ¡

  • OS ¡dependent ¡
  • Not ¡ideal ¡for ¡sharing ¡

data2brdf ¡ data2data ¡ brdf2data ¡

gold.binary gold-rat.exr

slide-15
SLIDE 15

XML ¡and ¡scripOng ¡capabiliOes ¡

data2brdf ¡ data2data ¡ brdf2data ¡

gold.binary gold-rat.exr

<?xml version="1.0"?> <alta> <action name=”data2data">
 <!-- Input and output arguments --> <input name="gold.binary" />
 <output name="gold-metallic.exr" /> <!-- Define the data plugin to use --> <plugin name=“in-data“ name=”data_merl" /> <plugin name=“out-data“ name=”data_brdf_slice" /> </action> <action name="data2brdf">
 <!-- Input and output arguments --> <input name="gold-metallic.exr" />
 <output name="gold-metallic.brdf" /> <!-- Define the function to use -->
 <function name=”rational_function_chebychev" /> <!-- Define the ftting procedure to use --> <fitter name=”rational_fitter_parallel" /> </action> <action name=”brdf2data">
 <!-- Input and output arguments --> <input name="gold-metallic.brdf" />
 <output name="gold-rat.exr" /> <!-- Define the data plugin to use --> <plugin name=“data“ name=”data_brdf_slice" /> </action> </alta>

slide-16
SLIDE 16

XML ¡and ¡scripOng ¡capabiliOes ¡

RaOonal ¡fit, ¡with ¡62 ¡coeffs ¡ MERL ¡data ¡

data2brdf ¡ data2data ¡ brdf2data ¡

BRDF ¡slice ¡

slide-17
SLIDE 17

XML ¡for ¡nonlinear ¡fihng ¡

<?xml version="1.0"?> <alta> <action name=”data2data">
 <!-- Input and output arguments --> <input name="gold-metallic-paint.binary" />
 <output name="gold-metallic.exr" /> <!-- Define the data plugin to use --> <plugin name=“in-data“ name=”data_merl" /> <plugin name=“out-data“ name=”data_brdf_slice" /> </action> <action name="data2brdf">
 <!-- Input and output arguments --> <input name="gold-metallic.exr" />
 <output name="gold-metallic.brdf" /> <!-- Define the function to use -->
 <function name=”nonlinear_function_beckmann" /> <!-- Define the ftting procedure to use --> <fitter name=”nonlinear_fitter_ceres" /> </action> <action name=”brdf2brdf">
 <!-- Input and output arguments --> <input name="gold-metallic.brdf" />
 <output name="gold-metallic-shader.brdf" /> <!-- Define the data plugin to use --> <plugin name=“export“ name=”explorer" /> </action> </alta>

data2brdf ¡ data2data ¡ brdf2brdf ¡

gold.binary gold-metallic-shader.brdf

slide-18
SLIDE 18

XML ¡and ¡scripOng ¡capabiliOes ¡

Beckmann ¡fit ¡from ¡the ¡slice ¡ MERL ¡data ¡

data2brdf ¡ data2data ¡ brdf2brdf ¡

BRDF ¡slice ¡

slide-19
SLIDE 19

AL ALTA NEEDS YOU A NEEDS YOU

slide-20
SLIDE 20

What can I do ? ¡

§ Try ¡it ¡and ¡give ¡us ¡feedback! ¡ § Write ¡XML ¡scripts ¡ § Write ¡plugins ¡

  • Develop ¡your ¡new ¡BRDF ¡model ¡
  • Add ¡your ¡data ¡and ¡analyze ¡it ¡

§ Write ¡programs ¡

§ Provide ¡new ¡features ¡for ¡the ¡community ¡

slide-21
SLIDE 21

Future Work ¡

§ Web ¡vitrine ¡for ¡BRDFs ¡or ¡BxDFs ¡

  • Share ¡your ¡data, ¡funcOons ¡
  • get ¡automaOc ¡comparisons ¡with ¡state ¡of ¡the ¡art ¡

techniques ¡

  • Online ¡sharing ¡ ¡of ¡the ¡comparisons ¡results ¡/ ¡graphics ¡

§ MulOple ¡language ¡interface ¡to ¡ALTA ¡ ¡

  • Java, ¡C#, ¡Python, ¡R, ¡Matlab, ¡Octave… ¡(possible ¡with ¡SWIG) ¡

§ High ¡(> ¡4D) ¡dimension ¡speed ¡improvements ¡

slide-22
SLIDE 22

Conclusion ¡

§ Already ¡available ¡ ¡

  • funcOonal ¡for ¡research ¡projects ¡
  • and ¡can ¡be ¡use ¡commercially! ¡

§ Support ¡ ¡

§ for ¡various ¡OS ¡ ¡(MacOS ¡X, ¡Windows, ¡Linux) ¡ § for ¡various ¡solvers ¡

¡ § Need ¡feedback ¡from ¡companies ¡

slide-23
SLIDE 23

Thank you ! ¡

http://alta.gforge.inria.fr

SOURCE CODE, TUTORIALS AND DOCUMENT A TION ARE ALREADY A V AILABLE ONLINE