If you need to combine Inventor and OpenGL calls, Table 28.1, “OpenGL State Variables: Current Values and Associated Data” through Table 28.9, “OpenGL State Variables: Miscellaneous” list the OpenGL state variables and describe which Inventor nodes (or actions) change those variables. If Inventor uses the current value of an OpenGL state variable and never changes it, the variable is omitted from this set of tables. See the OpenGL Programming Guide for a complete list of all OpenGL state variables and their default values. The recommended value for these variables is the default value, with two exceptions: turn on z-buffering and use RGB color mode.
Remember, the constructor for SoGLRenderAction SoGLRenderAction SoGLRenderAction takes a parameter that specifies whether to inherit the current OpenGL values. If you specify TRUE, Inventor inherits values from OpenGL. If you specify FALSE (the default), Inventor sets up its own reasonable default values (see Chapter 8, Applying Actions).
To save and restore OpenGL state, use the OpenGL pushAttributes() and popAttributes() commands. For example, if you change variables in the OpenGL state in a callback node, you need to restore the state when the callback node is finished. Note that if your callback node begins with a pushAttributes() and ends with a popAttributes(), but a render abort occurs in between, popAttributes() is never called and the state is not restored.
OpenGL State Variable |
Inventor Nodes That Change This Variable |
---|---|
GL_CURRENT_COLOR |
Shapes, Material, Base Color |
GL_CURRENT_INDEX |
Color Index node, Shapes |
GL_CURRENT_TEXTURE_COORDS |
Shapes, TextureCoordinate2 |
GL_CURRENT_NORMAL |
Shapes, Normal |
GL_CURRENT_RASTER_POSITION |
Text2 |
GL_CURRENT_RASTER_COLOR |
Text2 |
GL_CURRENT_RASTER_INDEX |
Text2 |
GL_CURRENT_RASTER_POSITION_- VALID |
Text2 |
OpenGL State Variable |
Inventor Nodes That Change This Variable |
---|---|
GL_MODELVIEW_MATRIX |
Transformation nodes, Cameras |
GL_PROJECTION_MATRIX |
Cameras |
GL_TEXTURE_MATRIX |
Texture2Transform |
GL_VIEWPORT |
Cameras |
GL_DEPTH_RANGE |
Cameras |
GL_MODELVIEW_STACK_DEPTH |
Transformation nodes |
GL_TEXTURE_STACK_DEPTH |
Texture2Transform |
GL_MATRIX_MODE |
Cameras, Texture2Transform |
OpenGL State Variable |
Inventor Nodes That Change This Variable |
---|---|
GL_FOG_COLOR |
Environment node |
GL_FOG_INDEX |
Environment node |
GL_FOG_DENSITY |
Environment node |
GL_FOG_START |
Environment node |
GL_FOG_END |
Environment node |
GL_FOG_MODE |
Environment node |
GL_FOG |
Environment node |
GL_SHADE_MODEL |
Light Model, if in color index mode |
OpenGL State Variable |
Inventor Nodes That Change This Variable |
---|---|
GL_LIGHTING |
Light Model |
GL_COLOR_MATERIAL |
Shapes |
GL_MATERIAL_PARAMETER |
Shapes |
GL_MATERIAL_FACE |
Shapes |
GL_AMBIENT |
Shapes, Material |
GL_DIFFUSE |
Shapes, Material |
GL_SPECULAR |
Shapes, Material |
GL_EMISSION |
Shapes, Material |
GL_SHININESS |
Shapes, Material |
GL_LIGHT_MODEL_AMBIENT |
Shapes, Material |
GL_LIGHT_MODEL_LOCAL_VIEWER |
Shapes, Material |
GL_LIGHT_MODEL_TWO_SIDE |
Shape Hints |
GL_AMBIENT |
Lights |
GL_DIFFUSE |
Lights |
GL_SPECULAR |
Lights |
GL_POSITION |
Lights |
GL_CONSTANT_ATTENUATION |
Environment |
GL_LINEAR_ATTENUATION |
Environment |
GL_QUADRATIC_ATTENUATION |
Environment |
GL_SPOT_DIRECTION |
Lights |
GL_SPOT_EXPONENT |
Lights |
GL_SPOT_CUTOFF |
Lights |
GL_LIGHTi |
Lights |
GL_COLOR_INDEXES |
Lights |
OpenGL State Variable |
Inventor Nodes That Change This Variable |
---|---|
GL_POINT_SIZE |
Draw Style |
GL_POINT_SMOOTH |
Render action |
GL_LINE_WIDTH |
Draw Style |
GL_LINE_SMOOTH |
Render Action |
GL_LINE_STIPPLE_PATTERN |
Draw Style |
GL_LINE_STIPPLE |
Draw Style |
GL_CULL_FACE |
Shape Hints |
GL_CULL_FACE_MODE |
Shape Hints |
GL_POLYGON_MODE |
Draw Style |
GL_POLYGON_STIPPLE |
Shapes if SCREEN_DOOR transparency |
OpenGL State Variable |
Inventor Nodes That Change This Variable |
---|---|
GL_TEXTURE_x |
Texture2 node |
GL_TEXTURE |
Texture2 node |
GL_TEXTURE_WIDTH |
Texture2 node |
GL_TEXTURE_HEIGHT |
Texture2 node |
GL_TEXTURE_COMPONENTS |
Texture2 node |
GL_TEXTURE_MIN_FILTER |
Complexity node |
GL_TEXTURE_MAG_FILTER |
Complexity node |
GL_TEXTURE_WRAP_x |
Texture2 node |
GL_TEXTURE_ENV_MODE |
Texture2 node |
GL_TEXTURE_ENV_COLOR |
Texture2 node |
GL_TEXTURE_GEN_x |
Texture Coordinate Function nodes |
GL_EYE_LINEAR |
Texture Coordinate Function nodes |
GL_OBJECT_LINEAR |
Texture Coordinate Function nodes |
GL_TEXTURE_GEN_MODE |
Texture Coordinate Function nodes |
GL_BLEND |
Render action, Texture2 node |
GL_BLEND_SRC |
Render action, Texture2 node |
GL_BLEND_DST |
Render action, Texture2 node |
OpenGL State Variable |
Inventor Nodes That Change This Variable |
---|---|
GL_UNPACK_ALIGNMENT |
Texture2 node |
GL_*_SCALE (* = RED; GREEN; BLUE; ALPHA) |
Texture2 node |
GL_*_BIAS (* = RED; GREEN; BLUE; ALPHA) |
Texture2 node |
OpenGL State Variable |
Inventor Nodes That Change This Variable |
---|---|
GL_LIST_BASE |
Text2, Text3 nodes |
GL_LIST_INDEX |
Separator, Text2, Text3 nodes |
GL_LIST_MODE |
Separator, Text2, Text3 nodes |