![Page 1: CSC505 Tools of the Trade. CSC505 Design Tools Tools for creating 2D and 3D graphics off-line –Model building –Animation –Particle effects Pyrotechnic,](https://reader035.vdocument.in/reader035/viewer/2022070407/56649e1f5503460f94b0ada7/html5/thumbnails/1.jpg)
CSC505
Tools of the Trade
![Page 2: CSC505 Tools of the Trade. CSC505 Design Tools Tools for creating 2D and 3D graphics off-line –Model building –Animation –Particle effects Pyrotechnic,](https://reader035.vdocument.in/reader035/viewer/2022070407/56649e1f5503460f94b0ada7/html5/thumbnails/2.jpg)
CSC505
Design Tools
• Tools for creating 2D and 3D graphics off-line– Model building– Animation– Particle effects
• Pyrotechnic, atmospheric, fluid…
– Scene graph management– Shaders– Textures
• Fur, hair, clothing…
![Page 3: CSC505 Tools of the Trade. CSC505 Design Tools Tools for creating 2D and 3D graphics off-line –Model building –Animation –Particle effects Pyrotechnic,](https://reader035.vdocument.in/reader035/viewer/2022070407/56649e1f5503460f94b0ada7/html5/thumbnails/3.jpg)
CSC505
Design Tools
• Alias – Maya, now owned by AutoDesk– www.alias.com – $$$
• Discreet – 3DS Max (3D Studio Max), now owned by AutoDesk– www.discreet.com– $$$
• Renderman– renderman.pixar.com– $$$
• Chumbalum-soft – MilkShape 3D– http://www.swissquake.ch/chumbalum-soft/– Shareware
![Page 4: CSC505 Tools of the Trade. CSC505 Design Tools Tools for creating 2D and 3D graphics off-line –Model building –Animation –Particle effects Pyrotechnic,](https://reader035.vdocument.in/reader035/viewer/2022070407/56649e1f5503460f94b0ada7/html5/thumbnails/4.jpg)
CSC505
Programming Libraries
• Libraries for creating 2D and 3D graphics real-time– Provide access to graphics hardware accelerators– Provide software emulation in the absence of
hardware accelerators– Describe 3D objects– Describe properties of 3D objects
• Texture, color, shading, lighting, etc.
– Describe 3D viewing geometries
![Page 5: CSC505 Tools of the Trade. CSC505 Design Tools Tools for creating 2D and 3D graphics off-line –Model building –Animation –Particle effects Pyrotechnic,](https://reader035.vdocument.in/reader035/viewer/2022070407/56649e1f5503460f94b0ada7/html5/thumbnails/5.jpg)
CSC505
Programming Libraries
• OpenGL– Multi-platform– www.opengl.org– 3D graphical libraries
• Microsoft DirectX– Windows platform– www.microsoft.com/windows/directx/– User interface libraries
![Page 6: CSC505 Tools of the Trade. CSC505 Design Tools Tools for creating 2D and 3D graphics off-line –Model building –Animation –Particle effects Pyrotechnic,](https://reader035.vdocument.in/reader035/viewer/2022070407/56649e1f5503460f94b0ada7/html5/thumbnails/6.jpg)
CSC505
Programming Libraries
• Java 3D API– Multi-platform– java.sun.com/products/java-media/3D/– User interface libraries
• Java OpenGL– OpenGL library for Java– opengl.j3d.org– Various others
• Virtual Reality Mark-up Language (VRML)– www.vrmlsite.com– Internet based 3D content creation
![Page 7: CSC505 Tools of the Trade. CSC505 Design Tools Tools for creating 2D and 3D graphics off-line –Model building –Animation –Particle effects Pyrotechnic,](https://reader035.vdocument.in/reader035/viewer/2022070407/56649e1f5503460f94b0ada7/html5/thumbnails/7.jpg)
OpenGL
• What is OpenGL?– 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
CSC505
![Page 8: CSC505 Tools of the Trade. CSC505 Design Tools Tools for creating 2D and 3D graphics off-line –Model building –Animation –Particle effects Pyrotechnic,](https://reader035.vdocument.in/reader035/viewer/2022070407/56649e1f5503460f94b0ada7/html5/thumbnails/8.jpg)
OpenGL
• What if your graphics hardware doesn’t support OpenGL?– Then OpenGL will run in pure software mode
CSC505
![Page 9: CSC505 Tools of the Trade. CSC505 Design Tools Tools for creating 2D and 3D graphics off-line –Model building –Animation –Particle effects Pyrotechnic,](https://reader035.vdocument.in/reader035/viewer/2022070407/56649e1f5503460f94b0ada7/html5/thumbnails/9.jpg)
OpenGL
• What OpenGL 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
CSC505
![Page 10: CSC505 Tools of the Trade. CSC505 Design Tools Tools for creating 2D and 3D graphics off-line –Model building –Animation –Particle effects Pyrotechnic,](https://reader035.vdocument.in/reader035/viewer/2022070407/56649e1f5503460f94b0ada7/html5/thumbnails/10.jpg)
OpenGL Basics
• 3D graphics – nothing more, nothing less
• There is no user interface definition
• But…there are 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/
CSC505
![Page 11: CSC505 Tools of the Trade. CSC505 Design Tools Tools for creating 2D and 3D graphics off-line –Model building –Animation –Particle effects Pyrotechnic,](https://reader035.vdocument.in/reader035/viewer/2022070407/56649e1f5503460f94b0ada7/html5/thumbnails/11.jpg)
OpenGL 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
CSC505
![Page 12: CSC505 Tools of the Trade. CSC505 Design Tools Tools for creating 2D and 3D graphics off-line –Model building –Animation –Particle effects Pyrotechnic,](https://reader035.vdocument.in/reader035/viewer/2022070407/56649e1f5503460f94b0ada7/html5/thumbnails/12.jpg)
OpenGL Basics
• Special effects– Motion-blur– Fog– Depth-of-field (depth-of-focus)
CSC505
![Page 13: CSC505 Tools of the Trade. CSC505 Design Tools Tools for creating 2D and 3D graphics off-line –Model building –Animation –Particle effects Pyrotechnic,](https://reader035.vdocument.in/reader035/viewer/2022070407/56649e1f5503460f94b0ada7/html5/thumbnails/13.jpg)
OpenGL Code
CSC505
int main(int argc, char** argv){ glutInit(&argc, argv); glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); glutInitWindowSize (500, 500); glutInitWindowPosition (100, 100); glutCreateWindow (argv[0]); init (); glutDisplayFunc(display); glutReshapeFunc(reshape); glutKeyboardFunc(keyboard); glutMainLoop(); return 0;}
![Page 14: CSC505 Tools of the Trade. CSC505 Design Tools Tools for creating 2D and 3D graphics off-line –Model building –Animation –Particle effects Pyrotechnic,](https://reader035.vdocument.in/reader035/viewer/2022070407/56649e1f5503460f94b0ada7/html5/thumbnails/14.jpg)
OpenGL 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
– OpenGL State Machine
CSC505
![Page 15: CSC505 Tools of the Trade. CSC505 Design Tools Tools for creating 2D and 3D graphics off-line –Model building –Animation –Particle effects Pyrotechnic,](https://reader035.vdocument.in/reader035/viewer/2022070407/56649e1f5503460f94b0ada7/html5/thumbnails/15.jpg)
OpenGL Rendering Pipeline
CSC505
Pixel data
Vertex data
![Page 16: CSC505 Tools of the Trade. CSC505 Design Tools Tools for creating 2D and 3D graphics off-line –Model building –Animation –Particle effects Pyrotechnic,](https://reader035.vdocument.in/reader035/viewer/2022070407/56649e1f5503460f94b0ada7/html5/thumbnails/16.jpg)
OpenGL 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
(4x4 matrix transformations among others)CSC505
![Page 17: CSC505 Tools of the Trade. CSC505 Design Tools Tools for creating 2D and 3D graphics off-line –Model building –Animation –Particle effects Pyrotechnic,](https://reader035.vdocument.in/reader035/viewer/2022070407/56649e1f5503460f94b0ada7/html5/thumbnails/17.jpg)
OpenGL 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
CSC505
![Page 18: CSC505 Tools of the Trade. CSC505 Design Tools Tools for creating 2D and 3D graphics off-line –Model building –Animation –Particle effects Pyrotechnic,](https://reader035.vdocument.in/reader035/viewer/2022070407/56649e1f5503460f94b0ada7/html5/thumbnails/18.jpg)
OpenGL 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, …)
CSC505
![Page 19: CSC505 Tools of the Trade. CSC505 Design Tools Tools for creating 2D and 3D graphics off-line –Model building –Animation –Particle effects Pyrotechnic,](https://reader035.vdocument.in/reader035/viewer/2022070407/56649e1f5503460f94b0ada7/html5/thumbnails/19.jpg)
CSC505
OpenGL Demonstrations
![Page 20: CSC505 Tools of the Trade. CSC505 Design Tools Tools for creating 2D and 3D graphics off-line –Model building –Animation –Particle effects Pyrotechnic,](https://reader035.vdocument.in/reader035/viewer/2022070407/56649e1f5503460f94b0ada7/html5/thumbnails/20.jpg)
CSC505
Bibliography
• Books– OpenGL Programming Guide (Red book)
• Dave Shreiner, Mason Woo, Jackie Neider, Tom Davis• Addison Wesley publisher
– The OpenGL Reference Manual (Blue book)• OpenGL Architecture Review Board, Shreiner• Addison Wesley publisher
– OpenGL: A Primer• Edward Angel• Addison Wesley publisher
![Page 21: CSC505 Tools of the Trade. CSC505 Design Tools Tools for creating 2D and 3D graphics off-line –Model building –Animation –Particle effects Pyrotechnic,](https://reader035.vdocument.in/reader035/viewer/2022070407/56649e1f5503460f94b0ada7/html5/thumbnails/21.jpg)
CSC505
Bibliography
• Books– The Zen of Direct3D Game Programming
• Peter Walsh• Prima Tech publisher
– Special Effects Game Programming With DirectX• Mason McCuskey• Premier Press publisher
– Physics for Game Developers• David M. Bourg• O’Reilly publisher
![Page 22: CSC505 Tools of the Trade. CSC505 Design Tools Tools for creating 2D and 3D graphics off-line –Model building –Animation –Particle effects Pyrotechnic,](https://reader035.vdocument.in/reader035/viewer/2022070407/56649e1f5503460f94b0ada7/html5/thumbnails/22.jpg)
CSC505
Bibliography
• Periodicals– Game Developer Magazine
• CMP publisher
• www.gdmag.com (free subscriptions available)
– Computer Graphics World• PennWell publisher
• www.cgw.com (free subscriptions available)
– ACM Transactions on Graphics– IEEE Computer Graphics and Applications
Magazine
![Page 23: CSC505 Tools of the Trade. CSC505 Design Tools Tools for creating 2D and 3D graphics off-line –Model building –Animation –Particle effects Pyrotechnic,](https://reader035.vdocument.in/reader035/viewer/2022070407/56649e1f5503460f94b0ada7/html5/thumbnails/23.jpg)
CSC505
Bibliography
• Conferences– ACM SIGGRAPH
• www.siggraph.org
– Game Developer’s Conference• www.gdconf.com
– E3 (Electronic Entertainment Expo)• www.e3expo.com
![Page 24: CSC505 Tools of the Trade. CSC505 Design Tools Tools for creating 2D and 3D graphics off-line –Model building –Animation –Particle effects Pyrotechnic,](https://reader035.vdocument.in/reader035/viewer/2022070407/56649e1f5503460f94b0ada7/html5/thumbnails/24.jpg)
CSC505
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