+ All Categories
Home > Documents > Cross-Platform Development using FX Composer 2.0 Chris Maughan · Kevin Bjorke Alpha 4 · GDC 2006.

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

Date post: 23-Dec-2015
Category:
Upload: morris-ross
View: 215 times
Download: 0 times
Share this document with a friend
Popular Tags:
47
Cross-Platform Development using FX Composer 2.0 Chris Maughan · Kevin Bjorke Alpha 4 · GDC 2006
Transcript
Page 1: Cross-Platform Development using FX Composer 2.0 Chris Maughan · Kevin Bjorke Alpha 4 · GDC 2006.

Cross-Platform Development

using FX Composer 2.0Chris Maughan · Kevin Bjorke

Alpha 4 · GDC 2006

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

Copyright © NVIDIA Corporation 2004

Software Overview & New

Features

Chris Maughan

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

Copyright © NVIDIA Corporation 2004

Screenshot

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

Copyright © NVIDIA Corporation 2004

Target Audience

GameArtists

ProductionTDs

EngineProgrammers

Photos courtesy J Samuel Burner, Deb & Matt

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

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

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

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

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

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

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

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…

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

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;

>

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

Copyright © NVIDIA Corporation 2004

RT Texture

Depth

Shader(ColladaFX)Edge Detect

DrawScene Draw QuadClearViewport

FX Composer 2 GraphEdge Detect

Input PinOutput Pin

Flow Pin

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

Copyright © NVIDIA Corporation 2004

‘posterize, hot corona +

posterize’, ‘hotcorona’,

‘explode’

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

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

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

Copyright © NVIDIA Corporation 2004

Project Explorer

MultipleScenes

Effects&

Materials

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

Copyright © NVIDIA Corporation 2004

Properties Panel

SelectionSlider

Link

Colors

EditButton

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

Copyright © NVIDIA Corporation 2004

HDR Color Picker

Hue/Sat Intensity

Numeric

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

Copyright © NVIDIA Corporation 2004

Texture Explorer

CubemapPanorama

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

Copyright © NVIDIA Corporation 2004

Material Editor

SyntaxHilighting

Line #’s

Collapser

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

Copyright © NVIDIA Corporation 2004

Scripting and Debugging Panels

Log Debug Script

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

Copyright © NVIDIA Corporation 2004

Drag and Drop Assignments

From

Win

dows

Explo

rer

From Project Explorer

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

Copyright © NVIDIA Corporation 2004

Scene Viewer

Manipulator

Drag Indicator

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

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

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

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

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

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

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

Copyright © NVIDIA Corporation 2004

Production Use & Demonstration

Kevin Bjorke

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

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

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

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

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

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

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

Copyright © NVIDIA Corporation 2004

A Thousand and One Uses!

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

Copyright © NVIDIA Corporation 2004

IronPython

“Iron” = “I Run On .Net”

http://workspace.gotdotnet.com/ironpython

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

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

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

Copyright © NVIDIA Corporation 2004

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

Copyright © NVIDIA Corporation 2004

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

Copyright © NVIDIA Corporation 2004

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

Copyright © NVIDIA Corporation 2004

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

Copyright © NVIDIA Corporation 2004

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

Copyright © NVIDIA Corporation 2004

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

Copyright © NVIDIA Corporation 2004

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

Copyright © NVIDIA Corporation 2004

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

Copyright © NVIDIA Corporation 2004

All Devices Have Technique Lists

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

Copyright © NVIDIA Corporation 2004

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

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

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

Copyright © NVIDIA Corporation 2004

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

Copyright © NVIDIA Corporation 2004

DOTry ThisAt Home

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

Copyright © NVIDIA Corporation 2004

Demo – See Notes for All the Steps!

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

Copyright © NVIDIA Corporation 2004

Demo – See Notes for All the Steps!

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

Copyright © NVIDIA Corporation 2004

Demo – See Notes for All the Steps!

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

Copyright © NVIDIA Corporation 2004


Recommended