Abstract:
At respective positions spaced from each other on an optic axis of illumination light, a plurality of polygons, each of which corresponds to the shape of a transverse cross section at each position of a virtual region gradually expanded as the illumination light advances from a light source 1 in an optic axis direction are disposed so that the normal of each polygon orients toward a view point in a virtual three-dimensional space. The position of each polygon on the optic axis is set so that at least adjacent polygons are partially superimposed. A texture expressing divergence of illumination light is mapped to each polygon. The size in a direction orthogonal to the optic axis of a virtual region is changed based on a distance from the view point to the light source. The magnification of the virtual region to the distance from the light source is differentiated based on a relationship between an optic axis direction and a direction in which the light source is viewed from the view point.
Abstract:
A system and method for creating real-time shadows of complex transparent objects includes a processor and a main memory that stores a transparent blocker object and a receiver object. A light source in a three-dimensional game environment determines an origin of a light coordinate system. A unit vector from the light source to the blocker object defines a z-axis of the light coordinate system and defines a light vector. The processor converts vertices of the blocker object from world coordinates into light coordinates. A graphics processor then calculates a shadow map by taking the dot-product of the light vector and each vertex of the blocker object. The shadow map is then stored in a memory of a graphics processor and is applied as a texture map to the receiver object by the graphics processor.
Abstract:
A lighting effect computation block and method therefore is presented. The lighting effect computation block separates lighting effect calculations for video graphics primitives into a number of simpler calculations that are performed in parallel but accumulated in an order-dependent manner. Each of the individual calculations is managed by a separate thread controller, where lighting effect calculations for a vertex of a primitive may be performed using a single parent light thread controller and a number of sub-light thread controllers. Each thread controller manages a thread of operation codes related to determination of the lighting parameters for the particular vertex. The thread controllers submit operation codes to an arbitration module based on the expected latency and interdependency between the various operation codes. The arbitration module determines which operation code is executed during a particular cycle, and provides that operation code to a computation engine. The computation engine performs calculations based on the operation code and stores results either in a memory or in an accumulation buffer corresponding to the particular vertex lighting effect block. In order to ensure that the order-dependent operations are properly performed, each of the sub-light thread controllers determines whether or not the accumulation operations for the preceding threads have been initiated before it submits its own final operation code that results in the performance of a subsequent accumulation operation.
Abstract:
A graphics pipeline system is provided for graphics processing. Such system includes a transform module adapted for receiving vertex data. The transform module serves to transform the vertex data from a first space to a second space. Coupled to the transform module is a lighting module which is positioned on the single semiconductor platform for performing lighting operations on the vertex data received from the transform module. Also included is a rasterizer coupled to the lighting module and positioned on the single semiconductor platform for rendering the vertex data received from the lighting module. During use, an antialiasing feature is implemented to improve a quality of the graphics rendering.
Abstract:
Computer animators have, till now, largely relegated themselves to using point light sources when simulating directional light sources in computer graphics and animation. The illumination achieved is computationally feasible but not totally realistic. While it is possible to use a finite light source of given size and shape to achieve a more realistic effect, the radiosity analysis required to calculate the illumination effect of such a light source is so cumbersome that it cannot be used for real-time computer animation. The described invention allows the animator to approximate the illumination effect of a finite light source by using a point source of varying location and intensity. Another embodiment of the invention allows the animator to realistically simulate ambient light by a similar method. The resulting illumination effects are comparable to those achieved with full radiosity analyses at much lower computational loads.
Abstract:
A method of providing specular highlights to 3D graphics using Phong illumination calculations spaces the pixels subject to the calculations apart in direct relationship to the number of lights contributing to the highlights. Linear, quadratic, or cubic attenuation is then applied to interpolate the values for the pixels not subject to the calculations.
Abstract:
A three dimensional textured computer graphic image is shaded by firstly providing data which defines the computer graphic image. Textured data is then applied to that image. A set of surface normal vectors corresponding to the texture data are then applied to the image and data defining at least one light source which illuminates the image is also provided. For each pixel in the image a shading value is derived to be applied to that pixel from the set of surface normal vectors and the light source data.
Abstract:
A system and method for providing shadow information for 3D computer graphics objects on a display for a graphic computer system are disclosed. The 3D objects are processed only once and the rendering and shadow generation information is stored in memory. In a subsequent two-dimensional pass, the shadow information is used to provide the color value at each rendered pixel. Thus, the latency and the need for storage capacity due to the multiple 3D pass processing are eliminated.
Abstract:
A method and apparatus for shading polygons in a graphics rendering system is provided. The method includes the step of providing, for each polygon to be shaded, a polygon coordinate system defined by three normalized vectors which represent the X, Y and Z axes. A light source defining a three dimensional light direction vector is further provided. The three dimensional light vector is rotated to correspond with the polygon direction vector. The rotated three dimensional light vector is converted into a two dimensional vector whose length is proportional to the angle between the polygon Z vector and the light direction vector. Another aspect of the present invention involves the interpolation of two dimensional vertex angle values, provided for each of the polygon's vertices, at each drawn pixel within the polygon surface. A bump map vector value is added to the interpolated vertex value forming a two dimensional composite surface angle vector. Light coefficients are then derived from the distance between the composite surface angle vector and the two dimensional light vectors.
Abstract:
In a graphics subsystem of a computer system, a method for performing front-side and back-side vertex lighting of successive vertices in the graphics pipeline without incurring pipeline stalls. The method includes computing the dot product terms for a plurality of light sources with respect to a vertex to obtain a magnitude and a sign of the dot product terms, wherein a positive dot product term corresponds to a front-side color and a negative dot product term corresponds to a back-side color. For each of the plurality of light sources having a positive dot product term, a color value corresponding to the light source for the vertex is computed. The resulting color values are multiplied and accumulated in parallel to obtain a respective front-side vertex color and back-side vertex color. The geometric orientation of the polygon corresponding to the vertex is then determined to ascertain whether the polygon is front facing or back facing. If the corresponding polygon is front facing, the front-side vertex color is output. If the corresponding polygon is back facing, the back-side vertex color is output, thereby allowing front-side and back-side vertex lighting to precede efficiently without pipeline stalling.