Cross-Platform Development using FX Composer 2.0 Chris Maughan · Kevin Bjorke Alpha 4 · GDC 2006

Preview:

Citation preview

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