shaders : the sky is the limit
TRANSCRIPT
![Page 1: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/1.jpg)
Shaders : the sky is the limitSébastien Dominé – NVIDIA
Richard Stenson – SCEA
![Page 2: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/2.jpg)
Agenda
• FX Composer 2.0 Introductions• Cross-Platform Shader Authoring• FX Composer 2.0 and Production Pipelines• PLAYSTATION 3 Production Pipeline and Developer
Tools• Conclusion• Q&A
![Page 3: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/3.jpg)
FX Composer 2.0 Introductions
![Page 4: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/4.jpg)
FX Composer 2.0Who is it for?
• Graphics Programmers
• Technical Directors
• Technical Artist
• Artist
![Page 5: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/5.jpg)
FX Composer 2.0 Requirements
• Handling of complex rendering• Extensible via Plug-in-Based Software Architecture• Advanced UI• Scriptable• Highly customizable (Layout management)• Shader Profiling
![Page 6: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/6.jpg)
FX Composer Overview
• Project Explorer and Library Viewer• Properties Panel• Shader Editor and Effect Authoring• 3D Panels• Scripting and Debugging Panels • Texture Explorer• Shader Performance Panel
![Page 7: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/7.jpg)
FX Composer 2.0 Introductions Properties
PreviewInfo, Scripting, ErrorsTextures
CodingManagement
![Page 8: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/8.jpg)
Cross-Platform Shader Authoring
• Multi-Platform Multi-Language IDE– Microsoft HLSL FX– OpenGL CgFX– COLLADA FX Cg– COLLADA FX Cg PS3– COLLADA FX GLSL**– OpengGL ES 2.0**
• A device can support many languages
![Page 9: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/9.jpg)
Cross Platform ShaderAuthoring – Object Model
3D Mesh Material EffectMSFT HLSL
COLLADA FX Cg
CgFX
ProfilesCommon
1..n
![Page 10: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/10.jpg)
Cross Platform ShaderAuthoring
![Page 11: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/11.jpg)
COLLADA FX
• View effect structure– Effects– Techniques– Passes– Parameters
• Select node for properties• Right-click to for menus
– Add children– Remove children– Advanced options
![Page 12: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/12.jpg)
COLLADA FX with CG vs. CGFX
• COLLADA FX for CG authoring– Most user friendly experience– Fully editable via user interface– Less hand coding
• Zero XML• Cg, GLSL only when writing the GPU shader code
• CGFX import– Hand coded– Cannot be edited from Library Viewer because:
• Macros: #define foo replacement_code• Expressions: int foo = bar*3;
![Page 13: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/13.jpg)
Shader Asset Management
• FXC2 allows for Managing Shader Libraries
• COLLADA-based material and effect management
• Uses Project Explorer to move, copy and organize shaders across COLLADA documents
• Handles CgFX and FX
![Page 14: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/14.jpg)
Shader Performance Simulation
![Page 15: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/15.jpg)
FX Composer 2.0 and Production Pipelines
• Support for Heterogeneous Production Pipelines• Custom Production Pipeline Samples• COLLADA-Based Production Pipeline
![Page 16: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/16.jpg)
Support for heterogeneous Production Pipelines
• Semantic and Annotations• Custom Plug-in• Automation of tasks via scripting• Source Control Integration
![Page 17: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/17.jpg)
Semantic and Annotations
float4 LightPos : Position<
string Object = "PointLight";string Space = "Object";
> = {-10.0f, 10.0f, -10.0f, 0.0f};
Semantic
Annotations
![Page 18: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/18.jpg)
Semantics and AnnotationsRemapper
1 :<RemappedSemantic name="myWorldView">2 : <MatrixMultiply description="World * View">3 : <input type="internalsemantic" value="world"/>4 : <input type="internalsemantic" value="view"/>5 : </MatrixMultiply>6 :</RemappedSemantic>
• Programmable data streaming of FXC internal data• Graph-based Evaluation of Semantics via xml
configuration file• Extended Library of Operators
– dot & cross products, mux, demux, matrix ops, ...• Custom Operators via Plug-in
![Page 19: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/19.jpg)
Shader Parameter Bindingto Scene Objects
float4 LightPos : Position<
string Object = "Light0";string Space = "Object";
> = {-10.0f, 10.0f, -10.0f, 0.0f};
float3 LightColor : Diffuse<
string Object = "Light0";string UIName = "Bright Surface Color";string UIWidget = "Color";= {0.8f, 0.5f, 0.1f};
float4 SecondaryLightPos : Position<
string Object = "Light1";string Space = "Object";= {-10.0f, 10.0f, -10.0f, 0.0f};
...
Single Scene Object Binding to multiple parameters
![Page 20: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/20.jpg)
Shader Parameter Bindingto Scene Objects
![Page 21: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/21.jpg)
Custom Plug-ins for Production Pipeline Integration
• Import and Export Plug-ins• Semantic and Annotation Remapper Operator Plug-
ins• Custom Device Back-end Plug-ins• Procedural Geometry Plug-ins (fins, hair, etc...)• Custom Authoring Environment
![Page 22: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/22.jpg)
Custom Plug-ins for Production Pipeline Integration
![Page 23: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/23.jpg)
Automation Tasks Via Scripting
• Automatic Assignment of – Shaders and Effects to Material– Shader Parameters values (numerics, textures,...)– Shader Parameters to Scene Objects (Lights,
Cameras, etc...)• Common Tasks Toolbar (a la Maya/MEL)
![Page 24: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/24.jpg)
Automation Tasks Via Scripting
# Convert any Possible Profile to COLLADA FXdef ConvertToCOLLADA():
effects = FXRuntime.Instance.Library.FindLibraryItems(FXEffect)for effect in effects:
for profile in effect.Profiles:if profile.CanConvertToColladaFX() == True:
profile.ConvertToColladaFX()
# Create an effectdef bindMMM():
CmdGroupBegin.Do("script: assign cgfx files to MMM ")
SelectRenderPort("OGL-Cg")ForceRedraw()
CmdGroupEnd.Do()
# get the cgfx files to assign to MMM
files = FXEffectUtils.GetEffectFiles()for pathname in files:
...
![Page 25: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/25.jpg)
Source Control Integration
• Seamless integration into source control software• File-based reflection of Art Asset States
![Page 26: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/26.jpg)
Custom Production PipelineExample 1
DCCmesh rep
custom file format
.3d
FX Composer 2.0Import Plug-in
Shader Library:
.fx.cgfx
Shader binding
file.xmlExport Plug-in
Custom ToolData
Conditioning runtimefile format
.bin
![Page 27: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/27.jpg)
Custom Production PipelineExample 2
DCC
FX Composer 2.0Import Plug-in
Shader Library:
.fx.cgfx Device Plug-in
runtimefile format
.bin
Game Engine
![Page 28: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/28.jpg)
COLLADA Production Pipeline
FX Composer 2.0
COLLADADCC tools:Maya, 3dsmax, XSI
Data Conditioning binary Game Engine
![Page 29: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/29.jpg)
COLLADA Production PipelineHandheld
FX Composer 2.0 ES
COLLADADCC tools:Maya, 3dsmax, XSI
Data Conditioning binary Game Engine
Remote Renderer
Host PC Target Handheld
![Page 30: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/30.jpg)
PLAYSTATION 3 Pipeline
FXComposer
DCCApplication
Conditioner
SceneEffectLibrary
PS3
GameBinary
Geometry
![Page 31: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/31.jpg)
PLAYSTATION 3 Pipeline
FXComposer
COLLADA Scenewith FX
COLLADA FX
PS3
COLLADAGeometry
CgFX
ConditionerGameBinary
![Page 32: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/32.jpg)
PLAYSTATION 3 Developer Tools
• COLLADA XML file format● Freely available file specification● Freely available XML Schema● Open Source COLLADA DOM
● Importer and Exporters ● Max● Maya ● XSI ● Others
![Page 33: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/33.jpg)
PLAYSTATION 3 Developer Tools
● Registered PS3 developers have extra tools● PSGL ( OpenGL | ES for PS3 ) ● Cg 1.5 API● COLLADA RT ● COLLADA FX Loader
![Page 34: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/34.jpg)
Demo Data
• Geometry Modeled in Maya• Exported to COLLADA • Imported in to FXComposer • CgFX Effects imported and converted to COLLADA FX• Effects assigned and parameters tweaked • Exported again as COLLADA with FX for PS3.• Data Driven Shader Pipeline for PS3!
![Page 35: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/35.jpg)
FX Composer 2.0 Alpha 5
• Full COLLADA Project support• Native COLLADA FX Cg Authoring• COLLADA FX Parameter Scene Binding• Full Custom Semantic and Annotation support• Undo/Redo for all authoring functionalities• Full Python scripting support
• Alpha5 Release ETA End of Summer ’06• Beta Release ETA End of Fall ‘06
![Page 36: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/36.jpg)
Conclusion
• Next-generation of Shader IDE is on its way• Production-ready with powerful features• NVIDIA is closely working with Sony and others to
deliver a professional-grade authoring tool
![Page 37: Shaders : the sky is the limit](https://reader036.vdocuments.us/reader036/viewer/2022071602/613d5dd2736caf36b75c7b1c/html5/thumbnails/37.jpg)
Q&A
• Send us emails if you want to get early alpha and beta releases