36
mental mill ® & MetaSL : Laura Scholl, Product Manager, mental mill mental mill & MetaSL : Advances in Cross-Platform Shader Authoring © 2008 NVIDIA Corporation. Laura Scholl, Product Manager, mental mill mental images, Inc.

mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental mill®

& MetaSL™:

Laura Scholl, Product Manager, mental mill

mental mill & MetaSL : Advances in Cross-Platform Shader Authoring

© 2008 NVIDIA Corporation.

Laura Scholl, Product Manager, mental millmental images, Inc.

Page 2: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

As GPU’s and rendering algorithms become more powerful it becomes increasingly more difficult and more costly to: • create and maintain shader assets with currently available shading languagesavailable shading languages• share shader assets between different media/content

© 2008 NVIDIA Corporation.

Page 3: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

mental mill and its underlying MetaSL shading language provide the solution to this problem with:• Visual shader creation and programming SDK• High-level shader representation• High-level shader representation

Based on the object-oriented programming paradigm, together mental mill and MetaSL provide mechanisms for:together mental mill and MetaSL provide mechanisms for:• Abstraction• Modularity• Encapsulation

© 2008 NVIDIA Corporation.

Page 4: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

Abstraction: MetaSL• General purpose, high-level shading language

© 2008 NVIDIA Corporation.

Page 5: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

Abstraction: MetaSL• General purpose, high-level shading language

• Provides language mechanisms that:ll th M t SL h d t b d • allow the same MetaSL shader to be used: • on different hardware platforms (CPU/GPU) • in different contexts (film, games, graphics...)( , g , g p )• with different rendering algorithms

• take advantage of advancements in:GPU’s• GPU s

• rendering algorithms

© 2008 NVIDIA Corporation.

Page 6: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

Abstraction: mental mill• Visual shader creation/programming environment

• Provides the ability to create shader graphs rather than specify low level programming details thatthan specify low-level programming details thatencourage artists to experiment without: • specifying implementation details• depending on programmers

© 2008 NVIDIA Corporation.

Page 7: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

Abstraction: mental mill• Visual shader creation/programming environment

© 2008 NVIDIA Corporation.

Page 8: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

Modularity: mental mill• Visual shader creation/programming environment

• Provides atomic nodes of MetaSL code that can be combined in a shader graph that allows the artist to combined in a shader graph that allows the artist to build complex shader effects from:• other shaders• functions• state modifiers

© 2008 NVIDIA Corporation.

Page 9: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

© 2008 NVIDIA Corporation.

Shader graph of atomic MetaSL nodes

Page 10: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

Encapsulation: mental mill• Visual shader creation/programming environment

• Provides Phenomena™ to enclose a shader graph into a single shader to:a single shader to:• simplify parameter lists• protect a developed look • reuse in creating complex shader graphs

© 2008 NVIDIA Corporation.

Page 11: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

Encapsulation: mental mill

© 2008 NVIDIA Corporation.

Page 12: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

mental mill• Platform independent shader development library that provides tools to:

M t SL i t Ab t t S t T (AST)• parse MetaSL into an Abstract Syntax Tree (AST)• write back-end translators/compilers• create a graphical user interfacecreate a graphical user interface

© 2008 NVIDIA Corporation.

Page 13: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

mental mill• The shader development library comprises:

• UI components:Shader graph and Phenomenon editor• Shader graph and Phenomenon editor

• Shader parameter editor• MetaSL editor and debugger• Shader library browser • Translator/compiler components:• Shader graph• Shader graph• Phenomenon • MetaSL

© 2008 NVIDIA Corporation.

Page 14: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

MetaSL• Abstract shader representation:

• Similar to C++F ili h d t• Familiar shader types:• Displacement• SurfaceSurface• Light• Volume• Environment• Lens

© 2008 NVIDIA Corporation.

Page 15: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

MetaSL• Abstract shader representation:• Shader class

I t d t t t• Input and output parameters• Main method and other shader methods• Shader state variables and functionsShader state variables and functions

shader My_shader{input:

Color color(1,1,1,1);

output:Color result;

void main(){

Vector3 n = transform_normal("i t l" " " l)

© 2008 NVIDIA Corporation.

"internal", "camera", normal);result = color * saturate(n.z);

}};

Page 16: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

MetaSL Code OEM Application/mental mill GUI

MetaSL, Phen, and Graph Compilers

Back-end Plug-in Interface

Cg HLSL GLSL C++ (mental ray) OtherIntermediate languages

Native Compilers

Rendering

© 2008 NVIDIA Corporation.

mental mill data flow overview

Page 17: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

mental mill• Visual shader creation/programming environment

© 2008 NVIDIA Corporation.

Page 18: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

Phong shader in MetaSL render

© 2008 NVIDIA Corporation.

Page 19: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

Debugger ‘get info’

© 2008 NVIDIA Corporation.

Page 20: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

Phong shaderMetaSL code

© 2008 NVIDIA Corporation.

Page 21: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

Phong shaderdebug modeevaluate RS

© 2008 NVIDIA Corporation.

Page 22: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

Phong shaderdebug modeevaluate specular

© 2008 NVIDIA Corporation.

Page 23: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

Phong shaderdebug modeevaluate specular*RS

© 2008 NVIDIA Corporation.

Page 24: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

Add a texture to the Phong shader

© 2008 NVIDIA Corporation.

Page 25: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

mental ray® preview renderer plug-in

© 2008 NVIDIA Corporation.

Page 26: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

Add a reflection to the Phong shader

© 2008 NVIDIA Corporation.

Page 27: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

Create a Phenomenon

© 2008 NVIDIA Corporation.

Page 28: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

Shiny Plastic Phenomenon

© 2008 NVIDIA Corporation.

Page 29: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

Shiny Plastic Phenomenon in shader graph

© 2008 NVIDIA Corporation.

Page 30: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

Debugger ‘get info’

© 2008 NVIDIA Corporation.

Page 31: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

Debugger ‘get info’

© 2008 NVIDIA Corporation.

Page 32: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

Generator_water shader

© 2008 NVIDIA Corporation.

Page 33: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

Flood shader - using Generator_water

© 2008 NVIDIA Corporation.

Page 34: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

The problem of writing a new shader asset for:• every platform• different contexts• rapidly advancing hardwarerapidly advancing hardware• evolving rendering algorithms is solved with the abstract, high-level shading language M t SL d t l ill’ lib f t l th t t d MetaSL and mental mill’s library of tools that create and translate shaders to all platforms.

© 2008 NVIDIA Corporation.

Page 35: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

mental mill• Artist Edition:

• Bundled with FX Composer 2.5• Without MetaSL editing and debugging• Without MetaSL editing and debugging

• Standard Edition:• Integrated shader editing and debugging tools• Back-end plug-ins for 3ds Max, Maya,XSI, Catia,

SolidWorks, mental ray, C++, and FX Composer

• Integrator Edition:g• Component libraries for integration into:

• Design and DCC applications• shader pipelines

© 2008 NVIDIA Corporation.

• shader pipelines• Sample code

Page 36: mental mill & MetaSL · 2008. 9. 18. · mental mill® & MetaSL™ The problem of writing a new shader asset for: • every platform • different contexts • rapidly advancing hardware

mental images®

mental mill® & MetaSL™

demonstration of mental mill workflow

© 2008 NVIDIA Corporation.