GDC 2005 - PowerPoint PPT Presentation

1 / 78
About This Presentation
Title:

GDC 2005

Description:

Reduce art iteration counts. Reduce time spent not authoring art ... Stag-to-stage. User should not modify stage outputs. Use stage option files and resources ... – PowerPoint PPT presentation

Number of Views:60
Avg rating:3.0/5.0
Slides: 79
Provided by: jami127
Category:
Tags: gdc | stag

less

Transcript and Presenter's Notes

Title: GDC 2005


1
(No Transcript)
2
Pre-visualization of Art andExtensible
Rendering With Shaders
  • Daniel Horowitz
  • NVIDIA Corporation
  • Khronos COLLADA FX Chairman

3
Big Words What does it mean?
  • Enabling efficiency
  • Prototype
  • Produce
  • Preview
  • Focus on
  • Reduce art iteration counts
  • Reduce time spent not authoring art
  • Reduce re-authoring of art
  • Reduce team dependencies

4
Why?
5
Industry Trends
  • Technology
  • More sophisticated
  • Higher consumer expectation
  • More software and content complexity
  • Staffing
  • Increasing developer staff
  • Explosive growth on artist staff
  • Production and publishing
  • Increasing time-to-market, cost, risk
  • More franchising
  • Less gambling on innovation

6
Why Explosive Artists Growth?
  • Better Art
  • More Polygons
  • More textures - albedo, specular, normal
  • More resolution
  • More animations
  • More Art
  • More character
  • More levels
  • More clutter
  • Trash, shrubbery, small details

7
Breaking the Trend
  • Whats your model for cutting costs?
  • Reduce delivery time?
  • Casual games
  • Licensing
  • Increasing return-on-investment?
  • Porting
  • Reduce staff size?
  • Contract workers
  • What about better tools infrastructure?

8
BuildingA Better Tool for the Job
  • Relate
  • Design
  • Deliver

9
Be Humble
  • Why do customers buy a game?
  • Art, game-play, story
  • Good developers are humble!
  • Who are your clients?
  • Mostly artists and game-play designers
  • Provide good customer service to clients

10
Design Considerations
  • Keep artists focused ON THE ART!
  • Reduce brain to screen time
  • Visualize soon
  • Visualize often
  • Detect problems early
  • Humans are slow - automate

11
Dont be Hasty
  • By developer for developers (no thanks)
  • Consult the clients
  • DCC commandments
  • Know thy application
  • Limited usage of DCC application
  • There are thousands of buttons/nodes/modifiers
  • Did you support enough?
  • Thou shall test more than 1 artists work
  • Limited quantity of art samples
  • Not all art is the same
  • 101 way to do the same thing

12
Production with Preview
  • Author-time vs. Run-time
  • Minimize the visual difference
  • Minimize time-to-visualize (ie preview)
  • Enable preproduction without a run-time
  • Integrate with familiar tools
  • Model viewer
  • Material assignment
  • Material customization

13
External Viewer
  • Is this your game?
  • Export launch
  • File-watching
  • Temp files
  • Pipes, TCP/IP
  • Performance tools (PIX, NVPerfHudES)
  • Provide a playground for models

14
Internal Viewer
  • Microsofts plug-ins for Maya

15
Native Viewer
  • NVIDIA Cg plug-ins for Maya

16
Game Materials
  • Strings (Name Hackery)
  • Easy to implement BUT
  • Messy names
  • Parsing
  • Prone to spelling errors
  • Compared with options or without?

17
Game Materials
  • Custom attributes
  • Increased flexibility
  • Provides tags and namevalue pairs
  • Still prone to spelling errors
  • Hard to locate
  • Reduce errors
  • Use scripts or build UI to add and modify
  • Prefix names and tags

18
Game Materials
  • Effect definition plug-ins
  • Integrated
  • Familiar
  • Accessible
  • Definitions come from a shader file
  • Custom values live in DCC app
  • Ex. DirectX plug-ins for Maya

19
Game Materials
20
Game Materials
  • Effect object plug-ins
  • Import/reference material objects
  • Pros of effect definition plug-in
  • Direct use of assets
  • Assign materials
  • Trade-offs
  • Restricted creation
  • Restricted modification

21
Shader Friendly Tools
22
Mystery Meat
  • Vertex semantics are not enough!
  • What are these parameters?
  • How do I operate it?

23
Shader Metadata
  • User Interface
  • Scene Binding
  • Orchestration

24
User Interface
  • How do you present bools, ints, floats?
  • Controls
  • Ranges
  • Stride
  • Steps

25
Scene Binding
  • Vertex declarations are a good start
  • What about the parameters?
  • Scene
  • Identify scene values for parameters
  • Models - World and skinning matrices, etc
  • Cameras view, projection, viewport, etc
  • Lights type, color, direction, position, etc

26
Orchestration
  • Scenarios
  • Image burn-in
  • Generating shadow buffers
  • Generating cube maps
  • Blur, bloom, tone-map, etc
  • Fur
  • Themes
  • Producing and consuming textures
  • Same geometry, different shader
  • Scheduling passes

27
Orchestration
  • Solutions
  • Convention
  • first valid technique
  • All passes sequentially
  • Profiles
  • Name Engine procedure (ex. Fur)
  • Scripts
  • DXSAS 0.8x
  • Execution graph

28
Orchestration
29
Orchestration
30
Orchestration
  • Execution graphs
  • Nodes perform interesting operations
  • Ex Color blending, Phong, Blur, Bloom
  • Edges carry data between nodes
  • Nodes utilizing the render
  • Artist understand graph flow
  • Maya, XSI

31
Orchestration
Simple Bloom
32
Detecting Problems Early
33
Blessing Tools - Detection
  • Detect modeling problems early
  • Bless the artists model on request
  • Water tight
  • UV issues stretch, skew, tangency
  • Exceeding bone poly count
  • Naming conventions
  • Layer checks LOD?

34
Blessing Tools - Visualization
  • Visualize the problem
  • No cryptic messages Error on poly export
  • 5-sided polygons are not supported
  • Highlight
  • Wire-frame
  • Transparent polygons
  • Depth bias
  • Fix model if authorized

35
Art Debugged
  • Allow the artist to validate post-export
  • Visualizer
  • Normals, tangents, binormals
  • Edges, adjacencies, creases
  • Points, Bounds, Transforms
  • Texture visualizer (more on this later)
  • Build into preview mechanism

36
Content Pipeline
37
War-Hardened Pipelines
  • Stage0 source art, not export files
  • Automate the export
  • Encode export options in model or externally
  • Stag-to-stage
  • User should not modify stage outputs
  • Use stage option files and resources
  • Prevent loss between iterations
  • Incompatible changes
  • Dont make the artist fix it
  • Version your formats
  • Develop stage to upgrade old resources

38
War-Hardened Pipelines
  • Separate features into small assets
  • Geometry, animations, material definitions,
    materials objects, particle systems, etc
  • Better asset/source control
  • More sharing via references
  • Different tools for different jobs
  • Max (model cages)
  • ZBrush (model high-res)
  • FxComposer (Materials)
  • Maya (animations)

39
COLLADA Pipeline
  • Khronos Groups COLLADA
  • Geometries, scenes, effects, physics, etc
  • Supported by all 3 DCC ISVs
  • XML
  • Modern features
  • Designed for lossless exchange
  • Extended user data
  • Not a run-time format

40
COLLADA Pipeline
41
A Pluggable Pipeline
  • Pipeline infrastructure
  • Multi-App or Mono-App plug-in model
  • Mix and match
  • Multi-App model
  • Batch, perl, etc to tie apps together
  • Always inout of files
  • Plug-in model
  • Script to tie plug-ins together
  • All in-process
  • Avoid continual file read-write
  • Big win on human-readable model files

42
A Pluggable Pipeline
  • DXOps
  • C Managed DirectX9
  • Framework discovers command registers
  • Dictionary for sharable models
  • Dictionary for sharable textures
  • dxops.exe -s "load tiger.x" -f "script1.txt" -s
    "save tiger2.x"
  • Where script1.txt reads
  • AddVData typeFLOAT3 usageNORMAL usageIdx0
  • GenNormals
  • AddVData typeFLOAT3 usageTANGENT usageIdx0
  • AddVData typeFLOAT3 usageBINORMAL usageIdx0
  • GenTangentframes
  • GenAdjacency

43
An Artists Perspective
  • Marcus GhalyGas Powered Games

44
Totally Awesome Tools
45
Rapid Visualization
46
Customized Pipeline Stages
  • Conversion to DDS
  • Artist driven Profiles
  • High visual quality maintained
  • DPF file drives conversion process
  • Master Spreadsheet
  • Export and conversion settings
  • Maximums
  • Bone, vertex, triangle counts
  • Customizable per asset
  • Feature requirements and exceptions
  • Statistics Spreadsheet
  • Handy for producer

47
Check Assets and Build Materials
48
No-Cast
49
Model Viewer
50
Bone Name Orientation
51
Multi-Animation Review
52
Texture Inspection
53
Normal-maps as Textures
54
Albedo Maps
55
Normals, Spec, and Reflectivity
56
The Works
57
Custom Shader Techniques
58
Tools and Automation
  • Hitting milestones can mask inefficiencies
  • All the assets are in for the milestone so our
    process works perfectly, right?
  • How much wasted time could be saved with better
    tools?
  • Automation instead of brute-force
  • lengthy multi-step processes introduce errors
  • derivative art proliferates those errors
  • Dont change the art on the artists
  • Give the artists control

59
The Producer/Consumer Model
  • Producers
  • Realize that you are not the consumer
  • command line anyone?
  • In-game create -npc -hrmp -ueb2304 -2
  • Right-Click Menus / UI
  • dev-centric documentation?
  • So, find out what your consumer wants?
  • How does the consumer think?
  • artist friendly terminology
  • GUI / hotkeys
  • tool layout

60
The Producer/Consumer Model
  • Consumers
  • Realize that
  • YOU ARE THE CONSUMER
  • You have a say in how your tools work
  • But in order for this to work
  • YOU MUST GIVE FEEDBACK
  • Explain the impact on your schedule
  • Fight for your right to preview

61
Whats Your Game Plan?
62
Random Acts of Technology
  • Dont wait until its broken
  • Tool role out is critical to the artist
  • Tool timeline should not only revolve around
    developer milestones
  • Prototype tools UI with the artist early
  • Pen and paper does the job

63
fin
64
Annex
65
(No Transcript)
66
(No Transcript)
67
(No Transcript)
68
(No Transcript)
69
(No Transcript)
70
(No Transcript)
71
(No Transcript)
72
(No Transcript)
73
Shaders Everywhere
74
Friendly Export Info
75
Friendly Failure
76
DCC Your Way
  • Customize DCC apps to fit your production
  • Disallowed operations
  • Remove, block, or fail blessing
  • Move frequently-used tools to dashboard
  • Preview buttons
  • Export buttons
  • Blessing tools
  • Script common multi-step setups

77
Shader Orchestration
78
Modular Shaders
  • Shader Fragment Libraries
  • Support include
  • Standard Includes
  • Ex. includeltSas.fxhgt
  • Environment defines
  • ifdef ifndef
  • Ex. SAS_PRESENT
  • Optimize
  • Shared parameters
  • Leverage pre-shading
Write a Comment
User Comments (0)
About PowerShow.com