1 / 47

Cross-Platform Development using FX Composer 2.0

Cross-Platform Development using FX Composer 2.0. Chris Maughan · Kevin Bjorke Alpha 4 · GDC 2006. Software Overview & New Features. Chris Maughan. Screenshot. Game Artists. Production TDs. Engine Programmers. Target Audience. Photos courtesy J Samuel Burner, Deb & Matt.

jonny
Download Presentation

Cross-Platform Development using FX Composer 2.0

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Software Overview & New Features Chris Maughan

  3. Screenshot

  4. Game Artists Production TDs Engine Programmers Target Audience Photos courtesy J Samuel Burner, Deb & Matt

  5. Why FX Composer 2 ? • Draws things a DCC app can’t • Shadows, full-screen effects • New hardware features • Fully customizable • Plug-ins, Scripting, devices, and GUI Layout • Engine integration • Shader profiling • Using our own compiler technology

  6. FX Composer Introduction • Major update from 1.x • Reworked 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

  7. Reworked design • Now written in C#/.NET • Easy to extend and integrate • A hierarchical plugin system • Completely extensible – plugins define layers of behaviour • SDK examples • A graph system • Manages component dependencies • Used in the rendering engine

  8. Rendering Engine • Extensible • Plugin 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 graph • Layered effects just build bigger graphs…

  9. 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; >

  10. Shader (ColladaFX) Edge Detect RT Texture Viewport DrawScene Draw Quad Clear Input Pin Depth Output Pin Flow Pin FX Composer 2 Graph Edge Detect

  11. ‘posterize, hot corona + posterize’, ‘hotcorona’, ‘explode’

  12. User Interface • All docking windows are plugins • Can add menu items/toolbars to the application window • VC2005 docking style • Scripts can create menus & toolbars • Many new and enhanced controls • Full Undo/Redo

  13. Multiple Scenes Effects & Materials Project Explorer

  14. Colors Link Edit Button Selection Slider Properties Panel

  15. Hue/Sat Intensity Numeric HDR Color Picker

  16. Cubemap Panorama Texture Explorer

  17. Syntax Hilighting Line #’s Collapser Material Editor

  18. Log Debug Script Scripting and Debugging Panels

  19. From Project Explorer From Windows Explorer Drag and Drop Assignments

  20. Drag Indicator Manipulator Scene Viewer

  21. COLLADA is an open asset exchange database format (.dae) • COLLADA is governed by the Khronos Group • Includes numerous ISVs and IHVs • Mature DCC plugins for extensive support • FX Composer 2 can use COLLADA for asset interchange • Used to load scene file • Operates on effects and materials currently • Other data in the file is untouched • Other file formats supported

  22. 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

  23. 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 control • You can shoot yourself in the foot if you want to… • …with extreme prejudice

  24. Production Use & Demonstration Kevin Bjorke

  25. Simple FX Composer 2 Pipeline Create scene Assign materials to objects DCC Application COLLADA Modify shader techniques Tweak shader properties FX Composer 2.0 COLLADA

  26. Plays Well With Others Alias Maya 7 Autodesk M+E 3ds max 8 COLLADA FX Composer 2.0 Avid|Softimage XSI 5.0

  27. Mix & Match APIs .fx .fx .cgfx .cgfx FX Composer 2.0 .dae Cg .dae Cg .dae GLSL .dae GLSL .dae HLSL .dae HLSL COLLADA

  28. A Thousand and One Uses!

  29. IronPython • “Iron” = “IRun On .Net” http://workspace.gotdotnet.com/ironpython

  30. 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

  31. All Devices Have Technique Lists

  32. 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

  33. DOTry ThisAt Home

  34. Demo – See Notes for All the Steps!

  35. Demo – See Notes for All the Steps!

  36. Demo – See Notes for All the Steps!

More Related