texgen man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]



texgen(3G)							    texgen(3G)

NAME
     texgen - specify automatic generation of texture coordinates

C SPECIFICATION
     void texgen(long coord, long mode, float params[])

PARAMETERS
     coord    Expects the name of the texture coordinate whose generation is
	      to be defined, enabled, or disabled.  One of:

	      TX_S:  The s texture coordinate

	      TX_T:  The t texture coordinate

	      TX_R:  The r texture coordinate

	      TX_Q:  The q texture coordinate

     mode     Expects the mode of generation to be specified, or an indication
	      that generation is to be either enabled or disabled.  One of the
	      symbolic constants:

	      TG_CONTOUR:  Use the plane equation specified in params to
	      define a plane in eye-coordinates.  Generate a texture
	      coordinate that is proportional to vertex distance from this
	      plane.

	      TG_LINEAR:  Use the plane equation specified in params to define
	      a plane in object-coordinates.  Generate a texture coordinate
	      that is proportional to vertex distance from this plane.

	      TG_SPHEREMAP:  Generate texture coordinates based on the vertex
	      and current normal.  When used with the appropriate texture
	      (described below), this gives the appearance of the reflection
	      of an environment placed at infinity.  Typically, both TX_S and
	      TX_T are enabled.

	      TG_ON:  Enable the (previously defined) replacement for the
	      specified texture coordinate.

	      TG_OFF:  Disable replacement of the specified texture coordinate
	      (the default).

     params   Expects a 4-component plane equation when mode is TG_CONTOUR or
	      TG_LINEAR.  Array element 0 is plane equation component A, 1 is
	      B, 2 is C, and 3 is D.  The specified contents of params are
	      insignificant when mode is TG_ON, TG_OFF, or TG_SPHEREMAP.

DESCRIPTION
     Texture coordinates s, t, r, and q can be specified directly using the t
     command.  It is also possible to have texture coordinates generated
     automatically as a function of object geometry.  texgen specifies,

									Page 1

texgen(3G)							    texgen(3G)

     enables, and disables such automatic generation.  Either or both texture
     coordinates can be generated independently.  Automatic texture coordinate
     generation is disabled by default.

     texgen supports three generation algorithms:  TG_LINEAR, TG_CONTOUR, and
     TG_SPHEREMAP.  TG_LINEAR operates directly on object coordinates, and is
     therefore most useful for textures that are locked to objects, such as
     ground texture locked to a terain, or metalic texture locked to a
     cylinder.	TG_CONTOUR operates on eye-coordinates.	 It supports motion of
     an object through a `field' of texture coordinates.  TG_SPHEREMAP
     computes a reflection based on the vertex and normal in eye-coordinates.

     Both modes TG_LINEAR and TG_CONTOUR define a texture coordinate
     generation function that is a linear function of distance from a plane.
     The plane equation is specified as a single, 4-component, vector in
     object coordinates.

	  Pobject = | a |
     The TG_LINEAR plane equation remains in object-coordinates.  The
     TG_CONTOUR plane equation is transformed by the ModelView matrix into
     eye-coordinates when it is defined:

	  Peye = MM-1elView Pobject
     When a generation function has been defined for a texture coordinate, and
     texgen has been called with TG_ON, each vertex presented to the graphics
     system has that texture coordinate value replaced with the distance of
     the vertex from the defined plane.	 For example, when texture coordinate
     s is generated by a TG_LINEAR function, the generation function is:

	  s = Vobject.Pobject = | xobject, yobject, zobject, wobject|.| a |
     Alternately, when t is generated by a TG_CONTOUR function, the generation
     function is:

	  t = Veye.Peye
     where

	  Veye = Vobject MModelView,
     and

	  Peye = MM-1elView Pobject

									Page 2

texgen(3G)							    texgen(3G)

     Note that the ModelView matrix that modifies the plane equation is the
     ModelView matrix in effect when texgen was called, while the ModelView
     matrix that modifies the vertex coordinates is the matrix used to
     transform that vertex.

     The creation of an appropriate texture for TG_SPHEREMAP requires some
     explanation.  Consider a unit sphere centered at the viewpoint which
     represents the complete environment.  The mapping of this sphere to a 2D
     texture is captured with a formula, given below.

     Let R be an arbitrary unit vector based at the viewpoint.	s and t are
     texture coordinates in the range 0.0 to 1.0.  The texture value is taken
     from the point of intersection between R and the unit sphere.  The set of
     all possible values of R captures the complete environment.  The mapping
     from R to texture coordinates s and t is:

	       mag = 2*sqrt(R.x*R.x+R.y*R.y+(R.z+1)*(R.z+1))

	       s = R.x/mag+.5

	       t = R.y/mag+.5

     The point in the environment directly behind the viewer maps to s = .5, t
     = .5.  The intersection between the plane z = 0 and the environment maps
     to a circle centered at s = .5, t = .5 with a radius of sqrt(2)/4.	 The
     point in the environment directly in front of the viewer maps to a circle
     with a radius of .5.  This circle marks the boundary of the complete
     environment in the texture.  In a reflection, this boundary can be
     approached but not reached.  Since the view direction is fixed for each
     environment texture, a change in the view direction will require a new
     texture to be calculated.

     texgen generation functions remain valid until they are redefined.	 They
     are enabled and disabled without redefinition by calls to texgen with
     modes TG_ON and TG_OFF.  texgen definition has no effect on the enable
     mode of the texture generation function.

     When enabled, texgen replaces s, t, or both each time a vertex command is
     received.	A texture coordinate that is not being generated continues to
     be specified by t commands.  Texture coordinate are transformed by the
     Texture matrix (see mmode) following coordinate replacement by texgen.

SEE ALSO
     mmode, n, t, texdef2d, texdef3d, texbind, tevdef, tevbind, v

NOTES
     IRIS-4D G, GT, and GTX models, and the Personal Iris, do not support
     texture mapping.  texgen is ignored by these machines.  The Iris Indy,
     Indigo Entry, and XL support texture mapping except for lines.  IRIS-4D
     VGX and VGXT models, the Personal Iris, Indy, Indigo Entry, XS, XS24, XZ,
     Elan and Extreme systems do not support TX_R and TX_Q.  Use getgdesc to
     determine whether texture mapping is supported.

									Page 3

texgen(3G)							    texgen(3G)

     texgen cannot be used while mmode is MSINGLE.

									Page 4

[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net