Open Inventor Release 2024.1.0
 
Loading...
Searching...
No Matches
SoTextureCubeMap Class Reference

VSG extension Cube texture mapping node. More...

#include <Inventor/nodes/SoTextureCubeMap.h>

+ Inheritance diagram for SoTextureCubeMap:

Public Member Functions

virtual SoType getTypeId () const
 Returns the type identifier for this specific instance.
 
 SoTextureCubeMap ()
 Creates a texture node with default settings.
 
- Public Member Functions inherited from SoTexture
void setBitmapFileType (FileType in_type)
 Sets the texture file format.
 
FileType getBitmapFileType (void)
 Gets the texture file format.
 
virtual void setOverride (const SbBool state)
 Set the state of the override field.
 
virtual SbBool isOverride () const
 Returns the state of the override field.
 
- Public Member Functions inherited from SoNode
virtual SoNodecopy (SbBool copyConnections=FALSE) const
 Creates and returns an exact copy of the node.
 
virtual SbBool affectsState () const
 Returns TRUE if a node has an effect on the state during traversal.
 
virtual void touch ()
 Marks an instance as modified, simulating a change to it.
 
- Public Member Functions inherited from SoFieldContainer
void setToDefaults ()
 Sets all fields in this object to their default values.
 
SbBool hasDefaultValues () const
 Returns TRUE if all of the object's fields have their default values.
 
SbBool fieldsAreEqual (const SoFieldContainer *fc) const
 Returns TRUE if this object's fields are exactly equal to fc's fields.
 
void copyFieldValues (const SoFieldContainer *fc, SbBool copyConnections=FALSE)
 Copies the contents of fc's fields into this object's fields.
 
SoNONUNICODE SbBool set (const char *fieldDataString)
 Sets one or more fields in this object to the values specified in the given string, which should be a string in the Open Inventor file format.
 
SbBool set (const SbString &fieldDataString)
 Sets one or more fields in this object to the values specified in the given string, which should be a string in the Open Inventor file format.
 
void get (SbString &fieldDataString)
 Returns the values of the fields of this object in the Open Inventor ASCII file format in the given string.
 
virtual int getFields (SoFieldList &list) const
 Appends references to all of this object's fields to resultList, and returns the number of fields appended.
 
virtual int getAllFields (SoFieldList &list) const
 Returns a list of fields, including the eventIn's and eventOut's.
 
virtual SoFieldgetField (const SbName &fieldName) const
 Returns a the field of this object whose name is fieldName.
 
virtual SoFieldgetEventIn (const SbName &fieldName) const
 Returns a the eventIn with the given name.
 
virtual SoFieldgetEventOut (const SbName &fieldName) const
 Returns the eventOut with the given name.
 
SbBool getFieldName (const SoField *field, SbName &fieldName) const
 Returns the name of the given field in the fieldName argument.
 
SbBool enableNotify (SbBool flag)
 Notification at this Field Container is enabled (if flag == TRUE) or disabled (if flag == FALSE).
 
SbBool isNotifyEnabled () const
 Notification is the process of telling interested objects that this object has changed.
 
virtual void setUserData (void *data)
 Sets application data.
 
void * getUserData (void) const
 Gets user application data.
 
- Public Member Functions inherited from SoBase
virtual SbName getName () const
 Returns the name of an instance.
 
virtual void setName (const SbName &name)
 Sets the name of an instance.
 
void setSynchronizable (const bool b)
 Sets this to be a ScaleViz synchronizable object.
 
bool isSynchronizable () const
 Gets the ScaleViz synchronizable state of this object.
 
- Public Member Functions inherited from SoRefCounter
void ref () const
 Adds a reference to an instance.
 
void unref () const
 Removes a reference from an instance.
 
void unrefNoDelete () const
 unrefNoDelete() should be called when it is desired to decrement the reference count, but not delete the instance if this brings the reference count to zero.
 
int getRefCount () const
 Returns current reference count.
 
void lock () const
 lock this instance.
 
void unlock () const
 unlock this instance.
 
- Public Member Functions inherited from SoTypedObject
SbBool isOfType (const SoType &type) const
 Returns TRUE if this object is of the type specified in type or is derived from that type.
 
template<typename TypedObjectClass >
SbBool isOfType () const
 Returns TRUE if this object is of the type of class TypedObjectClass or is derived from that class.
 

Static Public Member Functions

static SoType getClassTypeId ()
 Returns the type identifier for this class.
 
- Static Public Member Functions inherited from SoTexture
static SoType getClassTypeId ()
 Returns the type identifier for this class.
 
static SbBool isSupported (HW_Feature feature)
 Returns information about hardware support for various texture features.
 
static SbRasterImagereadTexture (const SbString &filename, FileType filetype=UNKNOWN)
 Convenience function that loads the image data from any texture file supported by Open Inventor and returns an SbRasterImage object.
 
- Static Public Member Functions inherited from SoNode
static SoType getClassTypeId ()
 Returns the type identifier for this class.
 
static SoNodegetByName (const SbName &name)
 A node's name can be set using SoBase::setName().
 
static int getByName (const SbName &name, SoNodeList &list)
 A node's name can be set using SoBase::setName().
 
- Static Public Member Functions inherited from SoFieldContainer
static SoType getClassTypeId ()
 Returns the type of this class.
 
- Static Public Member Functions inherited from SoBase
static SoType getClassTypeId ()
 Returns type identifier for this class.
 
- Static Public Member Functions inherited from SoTypedObject
static SoType getClassTypeId ()
 Returns the type identifier for this class.
 

Public Attributes

SoMFFilePathString filenames
 Names file(s) from which to read texture image(s).
 
SoSFImage imagePosX
 Contains an in-memory representation of the texture map.
 
SoSFImage imagePosY
 See imagePosX.
 
SoSFImage imagePosZ
 See imagePosX.
 
SoSFImage imageNegX
 See imagePosX.
 
SoSFImage imageNegY
 See imagePosX.
 
SoSFImage imageNegZ
 See imagePosX.
 
SoSFEnum wrapT
 Indicates what to do when texture coordinates in the T (vertical) direction lie outside the range 0-1.
 
SoSFEnum wrapR
 Indicates what to do when texture coordinates in the R (depth) direction lie outside the range 0-1.
 
SoSFNode renderToTextureProperty
 Specifies an SoRenderToTextureProperty node containing a scene graph that will be rendered to create the texture image.
 
SoSFFloat HDRIExposure
 Specifies an exposure factor when using an HDRI file.
 
- Public Attributes inherited from SoTexture
SoSFEnum internalFormat
 Internal format for texture storage.
 
SoSFBool enableCompressedTexture
 Enables storage of textures on the graphics board in compressed form.
 
SoSFEnum wrapS
 Indicates what to do when texture coordinates in the S (horizontal) direction lie outside the range 0-1.
 
SoSFEnum model
 Specifies how to map texture onto surface.
 
SoSFColor blendColor
 Color used for BLEND model.
 
SoSFBool enableBorder
 Enables borders for textures.
 
SoSFVec4f borderColor
 Defines border color used for border texture filtering.
 
SoSFFloat maxAnisotropy
 Specifies on a per-texture object basis, the maximum degree of anisotropy to account for in texture filtering.
 
SoSFEnum minFilter
 Specifies the OpenGL minFilter.
 
SoSFEnum magFilter
 Specifies the OpenGL magFilter.
 

Additional Inherited Members

- Public Types inherited from SoTexture
enum  InternalFormat {
  AUTO_INTERNAL_FORMAT ,
  ALPHA_FORMAT ,
  ALPHA4 ,
  ALPHA8 ,
  ALPHA12 ,
  ALPHA16 ,
  LUMINANCE_FORMAT ,
  LUMINANCE4 ,
  LUMINANCE8 ,
  LUMINANCE12 ,
  LUMINANCE16 ,
  LUMINANCE_ALPHA ,
  LUMINANCE4_ALPHA4 ,
  LUMINANCE6_ALPHA2 ,
  LUMINANCE8_ALPHA8 ,
  LUMINANCE12_ALPHA4 ,
  LUMINANCE12_ALPHA12 ,
  LUMINANCE16_ALPHA16 ,
  INTENSITY_FORMAT ,
  INTENSITY4 ,
  INTENSITY8 ,
  INTENSITY12 ,
  INTENSITY16 ,
  R3_G3_B2 ,
  RGB_FORMAT ,
  RGB4 ,
  RGB5 ,
  RG8 ,
  RGB8 ,
  RGB10 ,
  RGB12 ,
  RGB16 ,
  RGBA_FORMAT ,
  RGBA2 ,
  RGBA4 ,
  RGB5_ALPHA1 ,
  RGBA8 ,
  RGB10_ALPHA2 ,
  RGBA12 ,
  RGBA16 ,
  RGBA_FLOAT32 ,
  RGB_FLOAT32 ,
  ALPHA_FLOAT32 ,
  INTENSITY_FLOAT32 ,
  LUMINANCE_FLOAT32 ,
  LUMINANCE_ALPHA_FLOAT32 ,
  RGBA_FLOAT16 ,
  RGB_FLOAT16 ,
  ALPHA_FLOAT16 ,
  INTENSITY_FLOAT16 ,
  LUMINANCE_FLOAT16 ,
  LUMINANCE_ALPHA_FLOAT16 ,
  COMPRESSED_ALPHA ,
  COMPRESSED_LUMINANCE ,
  COMPRESSED_LUMINANCE_ALPHA ,
  COMPRESSED_INTENSITY ,
  COMPRESSED_RGB ,
  COMPRESSED_RGBA ,
  COMPRESSED_LUMINANCE_LATC1 ,
  COMPRESSED_SIGNED_LUMINANCE_LATC1 ,
  COMPRESSED_LUMINANCE_ALPHA_LATC2 ,
  COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2 ,
  COMPRESSED_RED_RGTC1 ,
  COMPRESSED_SIGNED_RED_RGTC1 ,
  COMPRESSED_RED_GREEN_RGTC2 ,
  COMPRESSED_SIGNED_RED_GREEN_RGTC2 ,
  DEPTH_COMPONENT16 ,
  DEPTH_COMPONENT24 ,
  DEPTH24_STENCIL8 ,
  R8I ,
  R8UI ,
  R16I ,
  R16UI ,
  R32I ,
  R32UI ,
  RG8I ,
  RG8UI ,
  RG16I ,
  RG16UI ,
  RG32I ,
  RG32UI ,
  RGB8I ,
  RGB8UI ,
  RGB16I ,
  RGB16UI ,
  RGB32I ,
  RGB32UI ,
  RGBA8I ,
  RGBA8UI ,
  RGBA16I ,
  RGBA16UI ,
  RGBA32I ,
  RGBA32UI
}
 Texture internal storage format. More...
 
enum  Model {
  MODULATE = SbEnums::TEX_MODEL_MODULATE ,
  DECAL = SbEnums::TEX_MODEL_DECAL ,
  BLEND = SbEnums::TEX_MODEL_BLEND ,
  REPLACE = SbEnums::TEX_MODEL_REPLACE ,
  ADD = SbEnums::TEX_MODEL_ADD ,
  COMBINE = SbEnums::TEX_MODEL_COMBINE
}
 Texture Combiner Functions. More...
 
enum  Wrap {
  REPEAT = SbEnums::TEX_ADDRESS_REPEAT ,
  CLAMP = SbEnums::TEX_ADDRESS_CLAMP ,
  CLAMP_TO_BORDER = SbEnums::TEX_ADDRESS_CLAMP_BORDER ,
  CLAMP_TO_EDGE = SbEnums::TEX_ADDRESS_CLAMP_TO_EDGE ,
  MIRRORED_REPEAT = SbEnums::TEX_ADDRESS_MIRROR_REPEAT
}
 Texture wrap type. More...
 
enum  Filter {
  AUTO = SbEnums::TEX_FILTER_AUTO ,
  NEAREST = SbEnums::TEX_FILTER_NEAREST ,
  LINEAR = SbEnums::TEX_FILTER_LINEAR ,
  NEAREST_MIPMAP_NEAREST = SbEnums::TEX_FILTER_NEAREST_MIPMAP_NEAREST ,
  NEAREST_MIPMAP_LINEAR = SbEnums::TEX_FILTER_NEAREST_MIPMAP_LINEAR ,
  LINEAR_MIPMAP_NEAREST = SbEnums::TEX_FILTER_LINEAR_MIPMAP_NEAREST ,
  LINEAR_MIPMAP_LINEAR = SbEnums::TEX_FILTER_LINEAR_MIPMAP_LINEAR
}
 Specifies the OpenGL filtering method for minification and magnification. More...
 
enum  HW_Feature {
  HW_NPOT = 0 ,
  HW_FLOATFORMAT ,
  HW_DEPTHFORMAT ,
  HW_AUTOMIPMAP ,
  HW_BORDER_CLAMP ,
  HW_EDGE_CLAMP ,
  HW_MIRRORED_REPEAT ,
  HW_COMPRESSION_S3TC ,
  HW_COMPRESSION_LATC ,
  HW_COMPRESSION_RGTC
}
 
enum  FileType {
  UNKNOWN ,
  RGB ,
  SGI ,
  TIFF ,
  GIF ,
  JPEG ,
  BMP ,
  PNG ,
  JPEG2000 ,
  PGX ,
  PNM ,
  RAS ,
  DDS ,
  HDRI ,
  NUM_FILETYPES
}
 File Type possible values. More...
 

Detailed Description

VSG extension Cube texture mapping node.

Cube map textures provide a new texture generation scheme for looking up textures from a set of six two-dimensional images representing the faces of a cube. The (s,t,r) texture coordinates are treated as a direction vector emanating from the center of a cube. At texture generation time, the interpolated per-fragment (s,t,r) selects one cube face two-dimensional image based on the largest magnitude coordinate (the major axis). A new (s,t) is calculated by dividing the two other coordinates (the minor axes values) by the major axis value, and the new (s,t) is used to lookup into the selected two-dimensional texture image face of the cube map.

Cube map textures are often used within shader programs to implement effects such as reflection or refraction.

There are three ways to send the texture to Open Inventor:

  • The textures can be read from six image files specified in the filenames field.
  • Textures can be specified in memory by setting the image fields (imagePosX, ...) to contain the texture data. Doing so resets the filenames field to the empty string.
  • Textures can be rendered from a scene graph using the renderToTextureProperty field.

But in all cases, the images must be specified in the following order:

  • imagePosX (left)
  • imagePosY (bottom)
  • imagePosZ (back)
  • imageNegX (right)
  • imageNegY (top)
  • imageNegZ (front)

The SoTextureCoordinateReflectionMap node can be used to automatically generate appropriate texture coordinates for cube mapping.

If the texture image's width or height is not a power of 2, and the Non Power Of Two (NPOT) extension is available on your graphics board, by default Open Inventor will send the image to OpenGL without modification. See SoTexture2 for a complete discussion of this feature.

Transparency Texture images can contain transparency (alpha values less than 1) and modify the transparency of geometry in the scene. Also note that some image file formats, for example JPEG, do not support transparency information (alpha channel).

Limitations:

  • Since Open Inventor 10.0.0 Alpha 2 it is no longer possible to fill a SoTextureCubeMap with textures in different formats or sizes. All six textures must have the same format and size. If these conditions are not met, an error message is displayed (in debug) and nothing is changed on the state.

EXAMPLE

FILE FORMAT/DEFAULT

    TextureCubeMap {
    filenames ""
    imagePosX 0 0 0
    imageNegX 0 0 0
    imagePosY 0 0 0
    imageNegY 0 0 0
    imagePosZ 0 0 0
    imageNegZ 0 0 0
    wrapS REPEAT
    wrapT REPEAT
    wrapR REPEAT
    enableCompressedTexture FALSE
    model MODULATE
    blendColor 0 0 0
    enableBorder FALSE
    borderColor 0 0 0 0
    maxAnisotropy 1.0
    minFilter AUTO
    magFilter AUTO
    useAutoMipmap FALSE
    internalFormat AUTO_INTERNAL_FORMAT
    }

ACTION BEHAVIOR

SEE ALSO

SoComplexity, SoExtTexture2, SoMaterial, SoTexture2, SoTexture2Transform, SoTextureCoordinate2, SoTextureCoordinateBinding, SoTextureCoordinateFunction, SoTextureCoordinateNormalMap, SoTextureCoordinateReflectionMap, SoTextureUnit

Definition at line 226 of file SoTextureCubeMap.h.

Constructor & Destructor Documentation

◆ SoTextureCubeMap()

SoTextureCubeMap::SoTextureCubeMap ( )

Creates a texture node with default settings.

Member Function Documentation

◆ getClassTypeId()

static SoType SoTextureCubeMap::getClassTypeId ( )
static

Returns the type identifier for this class.


◆ getTypeId()

virtual SoType SoTextureCubeMap::getTypeId ( ) const
virtual

Returns the type identifier for this specific instance.

Reimplemented from SoTexture.

Member Data Documentation

◆ filenames

SoMFFilePathString SoTextureCubeMap::filenames

Names file(s) from which to read texture image(s).

The standard image file formats are supported. See SoRasterImageRW for the list. If the first file is an HDRI file, only this file is used since it has all 6 faces encoded. 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 SoTextureCubeMap node was read. For example, if an SoTextureCubeMap 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).

Definition at line 248 of file SoTextureCubeMap.h.

◆ HDRIExposure

SoSFFloat SoTextureCubeMap::HDRIExposure

Specifies an exposure factor when using an HDRI file.

1.0 by default.

Definition at line 309 of file SoTextureCubeMap.h.

◆ imageNegX

SoSFImage SoTextureCubeMap::imageNegX

See imagePosX.

Definition at line 269 of file SoTextureCubeMap.h.

◆ imageNegY

SoSFImage SoTextureCubeMap::imageNegY

See imagePosX.

Definition at line 273 of file SoTextureCubeMap.h.

◆ imageNegZ

SoSFImage SoTextureCubeMap::imageNegZ

See imagePosX.

Definition at line 277 of file SoTextureCubeMap.h.

◆ imagePosX

SoSFImage SoTextureCubeMap::imagePosX

Contains an in-memory representation of the texture map.

It is either the contents of the file read from filenames, an image read directly from an Open Inventor file, or an image set programmatically using the methods provided by SoSFImage.

Definition at line 257 of file SoTextureCubeMap.h.

◆ imagePosY

SoSFImage SoTextureCubeMap::imagePosY

See imagePosX.

Definition at line 261 of file SoTextureCubeMap.h.

◆ imagePosZ

SoSFImage SoTextureCubeMap::imagePosZ

See imagePosX.

Definition at line 265 of file SoTextureCubeMap.h.

◆ renderToTextureProperty

SoSFNode SoTextureCubeMap::renderToTextureProperty

Specifies an SoRenderToTextureProperty node containing a scene graph that will be rendered to create the texture image.

The scene is rendered into a Pbuffer and then directly bound or copied into texture memory. Null by default.

NOTE: field available since Open Inventor 6.0

Definition at line 302 of file SoTextureCubeMap.h.

◆ wrapR

SoSFEnum SoTextureCubeMap::wrapR

Indicates what to do when texture coordinates in the R (depth) direction lie outside the range 0-1.

Use enum SoTexture::Wrap. Default is REPEAT.

Definition at line 290 of file SoTextureCubeMap.h.

◆ wrapT

SoSFEnum SoTextureCubeMap::wrapT

Indicates what to do when texture coordinates in the T (vertical) direction lie outside the range 0-1.

Use enum SoTexture::Wrap. Default is REPEAT.

Definition at line 284 of file SoTextureCubeMap.h.


The documentation for this class was generated from the following file: