This property node defines a texture map and parameters for that map. This map is used to apply texture to subsequent shapes as they are rendered.
The texture can be read from the file specified by the
filename
field. Once the texture has been read, the
image field contains the texture data. However, this field is marked so the image is not written out when the texture node is written to a file. To turn off texturing,
set the
filename field to an empty string ("").
Textures can also be specified in memory by setting the
image field to contain the texture data. Doing so resets the
filename to the empty string.
If the texture image's width
or height is not a power of 2, or the image's width or height is greater than the maximum supported by OpenGL, then the image will be automatically scaled up or down to the next power of 2 or the maximum
texture size. For maximum speed, point-sampling is used to do the scale; if you want more accurate resampling, pre-filter images to a power of 2 smaller than the maximum texture size (use the OpenGL glGetIntegerv(GL_MAX_TEXTURE_SIZE...)
call to determine maximum texture for a specific OpenGL implementation).
The quality of the texturing is affected by the
textureQuality field of the
SoComplexity node. The
textureQuality field affects what kind of filtering is done to the texture
when it must be minified or magnified. The mapping of a particular texture quality value to a particular OpenGL filtering technique is implementation dependent, and varies based on the texturing performance.
If mipmap filtering is required, mipmaps are automatically created using the simple box filter.
SoSFString filename
Names file from which to read texture image. Currently only SGI .rgb files are supported. If the filename is not an absolute path name, the list of directories maintained by
SoInput is searched. If the texture
is not found in any of those directories, then the file is searched for relative to the directory from which the
SoTexture2 node was read. For example, if an
SoTexture2 node with a filename of
"../tofu.rgb" is read from
/usr/people/bob/models/food.iv, then
/usr/people/bob/tofu.rgb will be
read (assuming
tofu.rgb isn't found in the directories maintained by
SoInput).