sharing physically based materials between renderers with mdl · jan jordan software product...
TRANSCRIPT
![Page 1: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/1.jpg)
Jan Jordan Software Product Manager MDL
Lutz Kettner Director Advanced Rendering and Materials
Sharing Physically Based Materials Between Renderers with MDL
October 10, GTC Europe 2018
![Page 2: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/2.jpg)
2
Agenda
Introduction to NVIDIA Material Definition Language MDL
Matching the appearance of a single material within different rendering techniques
Defining physically-based materials
MDL ecosystem
Become part of the ecosystem
![Page 3: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/3.jpg)
3
Introduction
![Page 4: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/4.jpg)
4
The NVIDIA Material Definition Language (MDL)
is technology developed by NVIDIA
to define physically-based materials
for physically-based rendering solutions.
![Page 5: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/5.jpg)
5Iray Photoreal
![Page 6: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/6.jpg)
6Iray Photoreal
![Page 7: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/7.jpg)
7Iray Photoreal
![Page 8: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/8.jpg)
8courtesy Harley Davidson
![Page 9: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/9.jpg)
9
![Page 10: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/10.jpg)
10
![Page 11: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/11.jpg)
11NVIDIA vMaterials with Iray Photoreal
![Page 12: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/12.jpg)
12Iray Photoreal
![Page 13: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/13.jpg)
13
Matching the Appearance of a Single Material Within Different Rendering Techniques
![Page 14: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/14.jpg)
14
PathtracerInteractive RaytracerRealtime Rasterizer
One Scene for Different Renderers
Share scene and
MDL materials for a
consistent look
Switching renderers
with no scene
modifications
![Page 15: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/15.jpg)
15
Iray Realtime
OpenGL Rasterizer
Iray Interactive
Ray Tracer, Direct Illumination
Iray Photoreal
Path Tracer
![Page 16: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/16.jpg)
16
Material Implementation
Material Definition
Texturing
Traditional Shading Language Parts
Texture lookups
Procedurals
Uv-transforms
Projectors
Noise functions
Math functions
Light loops / trace N rays
OIT / ray-continuation
Ray marching
Glossy reflection
Transparency
Translucency
![Page 17: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/17.jpg)
17
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 18: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/18.jpg)
18
RasterizerDeclarative Material Definition
Procedural Program-ming Language
Light loops / OIT
Renderer
Raytracer
Trace N rays
Pathtracer
Ray-marching
![Page 19: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/19.jpg)
19
Rasterizer
Light loops / OIT
Renderer
Raytracer
Trace N rays
Pathtracer
Ray-marching
MDL is not a Shading Language
MDL defines what to compute, not how to compute it
– no programmable shading
– no light loops or access to illumination
– no trace call
– no sampling
– no camera dependence
Declarative Material Definition
Procedural Program-ming Language
![Page 20: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/20.jpg)
20
material
volume geometrysurface
MDL Material Model
backface
…
![Page 21: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/21.jpg)
21
material
volume geometrysurface
MDL Material Model
scatteringbsdf
backface
…
![Page 22: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/22.jpg)
22
material
volume geometrysurface
emission
MDL Material Model
scatteringbsdf
intensity
emissionedf
backface
…
![Page 23: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/23.jpg)
23
material
volume geometrysurface
emission
MDL Material Model
scatteringbsdf
intensity
emissionedf
scattering_coefficient
absorption_coefficient
scatteringvdf
backface
…
![Page 24: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/24.jpg)
24
material
volume geometrysurface
emission
MDL Material Model
scatteringbsdf
intensity
emissionedf
scattering_coefficient
absorption_coefficient
scatteringvdf
cutout_opacity
displacement
normal
backface
…
![Page 25: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/25.jpg)
25
material
volume geometrysurface
emission
MDL Material Model
thin_walled
ior
scatteringbsdf
intensity
emissionedf
scattering_coefficient
absorption_coefficient
scatteringvdf
cutout_opacity
displacement
normal
backface
…
![Page 26: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/26.jpg)
26
Diffuse Transmission
Specular Reflection Spec. Refl.+Transm. Measured BSDF
Glossy (various)
Backscatter Glossy
Bidirectional
Scattering
Distribution
Functions
MDL Elemental Distribution Functions
Diffuse Reflection
![Page 27: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/27.jpg)
27
Emissive
Distribution
Functions
Volume
Distribution
Functions
MDL Elemental Distribution Functions
Henyey-Greenstein
Diffuse Spot IES Profile
![Page 28: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/28.jpg)
28
MDL Distribution Function Modifiers
Tint Thin Film Directional Factor Measured Curve Factor
![Page 29: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/29.jpg)
29
MDL Distribution Functions Combiners
Normalized MixClamped MixWeighted Layer
Fresnel Layer
Measured Curve LayerCustom Curve Layer
![Page 30: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/30.jpg)
30
Gold
Custom curve layer
Silver
Modifier:
Complex ior factor
MDL 1.4: New BSDF
Copper
Combiners:
All weights can be
color now
![Page 31: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/31.jpg)
31
MDL Layered Material Example
![Page 32: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/32.jpg)
33
Defining Physically-based MaterialsWith Source Code
![Page 33: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/33.jpg)
34
struct material { bool thin_walled; material_surface surface; material_surface backface; color ior; material_volume volume; material_geometry geometry;
};
MDL is a ‘C’ like language. The material viewed as a struct
Defining a Material Using MDL
![Page 34: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/34.jpg)
35
struct material { bool thin_walled; material_surface surface; material_surface backface; color ior; material_volume volume; material_geometry geometry;
};
struct material_surface { bsdf scattering; material_emission emission;
};
MDL is a ‘C’ like language. The material and its components viewed as a struct
Defining a Material Using MDL
![Page 35: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/35.jpg)
36
struct material { bool thin_walled = false; material_surface surface = material_surface(); material_surface backface = material_surface(); color ior = color(1.0); material_volume volume = material_volume(); material_geometry geometry = material_geometry();
};
struct material_surface { bsdf scattering = bsdf(); material_emission emission = material_emission();
};
MDL is a ‘C’ like language. The material and its components viewed as a struct
Defining a Material Using MDL
![Page 36: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/36.jpg)
37
material();
Material struct is already fully defined
Defining a Material Using MDL
![Page 37: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/37.jpg)
38
Material struct is already fully defined
material();
Defining a Material Using MDL
![Page 38: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/38.jpg)
39
Creating new materials
material name ( material-parameters ) = material ( material-arguments );
Defining a Material Using MDL
![Page 39: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/39.jpg)
41
material plaster( ) = material(
surface: material_surface( scattering: df::diffuse_reflection_bsdf()
));
Defining a Material Using MDL
![Page 40: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/40.jpg)
42
material plaster ( color plaster_color = color(.7)) = material(
surface: material_surface ( scattering: df::diffuse_reflection_bsdf (
tint: plaster_color)
));
New materials can have parameters
Defining a Material Using MDL
![Page 41: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/41.jpg)
43
material plastic( color diffuse_color = color(.15,0.4,0.0),float roughness = 0.05
) = material(surface: material_surface(
scattering: df::fresnel_layer ( ior: color(1.5), layer: df::simple_glossy_bsdf (
roughness_u: glossy_roughness), base: df::diffuse_reflection_bsdf (
tint: diffuse_color ))
));
Create complex materials by layering
Defining a Material Using MDL
![Page 42: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/42.jpg)
44
Added displacement since 2017
4 anisotropic glossy highlights + translucency
MDL Handbookwww.mdlhandbook.com
Cloth example
![Page 43: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/43.jpg)
45
MDL Procedural Programming Language
Function results feed into material and function parameters
“Shader graphs” are equivalent to function call graphs
C-like language for function definitions
value
color_constructor
texture_coordinate
texture_space`: 0
position
summed_perlin_noise
plaster_color
Material plaster
![Page 44: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/44.jpg)
46
Defining a Function Using MDL
type-of-return-value function-name ( parameters ) {
statements }
MDL is ‘C’ like
![Page 45: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/45.jpg)
47
Defining a Function Using MDL
color uv_as_color() {
return color( state::texture_coordinate(0) ); }
Function access render state through standard modules
![Page 46: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/46.jpg)
48
Defining a Function Using MDL
color uv_as_color() {
return color(state::texture_coordinate(0)); }
material uv_as_color_material_v2() = plaster( plaster_color: uv_as_color() )
Use functions to drive BSDF or material parameters
![Page 47: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/47.jpg)
49
Defining a Function Using MDL
float summed_perlin_noise (float3 point, int level_count=4, float level_scale=0.5, float point_scale=2.0, bool turbulence=false)
{ float scale = 0.5, noise_sum = 0.0; float3 level_point = point; for (int i = 0; i < level_count; i++) {
float noise_value = perlin_noise(level_point); if (turbulence)
noise_value = math::abs(noise_value); else noise_value = 0.5 + 0.5 * noise_value; noise_sum += noise_value * scale; scale *= level_scale; level_point *= point_scale;
} return noise_sum;
}
MDL Handbook
Functions allow control flow like loops, switches, conditionals
![Page 48: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/48.jpg)
50
Defining a Function Using MDL
material perlin_noise_material() = plaster(
plaster_color: color(summed_perlin_noise(
point: state::texture_coordinate(0))
))
Call graph of functions substitute shader graphs
value
color_constructor
texture_coordinate
texture_space`: 0
position
summed_perlin_noise
plaster_color
Material plaster
![Page 49: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/49.jpg)
51
MDL Module System
MDL is a programming language allowing dependencies among modules and materials
import nvidia::vMaterials::Design::Metal::chrome::*;
We use search paths to resolve imports
MDL is program code
![Page 50: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/50.jpg)
52
MDL Module System
MDL is a programming language allowing dependencies among modules and materials
import nvidia::vMaterials::Design::Metal::chrome::*;
We use search paths to resolve imports
C:\Users\Jan\Documents\mdl\nvidia\vMaterials\Design\Metal\chrome.mdl
MDL is program code
search path MDL package space
nvidia::vMaterials::Design::Metal::chrome
![Page 51: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/51.jpg)
53
UDIM and uv-tilesNew in MDL 1.4
UDIM texture layout in Autodesk Maya, rendering in Iray
![Page 52: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/52.jpg)
54
Material Catalogs
Designed for Parallelism
Measured Materials
Additional MDL Benefits
Spatially Varying BRDF
AxF from X-Rite
Measure Isotropic BSDF
Modules and packages
Archives
Little data dependencies
Side-effect free functions
![Page 53: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/53.jpg)
55
MDL Ecosystem
![Page 54: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/54.jpg)
56
MDL – Past, Present and Future
2011 2012 2013 2014 2015 2016 2017 2018 2019
MDL 0.x MDL 1.5MDL 1.0
Iray 2013
MDL 1.1
Public Specification
Catia V6
Bunkspeed
MDL 1.4
Open Source SDK
Public SDK
Unreal Studio 4.20
Advisory Council
Holodeck
Solidworks Visualize
MDL 1.3
Vray Adobe Dimension
ESI IC.IDO
vMaterials
Nvidia Iray Plugins
MDL 1.2
JIT Compile
mental ray (3ds May, Maya)
Substance Designer
Daz 3d
![Page 55: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/55.jpg)
57
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 56: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/56.jpg)
58
Substance Designer
Iray DCC Plugins
Chaosgroup Vray Adobe Dimensions
Dassault Catia V6
Daz 3D StudioPatchwork 3D
Solidworks Vis.Siemens NX11
Other Iray
Products
Creation
Libraries
Rendering Applications integrating Renderers
Unreal Studio
Adobe Stock
Vray Max/Maya
NVIDIA Holodeck
Substance Source
NVIDIA VMaterials
NVIDIA Iray
UE4
MDL Ecosystem
![Page 57: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/57.jpg)
61
MDL in VRAY
![Page 58: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/58.jpg)
62
MDL Adobe Dimension and Adobe Stockhttp://www.adobe.com/products/dimension.html
![Page 59: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/59.jpg)
63
MDL in Substance Designer
![Page 60: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/60.jpg)
64
MDL in Substance Designer
![Page 61: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/61.jpg)
65
MDL in Substance Designer
![Page 62: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/62.jpg)
66
MDL in Substance Designer
![Page 63: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/63.jpg)
67
MDL in Substance Designer
![Page 64: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/64.jpg)
68
MDL in Substance Designer
![Page 65: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/65.jpg)
69
MDL in Substance Designer
![Page 66: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/66.jpg)
70
MDL in Substance Designer
![Page 67: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/67.jpg)
71
Focus on Material ExchangeFreely choose where to author material content
Substance Designer
Iray for Rhino
create
consume
modify
Chaosgroup V-RAY
![Page 68: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/68.jpg)
72
NVIDIA vMaterials 1.5~1600 MDL materials verified for accuracy - FREE TO USE
![Page 69: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/69.jpg)
75
NVIDIA vMaterials 1.5More flexible and user-centric parameters
![Page 70: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/70.jpg)
76
Become Part of the Ecosystem
![Page 71: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/71.jpg)
77
Become Part of the Ecosystem
Integrate MDL enabled renderer
MDL is included
Write your own compiler
Based on the freely available MDL Specification
Use the MDL SDK
Published under the NVIDIA Designworks License and …
![Page 72: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/72.jpg)
78
Write Your Own Compiler
MDL Specification
Language specification documentFree to use
http://www.nvidia.com/mdl/
MDL conformance test suite
Syntactic conformance testsSemantic conformance tests
Available on request
![Page 73: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/73.jpg)
79
https://developer.nvidia.com/designworks
RENDERING
Multi-Display Capture SDK Warp and Blend
GPUDirect for Video Video Codec SDK
Iray SDK OptiX SDK MDL SDK vMaterialsNV Pro Pipeline
GVDB Voxels VXGI GRID SW MGMT SDK NVAPI/NVWMI
PhysX
PHYSICS
VOXELS VIDEO MANAGEMENT
DISPLAY
![Page 74: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/74.jpg)
80
MDL SDK 2018.1.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 75: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/75.jpg)
81
MDL SDK 2018 – What is New
MDL 1.4 support
Class compilation support in all modes
Link mode
Full material compilation with BSDF reference implementation
Improved distilling quality
Flexible render state binding in backends
MDL archive access accelerated
API to enumerate all dependent resources
Access to SDK version at API entry point
Auto shutdown
SDK helper class for simplified access to annotations
New samples for all back-ends
Samples reorganized
CMake build for samples
Features
![Page 76: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/76.jpg)
82
MDL and RTX
• Anisotropic glossy reflections
• True refractive and volumetric materials
• Measured BRDF
• Proper translucency
• Complex glossy lobe shape and color
MDL materials make RTX shine!
Materials tricky for todays game engines become feasible with RTX
![Page 77: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/77.jpg)
83
MDL SDK and RTX
MDL SDK generates PTX material code suitable to be called by OptiX and used with RTX
• available since MDL SDK 2018.1
• Sample program available as part of Optix 5.1
MDL SDK will generate HLSL material code suitable to be used in an DXR based renderer (upcoming feature)
Integrating MDL with an RTX based renderer is simple!
The MDL SDK directly generates code for use in RTX enabled renderer
![Page 78: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/78.jpg)
86
MDL in Realtime Rendering
1. Ubershader
2. Compilation: on-demand shader generation
3. Distillation to fixed material model
All based on MDL SDK
Three approaches
![Page 79: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/79.jpg)
88
Distillation to Fixed Material Model
Fixed Material ModelMDL Material
Complex BSDF layering
Complex procedurals
Simple BSDF structure
One texture per parameter
Distillation
![Page 80: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/80.jpg)
89
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 81: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/81.jpg)
90
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 82: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/82.jpg)
91
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 83: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/83.jpg)
92
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 84: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/84.jpg)
93
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 85: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/85.jpg)
94
Distillation to Fixed Material ModelResults on vMaterials
original
Fresnel( glossy, diffuse)
diffuse-only
![Page 86: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/86.jpg)
95
MDL Distilling
Example: UE4 target with clearcoat and transparency through alpha
GLSL rendering sample using Distilling and baking
Released as part of Iray/MDL SDK
MDL
UE4
![Page 87: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/87.jpg)
96
May the Source Be with You
Feature image courtesy of Adobe, created by art director Vladimir Petkovic.
![Page 88: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/88.jpg)
97
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 89: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/89.jpg)
98
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 90: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/90.jpg)
99
MDL Core API
Higher-level API for easy integration
Reference counted interfaces
Mutable objects
In-memory store
Texture and resource importer
API close to the compiler
Objects managed in arenas
Immutable objects
Stateless compiler
Callbacks
A Lower-level Compiler API in the MDL SDK
MDL SDK API MDL Core API
![Page 91: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/91.jpg)
100
Starting MaterialMDL EcosystemWhat is MDL
MDL Takeaways
Declarative Material Definition
Procedural Programming Language
Open Source release
MDL Specification
MDL Handbook
MDL SDK
MDL Backend Examples
Conformance Test Suite
NVIDIA vMaterials
MDL Advisory Council
![Page 92: Sharing Physically Based Materials Between Renderers with MDL · Jan Jordan Software Product Manager MDL Lutz Kettner Director Advanced Rendering and Materials Sharing Physically](https://reader036.vdocuments.us/reader036/viewer/2022071212/60255e402c843430210b8432/html5/thumbnails/92.jpg)
101
Further Information on MDL
Documents
NVIDIA Material Definition Language ⏤ Technical Introduction
Material Definition Language ⏤ Handbook
NVIDIA Material Definition Language ⏤ Language Specification
MDL@GTC On-Demand
https://on-demand-gtc.gputechconf.com/
www.nvidia.com/mdlraytracing-docs.nvidia.com/mdl/index.html