The following table is an extension to the previous. These variables give information about the intersection point for texture mapping. They are defined when the ray has hit a textured object:
type | name | content |
---|---|---|
miVector * | tex_list | list of texture coordinates |
miVector * | bump_x_list | list of X bump basis vectors |
miVector * | bump_y_list | list of Y bump basis vectors |
miVector | tex | texture coord (tex shaders) |
miVector | motion | interpolated motion vector |
miVector * | derivs[5] | list of surface derivatives |
tex_list
tex_list
and copying it
to tex
. Texture spaces in a miBox may have arbitrary
dimension. The tex_list
entries contain only coordinates from up
to three dimensional texture spaces. For higher dimensions, the
tex_list
entries are set to zero and the function
mi_texture_interpolate
should be used instead.
[0].x, [0].y, [0].z, [1].x,
and so on. In contrast to regular
geometry hair uses scalars not vectors, and their number does not have to be
a multiple of three. It is often useful to cast tex_list
to a
miScalar
pointer for access.
bump_x_list
bump_y_list
tex
motion
derivs[]
derivs[0] … derivs[4]
contain
∂x⁄∂u, ∂x⁄∂v,
∂²x⁄∂u²,
∂²x⁄∂v²,
∂²x⁄∂u∂v, respectively. Here
x denotes the intersection point. For polygonal
objects the surface derivatives are taken from the .mi file. If the object
has no first derivative vectors, the first two vectors are null vectors.
If the object has no second derivative vectors, the last three vectors are
null vectors. Since surface derivatives are calculated approximately, the
vectors ∂x⁄∂u, ∂x⁄∂v
and the normal vector at the intersection point are not necessarily orthogonal
to each other.
derivs[0]
contains the
interpolated tangent at the point of intersection.
Copyright © 1986-2011 by mental images GmbH