3D Gaming - PowerPoint PPT Presentation

adamdaniel
3d gaming l.
Skip this Video
Loading SlideShow in 5 Seconds..
3D Gaming PowerPoint Presentation
play fullscreen
1 / 29
Download Presentation
3D Gaming
314 Views
Download Presentation

3D Gaming

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. 3D Gaming Chapter 3

  2. 3D Concepts • A computer screen is two dimensional • Width and height • Need to find a way to represent three dimensions in a two dimension world • Need to add “depth” through visual characteristics • Shading, shadows, textures

  3. Rendering • Process of converting a 3D model to a 2D model • Converts an entity to be drawn in a 2D screen or image • Includes many processes and calculations • Rasterization, clipping, etc

  4. Coordinates • Math we learned X, Y • Z is the third dimension • Represented as a triplet in a vector (3 integer array) [x, y, z]

  5. Define a coordinate System • Must assign a base (origin) point • Assign each dimension a positive and negative direction • Object space and Global space • Reference points

  6. Assigning Positive Direction • Left Handed • X left (+)/right • Y up (+)/down • Z near(-)/far • Right Handed • X left (-)/right • Y up (+)/down • Z near(-)/far

  7. Torque Direction • Our direction • X left (-)/right • Y up (+)/down • Z near(-)/far • Uses Topgraphic/overhead view

  8. 3D Shapes • A coordinate is a vertex • Connect 2 vertices for an edge • Connect 3 or more vertices that is closed for a polygon • Simplest shape is a polygon • Decomposing a complex polygon into triangles is a mesh

  9. Surfaces • The area enclosed by a triangle (polygon) is called facet (or face) • Each surface has two sides, but only one is visible • Side that is visible has a Normal • Hidden Lines – Lines that other polygons cover up • Culling is used to determine which lines are hidden and which are not

  10. Transformations • Must move the object from object space to world (global) space • Done through scaling, rotation, and translation • Uses matrix operations in a pipeline

  11. Scaling • A set of triplet factors held as quantifiers for X, Y, and Z • A scale of 1 does not move the object • A scale > 1 increases the size • A scale <1 decreases the size • [1,1,1] is the default

  12. Rotation • A set of triplet values quantifying the amount of rotation per access. • Can be represented by degrees, radians, or gradians. • Roll-pitch-yaw used by aviators are commonly refered to in gaming • Roll is longitudinal Z, pitch is lateral X, yaw is vertical Y

  13. Translation • A set of triplet factors for moving the positional coordinates • Done last in the pipeline to finally convert into world coordinates • XYZ triplet describes the number of units to shift ALL coordinates of the object (Applied in world space, not object space)

  14. Rendering techniques • Flat Shading – each face gets a different shade to differintiate between polygons • Z-flat shading decreases the color as the polygons get further away from the camera • Lambert Shading – A special form of Flat Shading that uses a brighter color and slowly changes the color to adjacent triangles to give the illusion of light effects

  15. Rendering (cont.) • Uses normals to determine color through averaging • Normals are calculated per vertex • Distance between to vertices is used to calculate the normal that affects the color per pixel • Commonly used for a more natural appearance

  16. Rendering (cont.) • Phong Shading – A more intense form of gouraud shading that determines normals per pixel to determine color • Very costly and computer intensive • Fake Phong Shading – a technique that speeds up Phong Shading by using bitmaps

  17. Rendering (cont.) • Texture Mapping – Uses an image to “wallpaper” an object. Usually combined with a shading technique • Most common

  18. Shaders • Vertex Shaders – Uses vertex data to manipulate values for color, texture, fog, point size, and spatial orientation • Pixel Shaders – Inputs vertex shader output to determine values at a specified pixel. Usually done in the Video Card

  19. Bump Mapping • Enhances the shape detail of the object • Modifies the shape of the object through the map without adding complexion to the object • Can be used in conjunction with a texture map when more detail is required

  20. More Mapping • Environmental Mapping – uses texture mapping on environmental factors such as representing chrome, window reflects, and other shiny objects • Mipmapping – uses multiple maps to represent the same pattern at different distances • Reduces computer work

  21. Mapping Again • Parallax Mapping – a further step to bump mapping that creates the illusion of holes and protrusions without adding polygons • Used for computations like a water ripple • Calculates where pixels would be based on perspective

  22. Scene Graphs • See example on page 128 • Used to determine what is rendered at what time during the game • Uses a tree based structure, usually a directed graph

  23. Audio Considerations • Using sounds based on distance • Done by the 3d engine • Some engines give audio levels at the closest and furthest • Deals with fade and drop-off

  24. Coding Movement • Given two variables, the shape and distance, add in the distance. • %xform = %shape.getTransform(); • %lx = getword(%xform, 0) + %dist; • %ly = getword(%xform, 1); • %lz = getword(%xform, 2); • %shape.setTransform(%lx SPC %ly SPC %lz SPC “0 0 1 0”);

  25. Coding Rotation • Similar to Movement, but the second triplet are the rotation of x, y, z • The last parameter is the rotation angle to rotate direction

  26. Scaling • Similar to the previous examples, except that setScale is used • %shape.setScale(%scale SPC %scale SPC %scale);

  27. Simple animation • Using the previous techniques, a simple animation can be made using one or more of these techniques • Used “schedule” function to call a function at a specified number of seconds later

  28. Sound • Uses special descriptor called “datablock” to define an audio sound. datablock AudioProfile(Sound){ filename = “path”; description = “reference name”; preload = true; }

  29. Fish • Perform the fish tutorial, by 8:20 on February 15th. Show to me. • Programming Assignment due by February 22. • Write a script that uses at least two functions to find the area of a triangle based on being given the length of all three sides and one that finds the standard deviation of 10 random numbers. • Standard deviation is the square root of ((the sum of the difference between the number and the median)) divided by the total number of variables)