- 278 Views
- Uploaded on

Download Presentation
## PowerPoint Slideshow about 'Chapter 3 Slides' - adamdaniel

**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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

### 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

- 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

Coordinates

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

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

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

Torque Direction

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

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

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

Transformations

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

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

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

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)

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

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

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

Rendering (cont.)

- Texture Mapping – Uses an image to “wallpaper” an object. Usually combined with a shading technique
- Most common

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

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

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

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

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

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

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”);

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

Scaling

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

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

Sound

- Uses special descriptor called “datablock” to define an audio sound.
datablock AudioProfile(Sound){

filename = “path”;

description = “reference name”;

preload = true;

}

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)

Download Presentation

Connecting to Server..