tevdef(3G)
tevdef - defines a texture mapping environment
As shipped in IRIX 6.5.22. Unchanged since IRIX 6.5.
NAME tevdef - defines a texture mapping environment FORTRAN SPECIFICATION subroutine tevdef(index, np, props) integer*4 index, np real props() PARAMETERS index expects the name of the environment being defined. Index 0 is reserved as a null definition, and cannot be redefined. np expects the number of symbols and floating point values in props, including the termination symbol TVNULL. If np is zero, it is ignored. Operation over network connections is more efficient when np is correctly specified, however. props expects the array of floating point symbols and values that define the texture environment. props must contain a sequence of symbols, each followed by the appropriate number of floating point values. The last symbol must be TVNULL, which is itself not followed by any values. DESCRIPTION Evaluation of the texture function at a pixel yields 1, 2, 3, or 4 values, depending on the value of nc passed to texdef when the currently bound texture was defined. Texture environment determines how these texture values are used, not how they are computed or filtered. tevdef defines an environment based on options specified in the props array. If no options are specified, a reasonable default environment is defined. Before the options can be defined, several conventions must be established: 1. The color components of the incoming pixel (prior to texture mapping) are refered to as Rin, Gin, Bin, and Ain. 2. The components of the texture function (computed at each pixel) are refered to as I, R, G, B, and A, depending on the number of components in the currently bound texture. For example, the single value of a 1-component texture function is refered to as I, while the four components of a 4-component texture are refered to as A (value 0), B (value 1), G (value 2), and R (value 3). Refer to the texdef manual page for an explanation of how texture function values correspond to the image pixels used to define the texture. 0123 (texture function value) 1-component texture I 2-component texture AI 3-component texture BGR 4-component texture ABGR 3. The components of the outgoing color that results from application of the texture function to the incoming pixel color, based on the texture environment, are Rout, Gout, Bout, and Aout. Texture environment options are specified as a list of symbols, each followed by the appropriate number of floating point values, in the props array. The last symbol must be TVNULL. TVMODU is the default texture environment. It specifies an environment in which incoming color components are multiplied by texture values. No floating point values follow this token. The exact arithmetic for 1, 2, 3, and 4 component texture functions is: 1-component: Rout=Rin*I,Gout=Gin*I,Bout=Bin*I,Aout=Ain 2-component: Rout=Rin*I,Gout=Gin*I,Bout=Bin*I,Aout=Ain*A 3-component: Rout=Rin*R,Gout=Gin*G,Bout=Bin*B,Aout=Ain 4-component: Rout=Rin*R,Gout=Gin*G,Bout=Bin*B,Aout=Ain*A TVALPH specifies a texture environment in which the texture function affects the alpha color component. The other color components are unaffected. No floating point values follow this token. Only the 1-component texture function of TXI16 (see texdef) has defined behavior when this environment is specified. The exact arithmetic for these texture functions is: 1-component: Rout = Rin Gout = Gin Bout = Bin Aout = Ain*I 2-component: undefined 3-component: undefined 4-component: undefined TVBLEN specifies a texture environment in which texture function values are used to blend between the incoming color and the current texture environment color constant: (Rcon,Gcon,Bcon,Acon). No floating point values follow this token. Only 1 and 2 component texture functions have defined behavior when this environment is specified. The exact arithmetic for these texture functions is: 1-component: Rout = Rin*(1-I) + Rcon*I Gout = Gin*(1-I) + Gcon*I Bout = Bin*(1-I) + Bcon*I Aout = Ain 2-component: Rout = Rin*(1-I) + Rcon*I Gout = Gin*(1-I) + Gcon*I Bout = Bin*(1-I) + Bcon*I Aout = Ain*A 3-component: undefined 4-component: undefined TVDECA specifies a texture environment in which texture function alpha is used to blend between the incoming color and the texture function color. No floating point values follow this token. Only 3 and 4-component texture functions have defined behavior when this environment is specified. Note that the 3-component version simply outputs the texture colors, because no alpha texture component is available for blending. The exact arithmetic is: 1-component: undefined 2-component: undefined 3-component: Rout = R Gout = G Bout = B Aout = Ain 4-component: Rout = Rin*(1-A) + R*A Gout = Gin*(1-A) + G*A Bout = Bin*(1-A) + B*A Aout = Ain TVCOLO specifies the constant color used by the TVBLEN environment. Four floating point values, in the range 0.0 through 1.0, must follow this symbol. These values specify Rcon, Gcon, Bcon, and Acon. By default, all are set to 1.0. TVCOMP allows the use of one or two components from a texture with more components. Some Graphics Library implementations may allow 4 component textures with a very small component size, such as 4bits which is smaller than the smallest addressable datum. Thus, a 4 component texture with 4 bits per component may be used as 4 seperate 1 component textures, or two 2 component textures, etc. The token is followed by one choice from the following: TVIGR uses the red component of a 4 component texture as a 1 component texture. TVIGG uses the green component of a 4 component texture as a 1 component texture. TVIGB uses the blue component of a 4 component texture as a 1 component texture. TVIGA uses the alpha component of a 4 or 2 component texture as a 1 component texture. TVIARG uses the red and green components from a 4 component texture as a 2 component texture. TVIABA uses the blue and alpha components from a 4 component texture as a 2 component texture. TVIGI uses the intensity component from a 2 component texture as a 1 component texture. Symbols TVMODU, TVALPH, TVBLEN and TVDECA are exclusive; only one should be included in the props array. If none are included, TVMODU is chosen by default. The texture environment is used to apply the results of the texture function to pixel color data after shading, but before fog is blended. Conditional pixel writes based on pixel alpha are computed after texture and fog are applied. (See afunct.) This allows texture transparency to control the conditional writing of pixels. Each time an index is passed to tevdef, the definition corresponding to that index is completely respecified. Do not attempt to change a portion of a texture environment definition. SEE ALSO afunct, scrsub, t, tevbin, texbin, texdef, texgen NOTES tevdef is immediate mode only. IRIS-4D G, GT, and GTX models, and the Personal Iris, do not support texture mapping. tevdef is ignored by these machines. The Iris Indy, Indigo Entry, and XL support texture mapping except for lines. Use getgde to determine whether texture mapping is supported. IRIS-4D VGX, VGXT and SKYWRITER models do not support TVCMSL IRIS-4D VGX models without alpha bitplanes do not fully support 4- component textures. When a 4-component texture is used, it is treated by the texture environment as though it were a 3-component texture. Use getgde(GDBNSA) to determine whether alpha bitplanes are available. IRIS-4D RealityEngine models support TVCOMP only with TXRGBA and TXIA8 format texels. Only IRIS-4D RealityEngine models support TVALPH. BUGS IRIS-4D VGX models do not support simultaneous texture mapping and polygon antialiasing. (See polysm.) Infinite Reality and Impact do not support TVALPH or TVCOMP