Graphics, Modeling, and Textures Graphics Considerations • Frame and back buffers – Avoid artifacts (jitter and visible drawing) – Swap or copy? • Depth and stencil buffer • Triangles – Easily interpolate – Planarity • Vertices & coordinate space Depth Bits From http://www.agidev.com/articles/a.php?id=6&page=4 Limiting What we Render • View frustrum – Near and far planes • Clipping • Cull when possible – Render Volume Partitioning Backface Culling Quadtree partitioning • Collision detection • Outdoor visibility checking • Algorithm (2D): – X/Y : consider bits – Left shift at each level in tree – When at leaf, stop Quadtree Visualized Graphic Primitives Mesh as Triangle Strip Indexed Strips Applying Textures Lighting http://machinesdontcare.wordpress.com/2008/06/ http://www.directxtutorial.com/Tutorial9/B-Direct3DBasics/dx9B3.aspx Modeling Modeling (cont) Using Normal Maps and Textures Normal Maps and LOD http://www.inition.co.uk/inition/product.php?SubCatID_=38&URL_=product_ffhaptic_sensable_claytools http://upload.wikimedia.org/wikipedia/commons/3/36/Normal_map_example.png Level of Detail • Hardware limits number of polys rendered • Use high-level models when possible • Drop to low poly models (LOD) when needed Level Editing • Target fixed poly count (thought allow for flexibility and customization) Low-Poly Count Modeling Animation • Models consists of multiple meshes – Each mesh has it’s own local coordinates for the vertices in the mesh – Meshes can be “connected” relative to each other via skeletons/bones (rigging) • Render each mesh & position them correctly • Animating a model involves transformations on a per-mesh basis http://creators.xna.com/en-US/sample/simpleanimation Final thoughts • Major difference in modeling and using models • Art & programming & level/character design are of primary consideration