CommonSurfaceShader Revisited: Improvements and...

23
© Fraunhofer IGD Karsten Schwenk, Yvonne Jung, Gerrit Voß, Timo Sturm, Johannes Behr CommonSurfaceShader Revisited: Improvements and Experiences

Transcript of CommonSurfaceShader Revisited: Improvements and...

Page 1: CommonSurfaceShader Revisited: Improvements and Experiencesweb3d2012.web3d.org/presentations/session3/pres.pdf · PowerPoint-Präsentation Author: Schaub, Jutta Created Date: 8/16/2012

© Fraunhofer IGD

Karsten Schwenk, Yvonne Jung, Gerrit Voß, Timo Sturm, Johannes Behr

CommonSurfaceShader Revisited: Improvements and Experiences

Page 2: CommonSurfaceShader Revisited: Improvements and Experiencesweb3d2012.web3d.org/presentations/session3/pres.pdf · PowerPoint-Präsentation Author: Schaub, Jutta Created Date: 8/16/2012

© Fraunhofer IGD

Introduction

Why CommonSurfaceShader?

The original CommonSurfaceShader

Improvements

Energy conservation

Anisotropy

Layered materials

Open Problems

Conclusion

Outline

2

IGD

_en.p

ptx

Fraunhofer IGD, April 4, 2012

Page 3: CommonSurfaceShader Revisited: Improvements and Experiencesweb3d2012.web3d.org/presentations/session3/pres.pdf · PowerPoint-Präsentation Author: Schaub, Jutta Created Date: 8/16/2012

© Fraunhofer IGD

Material, Texture, etc.

Portable, easy to specify

Not powerful enough to model modern features

… at least not intuitively

Shaders

Very powerful

Not very portable

CommonSurfaceShader

Solid default material

Portable and expressive

Introduction – Why CommonSurfaceShader

3

IGD

_en.p

ptx

Fraunhofer IGD, April 4, 2012

Page 4: CommonSurfaceShader Revisited: Improvements and Experiencesweb3d2012.web3d.org/presentations/session3/pres.pdf · PowerPoint-Präsentation Author: Schaub, Jutta Created Date: 8/16/2012

© Fraunhofer IGD

“Declarative Surface Shader“

Shader in X3D‘s node hierarchy

But no explicit code, just data fields with fixed semantics

<Appearance>

<CommonSurfaceShader

diffuseFactor='.2 .2 .2' specularFactor='1 0 1' shininessFactor='.8'>

<SurfaceShaderTexture containerField='diffuseTexture'>

<TextureTransform2D scale='10 10'/>

<ImageTexture url='bongo_karl.jpg'/>

</SurfaceShaderTexture>

</CommonSurfaceShader>

</Appearance>

Introduction – Original CommonSurfaceShader

4

IGD

_en.p

ptx

Fraunhofer IGD, April 4, 2012

Page 5: CommonSurfaceShader Revisited: Improvements and Experiencesweb3d2012.web3d.org/presentations/session3/pres.pdf · PowerPoint-Präsentation Author: Schaub, Jutta Created Date: 8/16/2012

© Fraunhofer IGD

Three components

Core (diffuse, glossy, emission, ambient, …)

Bump (bump/normal mapping)

Specular (perfect specular reflection/refraction)

Introduction – Original CommonSurfaceShader

5

IGD

_en.p

ptx

Fraunhofer IGD, April 4, 2012

Page 6: CommonSurfaceShader Revisited: Improvements and Experiencesweb3d2012.web3d.org/presentations/session3/pres.pdf · PowerPoint-Präsentation Author: Schaub, Jutta Created Date: 8/16/2012

© Fraunhofer IGD

Only Core

Introduction – Original CommonSurfaceShader

6

IGD

_en.p

ptx

Fraunhofer IGD, April 4, 2012

Page 7: CommonSurfaceShader Revisited: Improvements and Experiencesweb3d2012.web3d.org/presentations/session3/pres.pdf · PowerPoint-Präsentation Author: Schaub, Jutta Created Date: 8/16/2012

© Fraunhofer IGD

Core + Bump

Introduction – Original CommonSurfaceShader

7

IGD

_en.p

ptx

Fraunhofer IGD, April 4, 2012

Page 8: CommonSurfaceShader Revisited: Improvements and Experiencesweb3d2012.web3d.org/presentations/session3/pres.pdf · PowerPoint-Präsentation Author: Schaub, Jutta Created Date: 8/16/2012

© Fraunhofer IGD

Core + Bump + Specular

Introduction – Original CommonSurfaceShader

8

IGD

_en.p

ptx

Fraunhofer IGD, April 4, 2012

Page 9: CommonSurfaceShader Revisited: Improvements and Experiencesweb3d2012.web3d.org/presentations/session3/pres.pdf · PowerPoint-Präsentation Author: Schaub, Jutta Created Date: 8/16/2012

© Fraunhofer IGD

Introduction

Why CommonSurfaceShader?

The original CommonSurfaceShader

Improvements

Energy conservation

Anisotropy

Layered materials

Open Problems

Conclusion

Outline

9

IGD

_en.p

ptx

Fraunhofer IGD, April 4, 2012

Page 10: CommonSurfaceShader Revisited: Improvements and Experiencesweb3d2012.web3d.org/presentations/session3/pres.pdf · PowerPoint-Präsentation Author: Schaub, Jutta Created Date: 8/16/2012

© Fraunhofer IGD

Problem:

BRDF of original core component not energy conserving

Closer to Material node and OpenGL‘s FFP material

But a HUGE problem for physically-based rendering

Implausible results in HDR environments

Multiple light bounces not correct

Improvements – Energy Conservation

10

IGD

_en.p

ptx

Fraunhofer IGD, April 4, 2012

Page 11: CommonSurfaceShader Revisited: Improvements and Experiencesweb3d2012.web3d.org/presentations/session3/pres.pdf · PowerPoint-Präsentation Author: Schaub, Jutta Created Date: 8/16/2012

© Fraunhofer IGD

Improvement:

Require normalized, energy-conserving BRDF

But which BRDF?

Torrance-Sparrow microfacet model with a Blinn microfacet distribution

Or close approximation

What is “close approximation“?

Not really defined yet

Why so fuzzy?

More freedom for implementations

Problematic if exact port of appearance is required

Improvements – Energy Conservation

11

IGD

_en.p

ptx

Fraunhofer IGD, April 4, 2012

Page 12: CommonSurfaceShader Revisited: Improvements and Experiencesweb3d2012.web3d.org/presentations/session3/pres.pdf · PowerPoint-Präsentation Author: Schaub, Jutta Created Date: 8/16/2012

© Fraunhofer IGD

Problem:

BRDF of original core component not anisotropic

Can be limiting for some materials (e.g. brushed metal)

Improvements – Anisotropy

12

IGD

_en.p

ptx

Fraunhofer IGD, April 4, 2012

Page 13: CommonSurfaceShader Revisited: Improvements and Experiencesweb3d2012.web3d.org/presentations/session3/pres.pdf · PowerPoint-Präsentation Author: Schaub, Jutta Created Date: 8/16/2012

© Fraunhofer IGD

Solution:

Allow anisotropic BRDF

Shininess now SFVec2f

But support optional (for now…)

Fallback: use average exponent

Improvements – Anisotropy

13

IGD

_en.p

ptx

Fraunhofer IGD, April 4, 2012

Page 14: CommonSurfaceShader Revisited: Improvements and Experiencesweb3d2012.web3d.org/presentations/session3/pres.pdf · PowerPoint-Präsentation Author: Schaub, Jutta Created Date: 8/16/2012

© Fraunhofer IGD

Problem:

Core and specular components independent in original design

Fast, easy to implement

Diffuse (or glossy) layer underneath specular layer not correct

Improvements – Layered Materials

14

IGD

_en.p

ptx

Fraunhofer IGD, April 4, 2012

Page 15: CommonSurfaceShader Revisited: Improvements and Experiencesweb3d2012.web3d.org/presentations/session3/pres.pdf · PowerPoint-Präsentation Author: Schaub, Jutta Created Date: 8/16/2012

© Fraunhofer IGD

Problem:

Core and specular components independent in original design

Fast, easy to implement

Diffuse (or glossy) layer underneath specular layer not correct

Improvements – Layered Materials

15

IGD

_en.p

ptx

Fraunhofer IGD, April 4, 2012

Page 16: CommonSurfaceShader Revisited: Improvements and Experiencesweb3d2012.web3d.org/presentations/session3/pres.pdf · PowerPoint-Präsentation Author: Schaub, Jutta Created Date: 8/16/2012

© Fraunhofer IGD

Problem:

Core and specular components independent in original design

Fast, easy to implement

Diffuse (or glossy) layer underneath specular layer not correct

Improvements – Layered Materials

16

IGD

_en.p

ptx

Fraunhofer IGD, April 4, 2012

Page 17: CommonSurfaceShader Revisited: Improvements and Experiencesweb3d2012.web3d.org/presentations/session3/pres.pdf · PowerPoint-Präsentation Author: Schaub, Jutta Created Date: 8/16/2012

© Fraunhofer IGD

Problem:

Core and specular components independent in original design

Fast, easy to implement

Diffuse (or glossy) layer underneath specular layer not correct

Improvements – Layered Materials

17

IGD

_en.p

ptx

Fraunhofer IGD, April 4, 2012

Page 18: CommonSurfaceShader Revisited: Improvements and Experiencesweb3d2012.web3d.org/presentations/session3/pres.pdf · PowerPoint-Präsentation Author: Schaub, Jutta Created Date: 8/16/2012

© Fraunhofer IGD

Solution:

Extent meaning of fresnelBlend parameter

Now blends between

Physically correct

Fresnel reflection/refraction

Core beneath specular

Physically implausible

Constant reflection/refraction

Core and specular added

Improvements – Layered Materials

18

IGD

_en.p

ptx

Fraunhofer IGD, April 4, 2012

Page 19: CommonSurfaceShader Revisited: Improvements and Experiencesweb3d2012.web3d.org/presentations/session3/pres.pdf · PowerPoint-Präsentation Author: Schaub, Jutta Created Date: 8/16/2012

© Fraunhofer IGD

Introduction

Why CommonSurfaceShader?

The original CommonSurfaceShader

Improvements

Energy conservation

Anisotropy

Layered materials

Open Problems

Conclusion

Outline

19

IGD

_en.p

ptx

Fraunhofer IGD, April 4, 2012

Page 20: CommonSurfaceShader Revisited: Improvements and Experiencesweb3d2012.web3d.org/presentations/session3/pres.pdf · PowerPoint-Präsentation Author: Schaub, Jutta Created Date: 8/16/2012

© Fraunhofer IGD

A lot of conflicting goals

Generality vs. compactness

Portability vs. expressiveness

Real-time vs. off-line

Backwards compatibility vs. new shiny stuff

Concrete questions

Core-BRDF specification?

Alpha vs. transparency in diffuse under specular?

Which features are mandatory?

What will go into spec?

More declarative SurfaceShaders?

Open Problems – Layered Materials

20

IGD

_en.p

ptx

Fraunhofer IGD, April 4, 2012

Page 21: CommonSurfaceShader Revisited: Improvements and Experiencesweb3d2012.web3d.org/presentations/session3/pres.pdf · PowerPoint-Präsentation Author: Schaub, Jutta Created Date: 8/16/2012

© Fraunhofer IGD

Introduction

Why CommonSurfaceShader?

The original CommonSurfaceShader

Improvements

Energy conservation

Anisotropy

Layered materials

Open Problems

Conclusion

Outline

21

IGD

_en.p

ptx

Fraunhofer IGD, April 4, 2012

Page 22: CommonSurfaceShader Revisited: Improvements and Experiencesweb3d2012.web3d.org/presentations/session3/pres.pdf · PowerPoint-Präsentation Author: Schaub, Jutta Created Date: 8/16/2012

© Fraunhofer IGD

Presented improved version of CommonSurfaceShader

More physically plausible

Did not bloat interface

More freedom for implementations

Limitations

Some materials require compromises

Some cannot be modeled at all

All in all:

Pretty decent and up-to-date default Material

Supplement (maybe even replacement) for X3D-Material

Conclusion

22

IGD

_en.p

ptx

Fraunhofer IGD, April 4, 2012

Page 23: CommonSurfaceShader Revisited: Improvements and Experiencesweb3d2012.web3d.org/presentations/session3/pres.pdf · PowerPoint-Präsentation Author: Schaub, Jutta Created Date: 8/16/2012

© Fraunhofer IGD

Karsten Schwenk, Yvonne Jung, Gerrit Voß, Timo Sturm, Johannes Behr

CommonSurfaceShader Revisited: Improvements and Experiences

Thank you.

[email protected]