Abstract:
An improved surface shading method computes and stores light reflectance values as a texture map for a given light direction and view direction to an object in a scene during development of a computer graphics (CG) program, and uses the stored texture map later for shading during real-time rendering. A selected bidirectional reflectance distribution function (BRDF) is applied using a standard model for distribution of normal direction vectors for a given type of surface, and BRDF values are computed as a global texture map for the object's surface in the scene. The BRDF values are stored as a look-up table indexed to the sampled range of normal direction vectors. During real-time rendering, surface shading can be readily processed by using the normal direction vector for any given point to look up the stored BRDF value. Shading with BRDF light reflectance values can be combined in one or more passes with shading of other surface texture characteristics, e.g., a facial skin surface textured with hair and facial features. In this manner, the rich tones of a physical light reflectance model can be obtained even for highly textured surfaces during real-time rendering. Besides standard types of light reflectance models (Torrance-Sparrow, Phong, Strauss, etc.), modified types of BRDF models (e.g., Schlick) may also be used to derive a BRDF texture map.