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_listtex_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_listbump_y_listtexmotionderivs[]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-2010 by mental images GmbH