nvidia material definition language - khronos · 2018. 8. 20. · mdl distilling and texture baking...

20
Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials NVIDIA Material Definition Language August 16, SIGGRAPH 2018

Upload: others

Post on 18-Aug-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: NVIDIA Material Definition Language - Khronos · 2018. 8. 20. · MDL Distilling and texture baking GLSL compiler back-end • Added MDL Core API • Includes MDL Core Definitions

Jan Jordan Software Product Manager MDL

Lutz Kettner Director Advanced Rendering and Materials

NVIDIA Material Definition Language

August 16, SIGGRAPH 2018

Page 2: NVIDIA Material Definition Language - Khronos · 2018. 8. 20. · MDL Distilling and texture baking GLSL compiler back-end • Added MDL Core API • Includes MDL Core Definitions

2

PathtracerInteractive RaytracerRealtime Rasterizer

One Scene for Different Renderers

Share scene and

MDL materials for a

consistent look

Switching renderers

with no scene

modifications

Page 3: NVIDIA Material Definition Language - Khronos · 2018. 8. 20. · MDL Distilling and texture baking GLSL compiler back-end • Added MDL Core API • Includes MDL Core Definitions

3

RasterizerDeclarative Material Definition

Procedural Program-ming Language

Texture lookups

Procedurals

Uv-transforms

Projectors

Noise functions

Math functions

Light loops / OIT

Glossy reflection

Transparency

Translucency

Renderer

Raytracer

Trace N rays

Pathtracer

Ray-marching

Page 4: NVIDIA Material Definition Language - Khronos · 2018. 8. 20. · MDL Distilling and texture baking GLSL compiler back-end • Added MDL Core API • Includes MDL Core Definitions

4

MDL – Past, Present and Future

● MDL 0.x … ● MDL 1.0 ● MDL 1.1 ● MDL 1.2 ● MDL 1.3 ● MDL 1.4

● Public specification ● Advisory Council

● Iray 2013 ● Nvidia Iray Plugins

● Substance Designer● Bunkspeed

● Vray● Catia V6

● mental ray (3ds Max, Maya)

● ESI IC.IDO● Daz 3d

● Public SDK

2011 2012 2013 2014 2015 2016 2017 2018

● SolidworksVisualize

● Unreal Studio 4.20

● Adobe Dimension

Page 5: NVIDIA Material Definition Language - Khronos · 2018. 8. 20. · MDL Distilling and texture baking GLSL compiler back-end • Added MDL Core API • Includes MDL Core Definitions

5

May the Source Be with You

https://github.com/NVIDIA/MDL-SDK

NVIDIA Open Sources the MDL SDK

Feature image courtesy of Adobe, created by art director Vladimir Petkovic.

Page 6: NVIDIA Material Definition Language - Khronos · 2018. 8. 20. · MDL Distilling and texture baking GLSL compiler back-end • Added MDL Core API • Includes MDL Core Definitions

6

May the Source Be with You

https://github.com/NVIDIA/MDL-SDK

BSD 3-clause license

Full MDL SDK

• 48 modules, 570 files, 310 KLOC

• ExcludingMDL Distilling and texture baking

GLSL compiler back-end

• Added MDL Core API

• Includes MDL Core Definitions and more

NVIDIA Open Sources the MDL SDK

Feature image courtesy of Adobe, created by art director Vladimir Petkovic.

Page 7: NVIDIA Material Definition Language - Khronos · 2018. 8. 20. · MDL Distilling and texture baking GLSL compiler back-end • Added MDL Core API • Includes MDL Core Definitions

7

MDL Distiller

MDL Material

Complex BSDF layering

Complex procedurals

Fixed Material Model

Simple BSDF structure

One texture per parameter

Distiller

MDL

UE4

Page 8: NVIDIA Material Definition Language - Khronos · 2018. 8. 20. · MDL Distilling and texture baking GLSL compiler back-end • Added MDL Core API • Includes MDL Core Definitions

8

Discussion Proposal for

(A) Current PBR in glTF 2.0, fixed baseline, applications want more

(B) Full MDL requires a compiler

(C) Fixed set of flexible standard nodes, allow flexible yet simple interpreter

• Texturing

Subset of MDL

core defintions

• Materials

Subset of MDL

BSF, EDF, and VDF

Specular Reflection Spec. Refl.+Transm.Backscatter Glossy Fresnel Layer

Measured Curve LayerCustom Curve Layer

Tint

value

color_constructor

texture_coordinate

texture_space`: 0

position

summed_perlin_noise

plaster_color

Material plaster

Page 9: NVIDIA Material Definition Language - Khronos · 2018. 8. 20. · MDL Distilling and texture baking GLSL compiler back-end • Added MDL Core API • Includes MDL Core Definitions

9

Backup

Page 10: NVIDIA Material Definition Language - Khronos · 2018. 8. 20. · MDL Distilling and texture baking GLSL compiler back-end • Added MDL Core API • Includes MDL Core Definitions

10

MDL Advisory Council

Joint direction of MDL and the MDL eco system

Include expertise other companies have gained in the field and with MDL

Companies sharing our vision of MDL

Page 11: NVIDIA Material Definition Language - Khronos · 2018. 8. 20. · MDL Distilling and texture baking GLSL compiler back-end • Added MDL Core API • Includes MDL Core Definitions

11

MDL SDK 2018.1

MDL 1.4

DB for MDL definitions

DAG view on materialsseveral compilation modes

MDL editing

Code generatorsPTX, LLVM IR, x86, GLSL (fcts. only)

Distiller and texture baker

Samples

Documentation and tutorials

Features

Editor

Renderer

API

Samples

Distill

MDL source

Database of content

Generate

code

Bake

textures

Docs

MDL SDK

Compile Material

Resolve, parse, store

Optimized DAG

view on material

Page 12: NVIDIA Material Definition Language - Khronos · 2018. 8. 20. · MDL Distilling and texture baking GLSL compiler back-end • Added MDL Core API • Includes MDL Core Definitions

12

Distillation to Fixed Material Model

Fixed Material ModelMDL Material

Complex BSDF layering

Complex procedurals

Simple BSDF structure

One texture per parameter

Distillation

Page 13: NVIDIA Material Definition Language - Khronos · 2018. 8. 20. · MDL Distilling and texture baking GLSL compiler back-end • Added MDL Core API • Includes MDL Core Definitions

13

Distillation to Fixed Material Model

Fixed Material ModelMDL Material

Complex BSDF layering

Complex procedurals

Simple BSDF structure

One texture per parameter

Distillation

fctbsdf

bsdf

fct

fct

fct

fct

fct

fct

fct

fct

bsdf

bsdf

fct

fct

fct

fct

bsdf

bsdf

bsdf

Page 14: NVIDIA Material Definition Language - Khronos · 2018. 8. 20. · MDL Distilling and texture baking GLSL compiler back-end • Added MDL Core API • Includes MDL Core Definitions

14

Distillation to Fixed Material Model

Fixed Material ModelMDL Material

Complex BSDF layering

Complex procedurals

Simple BSDF structure

One texture per parameter

Distillation

tex

tex

tex

tex

tex

Materialdiffuse

specular

glossy

kurtosis

normal

fctbsdf

bsdf

fct

fct

fct

fct

fct

fct

fct

fct

bsdf

bsdf

fct

fct

fct

fct

bsdf

bsdf

bsdf

Page 15: NVIDIA Material Definition Language - Khronos · 2018. 8. 20. · MDL Distilling and texture baking GLSL compiler back-end • Added MDL Core API • Includes MDL Core Definitions

15

Distillation to Fixed Material Model

Fixed Material ModelMDL Material

Complex BSDF layering

Complex procedurals

Simple BSDF structure

One texture per parameter

Distillation

tex

tex

tex

tex

tex

Materialdiffuse

specular

glossy

kurtosis

normal

fctbsdf

bsdf

fct

fct

fct

fct

fct

fct

fct

fct

bsdf

bsdf

fct

fct

fct

fct

bsdf

bsdf

bsdf

Approximate

render result:

Some materials

will look quite

different

Page 16: NVIDIA Material Definition Language - Khronos · 2018. 8. 20. · MDL Distilling and texture baking GLSL compiler back-end • Added MDL Core API • Includes MDL Core Definitions

16

Distillation to Fixed Material Model

Fixed Material ModelMDL Material

Complex BSDF layering

Complex procedurals

Simple BSDF structure

One texture per parameter

Distillation

tex

tex

tex

tex

tex

Materialdiffuse

specular

glossy

kurtosis

normal

fctbsdf

bsdf

fct

fct

fct

fct

fct

fct

fct

fct

bsdf

bsdf

fct

fct

fct

fct

bsdf

bsdf

bsdf

Fast projection of material

instances: Realtime editingApproximate

render result:

Some materials

will look quite

different

Page 17: NVIDIA Material Definition Language - Khronos · 2018. 8. 20. · MDL Distilling and texture baking GLSL compiler back-end • Added MDL Core API • Includes MDL Core Definitions

17

Distillation to Fixed Material Model

Fixed Material ModelMDL Material

Complex BSDF layering

Complex procedurals

Simple BSDF structure

One texture per parameter

Distillation

tex

tex

tex

tex

tex

Materialdiffuse

specular

glossy

kurtosis

normal

fctbsdf

bsdf

fct

fct

fct

fct

fct

fct

fct

fct

bsdf

bsdf

fct

fct

fct

fct

bsdf

bsdf

bsdf

Fast projection of material

instances: Realtime editingApproximate

render result:

Some materials

will look quite

different

Flexible framework to target

different fixed models not a

fixed MDL subset (no “MDL lite”)

Page 18: NVIDIA Material Definition Language - Khronos · 2018. 8. 20. · MDL Distilling and texture baking GLSL compiler back-end • Added MDL Core API • Includes MDL Core Definitions

18

Distillation to Fixed Material ModelResults on vMaterials

original

Fresnel( glossy, diffuse)

diffuse-only

Page 19: NVIDIA Material Definition Language - Khronos · 2018. 8. 20. · MDL Distilling and texture baking GLSL compiler back-end • Added MDL Core API • Includes MDL Core Definitions

19

MDL Distilling

Example: UE4 target with clearcoat and transparency through alpha

GLSL rendering sample using Distilling and baking comes with MDL SDK 2018.1

Released as part of Iray/MDL SDK

MDL

UE4

Page 20: NVIDIA Material Definition Language - Khronos · 2018. 8. 20. · MDL Distilling and texture baking GLSL compiler back-end • Added MDL Core API • Includes MDL Core Definitions

20

MDL Conformance Test Suite

Syntactic conformance testsSemantic conformance tests

Available on request