CGDD 4113 – 3D MODELING AND ANIMATION Course Introduction and Terminology TOPICS (ACCORDING TO THE COURSE DESCRIPTION) • Mesh and Non-uniform Rational B-Splines (NURBs) modeling • Textures • Subdivision and levels of model detail • Rigid/constrained body dynamics • Non-rigid/fluid dynamics COURSE LEARNING OUTCOMES Students will be able to: 1. Describe the mathematics of 3D modeling and animation 2. Apply 3D modeling/animation in generating a complex, rendered scene 3. Utilize modern applications that streamline the modeling and animation process 4. Discuss the complexity of modeling and animation and tradeoffs between fidelity and performance WHY LEARN THAT STUFF? Description ArenaNet is looking for an experienced animation programmer to work with our AAA team of artists, designers and programmers to take our characters to new heights. We seek an experienced programmer who has the skill and passion to create a cutting edge, industry defining high level animation system. Requirements: • 4+ years of demonstrable experience in C/C++ • Expertise with cutting edge animation techniques • Excellent mathematical skills (including calculus, linear algebra, and quaternions) • Experience with modern animation middleware packages • Experience with modern modeling and animation art tools • Ability to work with artists and designers • Able to create maintainable, performance-minded code on schedule • Previous commercial games development experience Pluses: • Experience architecting an animation system • Experience writing cutting edge character controllers • Experience with multi-core, multi-threaded systems • Experience writing high performance IK systems • Experience with Maya Post date: 1/7/2011 http://jobs.gamasutra.com/JobSeekerX/ViewJob.asp?JobID=5icMXfq5FnfnubqzhRYChEzn5NC7&Keywords=Maya THE TRUTH • Will you really be building models? • Simple, non-animated – yes, but maybe… • Animated – doubtful • Usually hire this out to an artist, who’s much better than you • Will you really be using math? • Yes. Absolutely. Yes…. But more when you’re doing graphics • Shaders (linear algebra) • Translations, rotations, scaling (linear algebra) • Collisions (linear algebra) • Calculus? Only lightly, unless you’re into some really serious … WHAT YOU SHOULD ALREADY KNOW… • Basic game concepts • Importing assets into game engines TERMINOLOGY • Pose – the position and orientation of an object • Vertex – a 3D point (x, y, z) • Edge – a connection between two vertices (who cares) • Face – a set of 3 or more (but almost always 3) • Normal – the direction perpendicular to the face V1 E1 V3 E2 F V2 E3 TRANSLATE, ROTATE AND SCALE Translate – move an object’s position Rotate – change an object’s orientation Yaw – Y Pitch – X Roll – Z Scale – change an object’s size VIEWS AND CAMERAS • Perspective – depth matters • Orthogonal – view is parallel PARTICLE SYSTEMS • Good for smoke, fire, explosion animations… • You did these in CS 1302… • We won’t be studying them because you typically program them NURBS VS. POLYGONS WHOSE KUNG-FU IS BETTER? • Non-Uniform Rational B-splines • Infinite resolution • Have CVs (Control Vertices) • Yes, they are better, but… • Polygons • It’s what we (programmers) use • Usually, these are made into triangles • Much easier to work with NURBS VS. POLYGONS WHOSE KUNG-FU IS BETTER? RENDERING • “Drawing” what’s in the scene. Time-consuming. • Hardware rendering – using your graphics card to render • A-buffer rendering – a quick way to render • Raytracing – Good for shiny objects (reflections), but slow • Maya: 1. First renders with the A-buffer 2. Raytraces any objects that need it 3. Layers the raytraced objects onto the A-buffer image