1 / 29

3D Gaming

3D Gaming Chapter 3 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 Rendering

adamdaniel
Download Presentation

3D Gaming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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)

More Related