Tools of the Trade CSC 505 Design Tools

  • Slides: 24
Download presentation
Tools of the Trade CSC 505

Tools of the Trade CSC 505

Design Tools • Tools for creating 2 D and 3 D graphics off-line –

Design Tools • Tools for creating 2 D and 3 D graphics off-line – Model building – Animation – Particle effects • Pyrotechnic, atmospheric, fluid… – Scene graph management – Shaders – Textures • Fur, hair, clothing… CSC 505

Design Tools • Alias – Maya, now owned by Auto. Desk – www. alias.

Design Tools • Alias – Maya, now owned by Auto. Desk – www. alias. com – $$$ • Discreet – 3 DS Max (3 D Studio Max), now owned by Auto. Desk – www. discreet. com – $$$ • Renderman – renderman. pixar. com – $$$ • Chumbalum-soft – Milk. Shape 3 D – http: //www. swissquake. ch/chumbalum-soft/ – Shareware CSC 505

Programming Libraries • Libraries for creating 2 D and 3 D graphics realtime –

Programming Libraries • Libraries for creating 2 D and 3 D graphics realtime – Provide access to graphics hardware accelerators – Provide software emulation in the absence of hardware accelerators – Describe 3 D objects – Describe properties of 3 D objects • Texture, color, shading, lighting, etc. – Describe 3 D viewing geometries CSC 505

Programming Libraries • Open. GL – Multi-platform – www. opengl. org – 3 D

Programming Libraries • Open. GL – Multi-platform – www. opengl. org – 3 D graphical libraries • Microsoft Direct. X – Windows platform – www. microsoft. com/windows/directx/ – User interface libraries CSC 505

Programming Libraries • Java 3 D API – Multi-platform – java. sun. com/products/java-media/3 D/

Programming Libraries • Java 3 D API – Multi-platform – java. sun. com/products/java-media/3 D/ – User interface libraries • Java Open. GL – Open. GL library for Java – opengl. j 3 d. org – Various others • Virtual Reality Mark-up Language (VRML) – www. vrmlsite. com – Internet based 3 D content creation CSC 505

Open. GL • What is Open. GL? – Came out of Silicon Graphics (SGI)in

Open. GL • What is Open. GL? – Came out of Silicon Graphics (SGI)in the early 90’s (was IRIS GL specifically for their graphic workstations) • A software interface to graphics hardware – Provide a uniform API – Hardware independent – Operating system independent – About 200 core commands CSC 505

Open. GL • What if your graphics hardware doesn’t support Open. GL? – Then

Open. GL • What if your graphics hardware doesn’t support Open. GL? – Then Open. GL will run in pure software mode CSC 505

Open. GL • What Open. GL does not do – It does not provide

Open. GL • What Open. GL does not do – It does not provide support for user interface devices – It does not provide audio support – It does not provide game play support – It does not provide network interface support • It merely provides access to your graphics hardware CSC 505

Open. GL Basics • 3 D graphics – nothing more, nothing less • There

Open. GL Basics • 3 D graphics – nothing more, nothing less • There is no user interface definition • But…there available libraries and SDKs – GL Utility Toolkit (GLUT) • http: //www. opengl. org – Flash Light Toolkit (FLTK – Full Tick) • http: //www. fltk. org/ – Jules' Utility Class Extensions (JUCE) • http: //www. rawmaterialsoftware. com/juce/ CSC 505

Open. GL Basics • All the primitive tools we’ve looked at are included –

Open. GL Basics • All the primitive tools we’ve looked at are included – Line drawing (polygon) – Shading – Lighting – Projections (orthographic, perspective) – Hidden surface removal – Texture mapping – Alpha blending CSC 505

Open. GL Basics • Special effects – Motion-blur – Fog – Depth-of-field (depth-of-focus) CSC

Open. GL Basics • Special effects – Motion-blur – Fog – Depth-of-field (depth-of-focus) CSC 505

Open. GL Code int main(int argc, char** argv) { glut. Init(&argc, argv); glut. Init.

Open. GL Code int main(int argc, char** argv) { glut. Init(&argc, argv); glut. Init. Display. Mode (GLUT_SINGLE | GLUT_RGB); glut. Init. Window. Size (500, 500); glut. Init. Window. Position (100, 100); glut. Create. Window (argv[0]); init (); glut. Display. Func(display); glut. Reshape. Func(reshape); glut. Keyboard. Func(keyboard); glut. Main. Loop(); return 0; } CSC 505

Open. GL Concepts • Modeled as a state machine – You set states (modes)

Open. GL Concepts • Modeled as a state machine – You set states (modes) that remain in effect until you change them • • • Current color Viewing transformations Line/polygon patterns Lighting characteristics Object material properties – Open. GL State Machine CSC 505

Open. GL Rendering Pipeline Vertex data Pixel data CSC 505

Open. GL Rendering Pipeline Vertex data Pixel data CSC 505

Open. GL Rendering Pipeline • Display List – A storage area for holding objects

Open. GL Rendering Pipeline • Display List – A storage area for holding objects to be displayed at a later time • Evaluators – Conversion of parametric objects (e. g. curves) to vertices • Per-vertex operations – Conversion of vertex primitives to screen objects (4 x 4 matrix transformations among others) CSC 505

Open. GL Rendering Pipeline • Primitive assembly – Clipping (so things don’t display off

Open. GL Rendering Pipeline • Primitive assembly – Clipping (so things don’t display off the window), culling (hidden surface removal), depth cues (perspective transformations) • Pixel operations – Packing and unpacking of pixel data, scaling (for size) • Texture assembly – Texture mapping CSC 505

Open. GL Rendering Pipeline • Rasterization – Conversion of geometric (polygons) and pixel data

Open. GL Rendering Pipeline • Rasterization – Conversion of geometric (polygons) and pixel data to fragments (pixels in the frame buffer) • Fragment operations – Final modification of frame buffer pixels (texturing, blending, dithering, masking, …) CSC 505

Open. GL Demonstrations CSC 505

Open. GL Demonstrations CSC 505

Bibliography • Books – Open. GL Programming Guide (Red book) • Dave Shreiner, Mason

Bibliography • Books – Open. GL Programming Guide (Red book) • Dave Shreiner, Mason Woo, Jackie Neider, Tom Davis • Addison Wesley publisher – The Open. GL Reference Manual (Blue book) • Open. GL Architecture Review Board, Shreiner • Addison Wesley publisher – Open. GL: A Primer • Edward Angel • Addison Wesley publisher CSC 505

Bibliography • Books – The Zen of Direct 3 D Game Programming • Peter

Bibliography • Books – The Zen of Direct 3 D Game Programming • Peter Walsh • Prima Tech publisher – Special Effects Game Programming With Direct. X • Mason Mc. Cuskey • Premier Press publisher – Physics for Game Developers • David M. Bourg • O’Reilly publisher CSC 505

Bibliography • Periodicals – Game Developer Magazine • CMP publisher • www. gdmag. com

Bibliography • Periodicals – Game Developer Magazine • CMP publisher • www. gdmag. com (free subscriptions available) – Computer Graphics World • Penn. Well publisher • www. cgw. com (free subscriptions available) – ACM Transactions on Graphics – IEEE Computer Graphics and Applications Magazine CSC 505

Bibliography • Conferences – ACM SIGGRAPH • www. siggraph. org – Game Developer’s Conference

Bibliography • Conferences – ACM SIGGRAPH • www. siggraph. org – Game Developer’s Conference • www. gdconf. com – E 3 (Electronic Entertainment Expo) • www. e 3 expo. com CSC 505

Things To Do • Tonight – Final project proposal • What is your project

Things To Do • Tonight – Final project proposal • What is your project going to entail? • What algorithms will you use? • What will be the final deliverable? – Programming help/questions • Next week – Demonstrate your deliverable to the class – Write (and turn in) the report describing your project CSC 505