Shaders : the sky is the limit Sébastien Dominé NVIDIA Richard Stenson SCEA

Similar documents
Pipeline Integration with FX Composer. Chris Maughan NVIDIA Corporation

Siggraph Agenda. Usability & Productivity. FX Composer 2.5. Usability & Productivity 9/12/2008 9:16 AM

Accelerating Realism with the (NVIDIA Scene Graph)

Sébastien Dominé, NVIDIA. CgFX

Introduction to Shaders.

NVIDIA Developer Tools for Graphics and PhysX

Shader Programming CgFX, OpenGL 2.0. Michael Haller 2003

RenderMonkey 1.6. Natalya Tatarchuk ATI Research

OpenGL ES 2.0 : Start Developing Now. Dan Ginsburg Advanced Micro Devices, Inc.

NVSG NVIDIA Scene Graph

FX Composer 1.5. Chris Maughan

NVIDIA Authoring Tools for

NVIDIA FX Composer. Developer Presentation June 2004

Canonical Shaders for Optimal Performance. Sébastien Dominé Manager of Developer Technology Tools

NVIDIA Tools for Artists

Semantic and Annotation Remapping in FX Composer

Content Loader Introduction

Neil Trevett Vice President Mobile Ecosystem, NVIDIA President, Khronos Group. Copyright Khronos Group Page 1

Real - Time Rendering. Graphics pipeline. Michal Červeňanský Juraj Starinský

User s Guide. FX Composer 2.5. April 2008 DU _v01

developer.nvidia.com The Source for GPU Programming

Custom Component Development Using RenderMonkey SDK. Natalya Tatarchuk 3D Application Research Group ATI Research, Inc

Content. Building Geometry Appearance Lights Model Loaders

NVIDIA Nsight Visual Studio Edition 4.0 A Fast-Forward of All the Greatness of the Latest Edition. Sébastien Dominé, NVIDIA

User Guide. DU _v01f January 2004

NVIDIA Developer Toolkit. March 2005

Pump Up Your Pipeline

CS 354R: Computer Game Technology

3D Production Pipeline

Adding Advanced Shader Features and Handling Fragmentation

The PowerVR Insider SDK. PowerVR Developer Technology

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

CS GPU and GPGPU Programming Lecture 7: Shading and Compute APIs 1. Markus Hadwiger, KAUST

The Application Stage. The Game Loop, Resource Management and Renderer Design

Bruno Pereira Evangelista

Advanced Rendering & Shading

NVIDIA Parallel Nsight. Jeff Kiel

Shaders. Slide credit to Prof. Zwicker

Graphics Hardware. Graphics Processing Unit (GPU) is a Subsidiary hardware. With massively multi-threaded many-core. Dedicated to 2D and 3D graphics

Performance Tools. Raul Aguaviva, Sim Dietrich, and Sébastien Dominé

The Ultimate Developers Toolkit. Jonathan Zarge Dan Ginsburg

Content. Building Geometry Appearance Lights Model Loaders

From Art to Engine with Model I/O

Tools To Get Great Graphics Performance

Shaders (some slides taken from David M. course)

Tutorial 19: VFX Workflows with Alembic

Cinema 4D R20 (SP2) Change List Cinema 4D / BodyPaint 3D Service Release

Dominic Filion, Senior Engineer Blizzard Entertainment. Rob McNaughton, Lead Technical Artist Blizzard Entertainment

Developer Tools. Robert Strzodka. caesar research center Bonn, Germany

Engine Development & Support Team Lead for Korea UE4 Mobile Team Lead

The Future of #GPU Rendering #GTC17 #Octane

RenderMonkey SDK Version 1.71

Team 2: Boeing KML Urban Scene Builder Technical Specification / Schedule KML Urban Scene Builder 2008

Viewport 2.0 API Porting Guide for Locators

Cg Toolkit. Cg 2.0 May 2008 Release Notes

NeuroTV Interactive Solutions Provider. Guy Vanden Bemden Directeur Général

Prospects for a more robust, simpler and more efficient shader cross-compilation pipeline in Unity with SPIR-V

3D on the Web Why We Need Declarative 3D Arguments for an W3C Incubator Group

Developing the Roadmap - Director Next Survey

Dave Shreiner, ARM March 2009

Cg Toolkit. Cg 2.0 January 2008 Release Notes

Game Development for

RSX Best Practices. Mark Cerny, Cerny Games David Simpson, Naughty Dog Jon Olick, Naughty Dog

Mali Developer Resources. Kevin Ho ARM Taiwan FAE

Teaching Cg. This presentation introduces Cg ( C for graphics ) and explains why it would be useful when teaching a computer graphics course.

Practical Performance Analysis Koji Ashida NVIDIA Developer Technology Group

Cg 2.0. Mark Kilgard

Whiz-Bang Graphics and Media Performance for Java Platform, Micro Edition (JavaME)

STARTING COMPOSITING PROJECT

Lecture 2. Shaders, GLSL and GPGPU

Squeezing Performance out of your Game with ATI Developer Performance Tools and Optimization Techniques

Graphics Hardware. Instructor Stephen J. Guy

<Insert Picture Here> JavaFX 2.0

Game Programming with. presented by Nathan Baur

Mobile graphics API Overview

WebGL Seminar: O3D. Alexander Lokhman Tampere University of Technology

Real-Time Universal Capture Facial Animation with GPU Skin Rendering

Seamless Compute and OpenGL Graphics Development in NVIDIA Nsight 3.0 Visual Studio Edition and Beyond 3/20/2013

ATI RenderMonkey IDE Version 1.62

S5409: Custom Iray Applications and MDL for Consistent Visual Appearance Throughout Your Pipeline

Iray for Cinema 4D Release Version 2.0 New Features Improved MDL Material Browser Stacking of MDL Material Layers

Introduction to OpenGL

The Shadow Rendering Technique Based on Local Cubemaps

MAXIS-mizing Darkspore*: A Case Study of Graphic Analysis and Optimizations in Maxis Deferred Renderer

GPU Performance Tools

GPU Ray Tracing at the Desktop and in the Cloud. Phillip Miller, NVIDIA Ludwig von Reiche, mental images

Unity Software (Shanghai) Co. Ltd.

Computer graphics 2: Graduate seminar in computational aesthetics

Index FEATURES LIST 2

printf Debugging Examples

BitSquid Tech Benefits of a data-driven renderer. Tobias Persson GDC 2011

Scenegraph. Vienna University of Technology 2

OPENGL RENDERING PIPELINE

Technical Report. Anisotropic Lighting using HLSL

OpenGL ES update. Eisaku Ohbuchi Digital Media Professionals Inc.

DX10, Batching, and Performance Considerations. Bryan Dudash NVIDIA Developer Technology

Evolution of GPUs Chris Seitz

Using the PowerVR SDK to Optimize your Renderer

WHAT S NEW IN V-RAY NEXT FOR SKETCHUP. February 2019

Copyright Khronos Group Page 1

Transcription:

Shaders : the sky is the limit Sébastien Dominé NVIDIA Richard Stenson SCEA

Agenda FX Composer 2.0 Introductions Cross-Platform Shader Authoring FX Composer 2.0 and Production Pipelines PLAYSTATION 3 Production Pipeline and Developer Tools Conclusion Q&A

FX Composer 2.0 Introductions

FX Composer 2.0 Who is it for? Graphics Programmers Technical Directors Technical Artist Artist

FX Composer 2.0 Requirements Handling of complex rendering Extensible via Plug-in-Based Software Architecture Advanced UI Scriptable Highly customizable (Layout management) Shader Profiling

FX Composer Overview Project Explorer and Library Viewer Properties Panel Shader Editor and Effect Authoring 3D Panels Scripting and Debugging Panels Texture Explorer Shader Performance Panel

Management Coding FX Composer 2.0 Introductions Properties Textures Info, Scripting, Errors Preview

Cross-Platform Shader Authoring Multi-Platform Multi-Language IDE Microsoft HLSL FX OpenGL CgFX COLLADA FX Cg COLLADA FX Cg PS3 COLLADA FX GLSL** OpengGL ES 2.0** A device can support many languages

Cross Platform Shader Authoring Object Model Profiles Common 1..n 3D Mesh Material Effect MSFT HLSL COLLADA FX Cg CgFX

Cross Platform Shader Authoring

COLLADA FX View effect structure Effects Techniques Passes Parameters Select node for properties Right-click to for menus Add children Remove children Advanced options

COLLADA FX with CG vs. CGFX COLLADA FX for CG authoring Most user friendly experience Fully editable via user interface Less hand coding Zero XML Cg, GLSL only when writing the GPU shader code CGFX import Hand coded Cannot be edited from Library Viewer because: Macros: #define foo replacement_code Expressions: int foo = bar*3;

Shader Asset Management FXC2 allows for Managing Shader Libraries COLLADA-based material and effect management Uses Project Explorer to move, copy and organize shaders across COLLADA documents Handles CgFX and FX

Shader Performance Simulation

FX Composer 2.0 and Production Pipelines Support for Heterogeneous Production Pipelines Custom Production Pipeline Samples COLLADA-Based Production Pipeline

Support for heterogeneous Production Pipelines Semantic and Annotations Custom Plug-in Automation of tasks via scripting Source Control Integration

Semantic and Annotations Semantic float4 LightPos : Position < string Object = "PointLight"; string Space = "Object"; > = {-10.0f, 10.0f, -10.0f, 0.0f}; Annotations

Semantics and Annotations Remapper Programmable data streaming of FXC internal data Graph-based Evaluation of Semantics via xml configuration file Extended Library of Operators dot & cross products, mux, demux, matrix ops,... Custom Operators via Plug-in 1 :<RemappedSemantic name="myworldview"> 2 : <MatrixMultiply description="world * View"> 3 : <input type="internalsemantic" value="world"/> 4 : <input type="internalsemantic" value="view"/> 5 : </MatrixMultiply> 6 :</RemappedSemantic>

Shader Parameter Binding to Scene Objects float4 LightPos : Position < string Object = "Light0"; string Space = "Object"; > = {-10.0f, 10.0f, -10.0f, 0.0f}; float3 LightColor : Diffuse < string Object = "Light0"; string UIName = "Bright Surface Color"; string UIWidget = "Color"; = {0.8f, 0.5f, 0.1f}; Single Scene Object Binding to multiple parameters float4 SecondaryLightPos : Position < string Object = "Light1"; string Space = "Object"; = {-10.0f, 10.0f, -10.0f, 0.0f};...

Shader Parameter Binding to Scene Objects

Custom Plug-ins for Production Pipeline Integration Import and Export Plug-ins Semantic and Annotation Remapper Operator Plugins Custom Device Back-end Plug-ins Procedural Geometry Plug-ins (fins, hair, etc...) Custom Authoring Environment

Custom Plug-ins for Production Pipeline Integration

Automation Tasks Via Scripting Automatic Assignment of Shaders and Effects to Material Shader Parameters values (numerics, textures,...) Shader Parameters to Scene Objects (Lights, Cameras, etc...) Common Tasks Toolbar (a la Maya/MEL)

Automation Tasks Via Scripting # Convert any Possible Profile to COLLADA FX def ConvertToCOLLADA(): effects = FXRuntime.Instance.Library.FindLibraryItems(FXEffect) for effect in effects: for profile in effect.profiles: if profile.canconverttocolladafx() == True: profile.converttocolladafx() # Create an effect def bindmmm(): CmdGroupBegin.Do("script: assign cgfx files to MMM ") SelectRenderPort("OGL-Cg") ForceRedraw() CmdGroupEnd.Do() # get the cgfx files to assign to MMM... files = FXEffectUtils.GetEffectFiles() for pathname in files:

Source Control Integration Seamless integration into source control software File-based reflection of Art Asset States

Custom Production Pipeline Example 1 Shader Library:.fx FX Composer 2.0 Shader binding file.cgfx Import Plug-in Export Plug-in.xml DCC mesh rep custom file format.3d Custom Tool Data Conditioning runtime file format.bin

Custom Production Pipeline Example 2 Shader Library:.fx.cgfx FX Composer 2.0 Import Plug-in Device Plug-in Game Engine DCC runtime file format.bin

COLLADA Production Pipeline FX Composer 2.0 DCC tools: Maya, 3dsmax, XSI COLLADA Data Conditioning binary Game Engine

COLLADA Production Pipeline Handheld Host PC FX Composer 2.0 ES Target Handheld Remote Renderer DCC tools: Maya, 3dsmax, XSI COLLADA Data Conditioning binary Game Engine

PLAYSTATION 3 Pipeline FX Composer Geometry Effect Library DCC Application Scene Game Binary Conditioner PS3

PLAYSTATION 3 Pipeline COLLADA Geometry CgFX COLLADA FX FX Composer COLLADA Scene with FX Game Binary Conditioner PS3

PLAYSTATION 3 Developer Tools COLLADA XML file format Freely available file specification Freely available XML Schema Open Source COLLADA DOM Importer and Exporters Max Maya XSI Others

PLAYSTATION 3 Developer Tools Registered PS3 developers have extra tools PSGL ( OpenGL ES for PS3 ) Cg 1.5 API COLLADA RT COLLADA FX Loader

Demo Data Geometry Modeled in Maya Exported to COLLADA Imported in to FXComposer CgFX Effects imported and converted to COLLADA FX Effects assigned and parameters tweaked Exported again as COLLADA with FX for PS3. Data Driven Shader Pipeline for PS3!

FX Composer 2.0 Alpha 5 Full COLLADA Project support Native COLLADA FX Cg Authoring COLLADA FX Parameter Scene Binding Full Custom Semantic and Annotation support Undo/Redo for all authoring functionalities Full Python scripting support Alpha5 Release ETA End of Summer 06 Beta Release ETA End of Fall 06

Conclusion Next-generation of Shader IDE is on its way Production-ready with powerful features NVIDIA is closely working with Sony and others to deliver a professional-grade authoring tool

Q&A Send us emails if you want to get early alpha and beta releases fxcomposer@nvidia.com