When we view a picture containing non-transparent objects and surfaces, then we cannot see those objects from view which are behind from objects closer to eye.
We must remove these hidden surfaces to get a realistic screen image. The identification and removal of these surfaces is called Hidden-surface problem.
Hidden surface removal in computer graphics tutorial pdf
The Object-space method is implemented in physical coordinate system and image-space method is implemented in screen coordinate system. When we want to display a 3D object on a 2D screen, we need to identify those parts of a screen that are visible from a chosen viewing position. This method is developed by Cutmull. It is an image-space approach.
Visible Surface Detection
The basic idea is to test the Z-depth of each surface to determine the closest visible surface. In this method each surface is processed separately one pixel position at a time across the surface.
The depth values for a pixel are compared and the closest smallest z surface determines the color to be displayed in the frame buffer. It is applied very efficiently on surfaces of polygon. Surfaces can be processed in any order. To override the closer polygons from the far ones, two buffers named frame buffer and depth buffer, are used.
Computer Graphics Surfaces
The frame buffer is used to store the intensity value of color value at each position x, y. The z-coordinates are usually normalized to the range [0, 1]. The 0 value for z-coordinate indicates back clipping pane and 1 value for z-coordinates indicates front clipping pane.
For each projected x, y pixel position of a polygon, calculate depth z. It is an image-space method to identify visible surface. This method has a depth information for only single scan-line.
Hidden Surface Removal
In order to require one scan-line of depth values, we must group and process all polygons intersecting a given scan-line at the same time before processing the next scan-line. Two important tables, edge table and polygon table, are maintained for this. To facilitate the search for surfaces crossing a given scan-line, an active list of edges is formed. The active list stores only those edges that cross the scan-line in order of increasing x. Also a flag is set for each surface to indicate whether a position along a scan-line is either inside or outside the surface.
Pixel positions across each scan-line are processed from left to right.
At the left intersection with a surface, the surface flag is turned on and at the right, the flag is turned off. You only need to perform depth calculations when multiple surfaces have their flags turned on at a certain scan-line position. The area-subdivision method takes advantage by locating those view areas that represent part of a single surface. Divide the total viewing area into smaller and smaller rectangles until each small area is the projection of part of a single visible surface or no surface at all.
Continue this process until the subdivisions are easily analyzed as belonging to a single surface or until they are reduced to the size of a single pixel.
An easy way to do this is to successively divide the area into four equal parts at each step. There are four possible relationships that a surface can have with a specified area boundary.
The tests for determining surface visibility within an area can be stated in terms of these four classifications. A fast and simple object-space method for identifying the back faces of a polyhedron is based on the "inside-outside" tests. A point x, y, z is "inside" a polygon surface with plane parameters A, B, C, and D if When an inside point is along the line of sight to the surface, the polygon must be a back face we are inside that face and cannot see the front of it from our viewing position.
We can simplify this test by considering the normal vector N to a polygon surface, which has Cartesian components A, B, C. In general, if V is a vector in the viewing direction from the eye or "camera" position, then this polygon is a back face if. Similar methods can be used in packages that employ a left-handed viewing system. In these packages, plane parameters A, B, C and D can be calculated from polygon vertex coordinates specified in a clockwise direction unlike the counterclockwise direction used in a right-handed system.
By examining parameter C for the different planes defining an object, we can immediately identify all the back faces. The A-buffer method is an extension of the depth-buffer method. The A-buffer expands on the depth buffer method to allow transparencies.
4.1 Hidden Surface Removal
The key data structure in the A-buffer is the accumulation buffer. The intensity field then stores the RGB components of the surface color at that point and the percent of pixel coverage. The intensity field then stores a pointer to a linked list of surface data. The algorithm proceeds just like the depth buffer algorithm.
The depth and opacity values are used to determine the final color of a pixel.
Depth sorting method uses both image space and object-space operations. The scan conversion of the polygon surfaces is performed in image space. This method for solving the hidden-surface problem is often referred to as the painter's algorithm.
The algorithm begins by sorting by depth. Let us take the polygon P at the end of the list. Before drawing P, we make the following tests.
If any of the following tests is positive, then we can assume P can be drawn before Q. If all the tests fail, then we split either P or Q using the plane of the other.
The new cut polygons are inserting into the depth order and the process continues. Theoretically, this partitioning could generate O n 2 individual polygons, but in practice, the number of polygons is much smaller.
Depth Buffer (Z-Buffer) Method
Binary space partitioning is used to calculate visibility. To build the BSP trees, one should start with polygons and label all the edges. Dealing with only one edge at a time, extend each edge so that it splits the plane in two.
Place the first edge in the tree as root. Add subsequent edges based on whether they are inside or outside. Edges that span the extension of an edge that is already in the tree are split into two and both are added to the tree.
Put all the nodes that are in front of root A to the left side of node A and put all those nodes that are behind the root A to the right side as shown in figure b. As shown in figure c , we will first process the node B. As there is nothing in front of the node B , we have put NIL. However, we have node C at back of node B , so node C will go to the right side of node B.
Visible Surface Detection Advertisements. Previous Page. Next Page.
Previous Page Print Page.