Date post: | 23-Dec-2015 |
Category: |
Documents |
Upload: | morris-ross |
View: | 215 times |
Download: | 0 times |
Cross-Platform Development
using FX Composer 2.0Chris Maughan · Kevin Bjorke
Alpha 4 · GDC 2006
Copyright © NVIDIA Corporation 2004
Software Overview & New
Features
Chris Maughan
Copyright © NVIDIA Corporation 2004
Screenshot
Copyright © NVIDIA Corporation 2004
Target Audience
GameArtists
ProductionTDs
EngineProgrammers
Photos courtesy J Samuel Burner, Deb & Matt
Copyright © NVIDIA Corporation 2004
Why FX Composer 2 ?
Draws things a DCC app can’tShadows, full-screen effects
New hardware features
Fully customizablePlug-ins, Scripting, devices, and GUI Layout
Engine integration
Shader profilingUsing our own compiler technology
Copyright © NVIDIA Corporation 2004
FX Composer Introduction
Major update from 1.xReworked from the ground up
Generalized rendering engine
User interface improvements
Plugin IO – e.g. COLLADA, OBJ, ..
Multiple device support - Cg, PS3, GLSL, etc…
Scripting with IronPython.NET
Copyright © NVIDIA Corporation 2004
Reworked design
Now written in C#/.NETEasy to extend and integrate
A hierarchical plugin systemCompletely extensible – plugins define layers of behaviour
SDK examples
A graph systemManages component dependencies
Used in the rendering engine
Copyright © NVIDIA Corporation 2004
Rendering Engine
ExtensiblePlugin graph nodes can change rendering behaviour
Custom graphs to match your game engine
Several default graph nodes supplied – draw, clear, etc.
COLLADA FX & SAS supported through the graphLayered effects just build bigger graphs…
Copyright © NVIDIA Corporation 2004
DXSAS Sample – Edge Detect
Technique Main <
string Script =RenderColorTarget0=SceneTexture;
RenderDepthStencilTarget=DepthBuffer; ClearSetColor=ClearColor; ClearSetDepth=ClearDepth;
Clear=Color;Clear=Depth;
ScriptExternal=color; Pass=ImageProc;>Pass ImageProc< string Script = RenderColorTarget0=;
RenderDepthStencilTarget=;Draw=Buffer;
>
Copyright © NVIDIA Corporation 2004
RT Texture
Depth
Shader(ColladaFX)Edge Detect
DrawScene Draw QuadClearViewport
FX Composer 2 GraphEdge Detect
Input PinOutput Pin
Flow Pin
Copyright © NVIDIA Corporation 2004
‘posterize, hot corona +
posterize’, ‘hotcorona’,
‘explode’
Copyright © NVIDIA Corporation 2004
User Interface
All docking windows are pluginsCan add menu items/toolbars to the application windowVC2005 docking style
Scripts can create menus & toolbars
Many new and enhanced controls
Full Undo/Redo
Copyright © NVIDIA Corporation 2004
Project Explorer
MultipleScenes
Effects&
Materials
Copyright © NVIDIA Corporation 2004
Properties Panel
SelectionSlider
Link
Colors
EditButton
Copyright © NVIDIA Corporation 2004
HDR Color Picker
Hue/Sat Intensity
Numeric
Copyright © NVIDIA Corporation 2004
Texture Explorer
CubemapPanorama
Copyright © NVIDIA Corporation 2004
Material Editor
SyntaxHilighting
Line #’s
Collapser
Copyright © NVIDIA Corporation 2004
Scripting and Debugging Panels
Log Debug Script
Copyright © NVIDIA Corporation 2004
Drag and Drop Assignments
From
Win
dows
Explo
rer
From Project Explorer
Copyright © NVIDIA Corporation 2004
Scene Viewer
Manipulator
Drag Indicator
Copyright © NVIDIA Corporation 2004
COLLADA is an open asset exchange database format (.dae)
COLLADA is governed by the Khronos GroupIncludes numerous ISVs and IHVsMature DCC plugins for extensive support
FX Composer 2 can use COLLADA for asset interchangeUsed to load scene fileOperates on effects and materials currentlyOther data in the file is untouchedOther file formats supported
Copyright © NVIDIA Corporation 2004
Devices
Support Cg, Direct3D, PS3, GL-ES, GLSL, etc…
Simultaneous rendering on the same model
COLLADA file contains different ‘profiles’ in the same effect
Scene shown was imported from XSI, then Direct3D added
Copyright © NVIDIA Corporation 2004
Scripting
Plugin provided that enables scripting with IronPython.NET
Any .NET language could be used though
Scripting is integrated completely into the engine…because it talks to the engine the same way as any other plugin
Complete controlYou can shoot yourself in the foot if you want to…
…with extreme prejudice
Copyright © NVIDIA Corporation 2004
Production Use & Demonstration
Kevin Bjorke
Copyright © NVIDIA Corporation 2004
Simple FX Composer 2 Pipeline
FX Composer 2.0
DCC ApplicationCreate scene
Assign materials to objects
Modify shader techniques
Tweak shader properties
COLLADA
COLLADA
Copyright © NVIDIA Corporation 2004
Plays Well With Others
FX Composer 2.0 COLLADA
Alias Maya 7
Autodesk M+E
3ds max 8
Avid|Softimage
XSI 5.0
Copyright © NVIDIA Corporation 2004
Mix & Match APIs
.fx
.cgfx
.dae Cg
FX Composer 2.0
.dae GLSL
.dae HLSLCOLLADA
.fx
.cgfx
.dae Cg
.dae GLSL
.dae HLSL
Copyright © NVIDIA Corporation 2004
A Thousand and One Uses!
Copyright © NVIDIA Corporation 2004
IronPython
“Iron” = “I Run On .Net”
http://workspace.gotdotnet.com/ironpython
Copyright © NVIDIA Corporation 2004
Integrated Shader Profiling
Convenient tweak-and-profile workflow to tune shaders
Integrated NVShaderPerf 2.0 gives access to:Performance across multiple GPUs and drivers
Assembly output
Vertex and pixel throughput
Cycle count
Register usage
Coming Soon
Copyright © NVIDIA Corporation 2004
Copyright © NVIDIA Corporation 2004
Copyright © NVIDIA Corporation 2004
Copyright © NVIDIA Corporation 2004
Copyright © NVIDIA Corporation 2004
Copyright © NVIDIA Corporation 2004
Copyright © NVIDIA Corporation 2004
Copyright © NVIDIA Corporation 2004
Copyright © NVIDIA Corporation 2004
All Devices Have Technique Lists
Copyright © NVIDIA Corporation 2004
Copyright © NVIDIA Corporation 2004
Technique-a-Rama
Each material will have a list of techniques for each render device (here they are all the same, but it’s not required!) and all will share the material parameters
Copyright © NVIDIA Corporation 2004
Copyright © NVIDIA Corporation 2004
DOTry ThisAt Home
Copyright © NVIDIA Corporation 2004
Demo – See Notes for All the Steps!
Copyright © NVIDIA Corporation 2004
Demo – See Notes for All the Steps!
Copyright © NVIDIA Corporation 2004
Demo – See Notes for All the Steps!
Copyright © NVIDIA Corporation 2004