Shading is a rendering method that involves calculating the color of objects in a 3D environment. The visibility stage of the rendering process is concerned with form and the visibility issue. Shading is the process of calculating or simulating the color of things as seen from a specific viewpoint. In computer graphics, shading is the process of determining what should be displayed for each pixel on a display device. This may involve calculating an overall color for an area of pixels, or it may involve calculating the color of individual components (such as colors of lights hitting certain surfaces). There are two types of shading: flat shading and Gouraud shading. In flat shading, only the absolute value of each component of the color is important; the direction in which they vary across the surface of the object does not matter. Thus, all the components of a color can be assigned equal weighting values and added together to determine the final color of a fragment of material. Flat shading is easy to implement because you do not need to know anything about the shape of the objects being rendered; you simply calculate the average color of an area of pixels and assign that value to all fragments within that area. However, this means that flat shaded images often look dull because everything is calculated using the same function. Flat shading is useful when you want to display many small details on a screen image but don't want to burden the viewer's system with lots of calculations.