---
name: "SoTexture2"
section: "3iv"
platform: "linux"
package: "inventor-doc"
version: "2.1.6+ds-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SoTexture2/3iv"
---

# SoTexture2(3iv)

texture mapping node

## NAME

SoTexture2 — texture mapping node

## INHERITS FROM

SoBase \> SoFieldContainer \> SoNode \> SoTexture2

## SYNOPSIS

**#include \<Inventor/nodes/SoTexture2.h\>**

**enum Model {** **SoTexture2::MODULATE**	The texture color is multiplied by the surface color\
 **SoTexture2::DECAL**	The texture color replaces the surface color\
 **SoTexture2::BLEND**	Blends between the surface color and a specified blend color\
 **}**

**enum Wrap {** **SoTexture2::REPEAT**	Repeats texture outside 0-1 texture coordinate range\
 **SoTexture2::CLAMP**	Clamps texture coordinates to lie within 0-1 range\
 **}**

Fields from class SoTexture2:

**SoSFString**	**filename**\
 **SoSFImage**	**image**\
 **SoSFEnum**	**wrapS**\
 **SoSFEnum**	**wrapT**\
 **SoSFEnum**	**model**\
 **SoSFColor**	**blendColor**

Methods from class SoTexture2:

	**SoTexture2()**\
 **static SoType**	**getClassTypeId()**

Methods from class SoNode:

**void**	**setOverride(SbBool state)**\
 **SbBool**	**isOverride() const**\
 **SoNode \***	**copy(SbBool copyConnections = FALSE) const**\
 **virtual SbBool**	**affectsState() const**\
 **static SoNode \***	**getByName(const SbName &name)**\
 **static int**	**getByName(const SbName &name, SoNodeList &list)**

Methods from class SoFieldContainer:

**void**	**setToDefaults()**\
 **SbBool**	**hasDefaultValues() const**\
 **SbBool**	**fieldsAreEqual(const SoFieldContainer \*fc) const**\
 **void**	**copyFieldValues(const SoFieldContainer \*fc, SbBool copyConnections = FALSE)**\
 **SbBool**	**set(const char \*fieldDataString)**\
 **void**	**get(SbString &fieldDataString)**\
 **virtual int**	**getFields(SoFieldList &resultList) const**\
 **virtual SoField \***	**getField(const SbName &fieldName) const**\
 **SbBool**	**getFieldName(const SoField \*field, SbName &fieldName) const**\
 **SbBool**	**isNotifyEnabled() const**\
 **SbBool**	**enableNotify(SbBool flag)**

Methods from class SoBase:

**void**	**ref()**\
 **void**	**unref() const**\
 **void**	**unrefNoDelete() const**\
 **void**	**touch()**\
 **virtual SoType**	**getTypeId() const**\
 **SbBool**	**isOfType(SoType type) const**\
 **virtual void**	**setName(const SbName &name)**\
 **virtual SbName**	**getName() const**

## DESCRIPTION

**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.

## FIELDS

**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**).

**SoSFImage**	**image**\
 Contains an in-memory representation of the texture map. It is either the contents of the file read from **filename**, an image read directly from an Inventor file, or an image set programmatically using the methods provided by **SoSFImage**.

**SoSFEnum**	**wrapS**\
 **SoSFEnum**	**wrapT**\
 Indicates what to do when texture coordinates in the S (horizontal) or T (vertical) direction lie outside the range 0-1.

**SoSFEnum**	**model**\
 Specifies how to map texture onto surface.

**SoSFColor**	**blendColor**\
 Color used for **BLEND** model.

## METHODS

	**SoTexture2()**\
 Creates a texture node with default settings.

**static SoType**	**getClassTypeId()**\
 Returns type identifier for this class.

## ACTION BEHAVIOR

**SoGLRenderAction, SoCallbackAction**\
 Sets current texture in state.

## FILE FORMAT/DEFAULTS

```
Texture2 {
filename	""
image	0 0 0
wrapS	REPEAT
wrapT	REPEAT
model	MODULATE
blendColor	0 0 0
}
```

## SEE ALSO

**SoComplexity, SoMaterial, SoTexture2Transform, SoTextureCoordinate2, SoTextureCoordinateBinding, SoTextureCoordinateFunction**
