Term
| Explain the visibility problem. |
|
Definition
| Not everything in our world is visible. The camera has a finite length of view. Objects get in the way, sometimes of themselves. So, we need techniques to eliminate unnecessary objects or parts of objects. |
|
|
Term
| Explain the naive clipping algorithm. |
|
Definition
Clip each pixel before accessing the frame buffer. The algorithm proceeds as follows: def SetPixel(x,y, colour): if x >=0 and x <= x_max and y >=0 and y <=y_max: frame[x,y]= colour |
|
|
Term
| Explain the advantages and disadvantages of naive clipping. |
|
Definition
| It always works but it is slow because it adds unnecessary tests to the innner most loop of the output producing code. |
|
|
Term
| Explain Cohen-Sutherland line-clipping. |
|
Definition
| We split the world into 9 regions. The window placed in the middle one. Three regions above window, three regions below, 1 to the left, 1 to the right. This gives 4-bit out-codes. The first bit: above top edge, 2nd bit: below bottom edge, 3rd: right of right edge, 4th:left of left edge. If the condition is true bit is set.Trivial acceptance, trivial rejection. Explain the algorithm in steps. |
|
|
Term
| Explain the Liang-Barsky algorithm for polygon clipping. |
|
Definition
| Consider the polygon as list of vertices. Consider each line segment in turn. Only four possible cases: totally in, totally out, going in, going out. |
|
|
Term
| Explain backface culling. |
|
Definition
Only draw a polygon if it's outside faces the camera. N: normal vector, n: direction towards the viewpoint from the centre of the polygon and th is the angle between them N.n = |N||n|cos(th) if cos(th) is positive then polygon points towards the camera. |
|
|
Term
| Explain painters algorithm. |
|
Definition
| Sort the polygons according to furthest z. Draw the polygons in reverse order, starting with the furthest away. Polygons furthest away will be drawn first and then overwritten by those nearer. |
|
|
Term
| Problem with Painters algorithm. |
|
Definition
Real polygons can overlap in z as well as xy. If those conditions are met: Overlap in x or y Is one either fully or fully behind of a plane defined by one polygon. Then split the polygons accordingly. This is real painter's algorithm. |
|
|
Term
| How does the z-buffer work? Explain the algorithm. |
|
Definition
We have a z-buffer with the same size as the frame buffer. It is used to keep the distance from the camera of the nearest object at that pixel. Algorithm: if z_current < z(buffer): update the colour in the frame buffer, update the value in the z-buffer. else do nothing. |
|
|
Term
| Discuss the advantages and disadvantages of the z-buffer algorithm being used for visibility. |
|
Definition
Advantages: Easy to do in hardware Can use smart memory of comparisons Easy to do in software No spacial cases, just pass z to set pixel routine Works well with things other than planes, more general Disadvantages Must draw everything, can use back-face culling to eliminate some |
|
|
Term
| Explain the technique used so we don't have to calculate distance at each pixel. |
|
Definition
| Instead of calculating distance(z) at each pixel. Calculate distance at vertices and used bi-linear interpolation to find the corresponding value at the required pixel. |
|
|