Title: ColladaFX
1(No Transcript)
2ColladaFX
Presented by Christian Laforte,
President www.feelingsoftware.com
3Agenda
- ColladaFX overview
- Common-profile materials
- Effects and shaders
- Complementary Collada features
- Demos
- Feeling Softwares ColladaFX plug-in for Maya
- nVidias FX Composer 2.0
- Feeling Softwares Feeling Viewer
4ColladaFX overview
- Pros
- Data-driven Easy to author and modify
- Empower the artists
- Open-format with contributions from HW vendors,
DCCs, application and game developers - Designed for cross-platform, cross-API
- Cons
- Somewhat complex specification
- Chances are youll still need to write special
rendering code for some algorithms
5Comparison with other effects representations
CgFX, .fx
- nVidia CgFX and Microsoft .fx focus exclusively
on materials and shaders - In contrast, ColladaFX augments Collada itself,
to store geometry, animations, effects in a
unified format. - Extensible, cross-API, cross-platform, vendor
agnostic standard ? perfect for OpenGL ES as well
as other profiles. - ColladaFX can still refer to lower-level concepts
like existing CgFX assets.
6Agenda
- ColladaFX overview
- Common-profile materials
- Effects and shaders
- Complementary Collada features
- Demos
- Feeling Softwares ColladaFX plug-in for Maya
- nVidias FX Composer 2.0
- Feeling Softwares Feeling Viewer
7Common-profile shaders - Overview
- Shading models supported Lambert, Blinn, Phong
- Supported by all DCCs
- Encapsulates values and declarations for
platform-independent fixed-function shader
8Common-profile shadersFloppy disk example
9Collada document
10Document asset tag
11Image library
12Effects library 1
13Effects library 2
14Effects library 3
15Materials library
16Geometry library 1
17Geometry library 2
18Polygons
19Visual scenes library
20Instancing geometry, multiple-material assignment
21Usefulness of common-profile materials
- Wide support in DCCs
- Fall-back when no other profile is supported
- Orthogonal with lighting
- Supports some advanced concepts
- Multi-texturing
- higher-level shading trees
- Bump
- Limitations
- Limited to simple effects
22Agenda
- ColladaFX overview
- Common-profile materials
- Effects and shaders
- Complementary Collada features
- Demos
- Feeling Softwares ColladaFX plug-in for Maya
- nVidias FX Composer 2.0
- Feeling Softwares Feeling Viewer
23Effects and shaders
24ColladaFX profiles
- Concepts
- Supported
- Common (profile_COMMON)
- Cg (profile_CG)
- OpenGL (profile_GLSL)
- OpenGL ES 1.x (profile_GLES)
- In progress
- OpenGL ES 2.0
- HLSL
25Pass
- Declaration of render states, shaders, and
settings for one rendering pipeline - Applied by FX runtime before submitting geometry
26Render states
- paramparam_reference/
- Fully-define render states for each profile
- Details in Collada 1.4 spec and schema
27- Exposes some of the shaders parameters to the
compiler and runtime - Specifies type and initial value
28Semantics
- Meta information that describes the purpose of a
parameter declaration - Three common uses
- Hardware resource allocated to a parameter, e.g.
TEXCOORD2, NORMAL - Value extracted from scene graph or API, e.g.
MODELVIEWMATRIX, CAMERAPOS, VIEWPORTSIZE - User-defined value set by the application at
run-time, e.g. DAMAGE_PERCENT, MAGIC_LEVEL
29Annotations
- Annotations communicate meta-information from DCC
to effect runtime
30Bind
- Binds value to uniform inputs of a shader or
binds values to effect parameters upon
instantiation - Also used to map predefined parameters
31- Supported types
- 1D, 2D, Rect, 3D and Cube texture samplers
323 ways to specify shader source
- Can be included from external file
- Can be inlined
- Can be pre-compiled
33Texture pipeline (specific to fixed pipeline
GLES)
- Defines a set of texturing commands that will be
converted into multitexturing operations using
glTexEnv - Commands are assigned to texture units in a late
binding step based on name - See next slide
34Texture pipeline(specific to fixed pipeline GLES)
35Agenda
- ColladaFX overview
- Common-profile materials
- Effects and shaders
- Complementary Collada features
- Demos
- Feeling Softwares ColladaFX plug-in for Maya
- nVidias FX Composer 2.0
- Feeling Softwares Feeling Viewer
36- A trap-door for extensibility
- Applications are free to define their own extra
data - Similar to GL extensions, can evolve into
core feature. - Examples from ColladaMaya
- layered textures, using to encode texture
blending mode. - wrap, mirror modes for each texture (next slide)
37 example
38Animation
- Pretty much everything can be animated,
targetting through id/sid (scope id).
39So much to say, so little time
- 1.4 has support for
- Flexible multiple render targets (MRT)
- Procedural surface generators
40Current Limitations forColladaFX for OpenGL ES
- No standard binding runtime yet
- No DCC support for OpenGL ES fixed pipeline
- Work-around use other profiles (e.g. Cg or
common) or ask Feeling Software. - GL extensions require manual code
41Agenda
- ColladaFX overview
- Common-profile materials
- Effects and shaders
- Complementary Collada features
- Demos
- Feeling Softwares ColladaFX plug-in for Maya
- nVidias FX Composer 2.0
- Feeling Softwares Feeling Viewer
42Demonstrations
- From Feeling Software
- ColladaFX plug-in for Maya
- Feeling Viewer
- From nVidia
- FX Composer
43Conclusion
- Collada and ColladaFX
- Are flexible enough for next-gen games
- Simplify assets authoring and conditioning
- Expose entire OpenGL ES state
- Continue to evolve at fast pace
44Thanks
- ColladaFX working group, especiallyRobin Green,
SCEA (chair for 1.4)Daniel Horowitz, nVidia
(present chair)Stephen Wilkinson, Nokia (GLES) - Feeling Software Collada teamGuillaume Laforte,
Zhang Jian, Antoine Azar, Alfred Leung, Misako
Matsumoto
45Questions?
- claforte_at_feelingsoftware.com
- http//www.feelingsoftware.com
- Free tools include ColladaMaya, Feeling Viewer,
ColladaFX plug-in for Maya, including Japanese
documentation. - http//www.nvidia.com
- FX Composer