5.3 Tuning graphics cards

This section contains the information that you need to configure Abaqus/CAE and Abaqus/Viewer for a graphics adapter that is not yet qualified.


5.3.1 Why is tuning necessary?

SIMULIA tunes and qualifies a limited set of graphics adapters prior to each release. Tuning parameters for these graphics adapters are included in Abaqus. However, new graphics adapters and new drivers for existing graphics adapters become available between releases. Tuning may enable you to take advantage of these new adapters and drivers without waiting for a new release of Abaqus/CAE or Abaqus/Viewer.

Abaqus/CAE and Abaqus/Viewer use OpenGL for high-speed graphics rendering. While the OpenGL standard has strict conformance tests, some features are implementation dependent and require tuning to function correctly. Tuning a new graphics adapter or driver ensures that Abaqus/CAE and Abaqus/Viewer graphics are rendered correctly and that maximum rendering performance is obtained for each system.

You can find the latest information on qualified graphics adapters on the Support page at www.3ds.com/simulia. If you read the information on this page and follow the tuning procedures described in this section, you should be able to render Abaqus/CAE and Abaqus/Viewer graphics correctly and with maximum performance. If you continue to experience problems, you should contact your local technical support office for assistance.


5.3.2 How can I tune the parameters?

Abaqus/CAE and Abaqus/Viewer provide the following two methods for tuning graphics parameters:

Table 5–1 shows the tuning parameters that are available from Abaqus/CAE and Abaqus/Viewer. The table also shows the standard value of each parameter and whether you can use the Graphics Options dialog box to modify it. Certain parameters can be modified only before starting an Abaqus/CAE or Abaqus/Viewer session (see Making your graphics configuration permanent, Section 5.3.4, for details on modifying parameters on startup).

Table 5–1 Tuning parameters.

ParameterStandard valueModify using Graphics Options dialog boxModify only on startup
displayLists OnYesNo
antiAliasOnYesNo
translucencyMode 2More accurate than fastYesNo
highlightMethod 3HardwareYesNo
highlightMethodHintHardwareYesNo
dragModeAs-isYesNo
autoFitAfterRotateOffYesNo
backgroundColor#333366YesNo
backgroundBottomColor#acacc1YesNo
backgroundStyleGradientYesNo
backgroundOverrideOnYesNo
doubleBufferingOnNoNo
polygonOffsetConstant0.0 to 100.0NoNo
polygonOffsetSlope0.0 to 100.0NoNo
printPolygonOffsetConstant0.0 to 100.0NoNo
printPolygonOffsetSlope0.0 to 100.0NoNo
textureMappingOnNoNo
printTextureMappingOnNoNo
vertexArraysOnNoNo
vertexArraysInDisplayLists OnNoNo
backfaceCullingOnNoNo
directRenderingOnNoYes
accelerateOffScreenOffNoYes
backingStoreOnNoNo
hardwareAcceleration 4OnNoYes
hardwareOverlayNoneNoYes
hardwareOverlayAvailable 5NoneNoN/A
shadersAvailable 5NoneNoN/A
viewManipDisplayListThreshold 140NoNo
contourRangeTexturePrecision5.0×10–6NoNo
1The threshold is only used in the Visualization module of Abaqus/CAE (Abaqus/Viewer) when display lists are enabled.
2Translucency mode settings for rendering of translucent objects range from 1 (optimized for performance) to 5 (optimized for accuracy). The default value is 4.
3The highlight method is indirectly set by setting the highlightMethodHint parameter. Abaqus uses this value to determine an appropriate setting for highlightMethod.
4Hardware acceleration is applicable only to Windows platforms.
5You cannot directly set the hardwareOverlayAvailable parameter or the shadersAvailable parameter. Abaqus automatically sets these parameters by detecting the available hardware on your system.


5.3.3 Using the Abaqus Scripting Interface to tune the graphics parameters

You can enter Abaqus Scripting Interface commands in the command line interface to tune your graphics parameters and to find out information about the graphics adapter installed on your system. This section explains how to use the Abaqus Scripting Interface to modify the graphics options; the Abaqus Scripting Interface is described in detail in the Abaqus Scripting User's Guide.

In general, you should use the default values for most of the parameters. However, Abaqus provides the capability to modify parameters to fix the following specific problems:

Tuning the polygonOffsetConstant and polygonOffsetSlope parameters

If display lists are enabled, you will not see the effect of tuning these parameters; therefore, you must toggle off Use display lists before attempting to tune your graphics adapter. Alternatively, you can enter the following command in the command line interface:

session.graphicsOptions.setValues(displayLists=OFF)

Setting drag mode to AS_IS is helpful for fine tuning the parameters. Rotating the view interactively will show you if minor adjustments are necessary.

session.graphicsOptions.setValues(dragMode=AS_IS)

It is recommended that you tune polygonOffsetConstant first, then tune polygonOffsetSlope. To tune these parameters, you should first display the part that is generated by the example script in Creating a part, Section 3.1 of the Abaqus Scripting User's Guide. To retrieve the script, use the following command in a command prompt window (operating system shell):

abaqus fetch job=modelAExample
Select FileRun Script from the main menu bar, select the example script from the Run Script dialog box that appears, and click OK. The example script creates a new viewport; however, Abaqus should display only one viewport while you are trying to tune the graphics parameters. Select any old viewports and delete them by selecting ViewportDelete Current from the main menu bar.

To tune the polygonOffsetConstant parameter:

  1. From the Views toolbar, apply the bottom view .

  2. In the command line interface, enter the following commands:

    session.graphicsOptions.setValues(polygonOffsetSlope=0.0)
    session.graphicsOptions.setValues(polygonOffsetConstant=0.0)

  3. Display the bottom view again to refresh the display.

  4. Examine the model for visible lines. If all lines are not visible, repeat Step 2, increasing the value of the polygon offset constant by a small increment; for example, 0.1. The normal range for this parameter is between 0.5 and 1.5, and two decimal places usually provide sufficient precision. You should attempt to find a value as small as possible that produces a correct display. Values that are too large may cause the lines to appear to float above the part. The following figures illustrate the lines that should be visible in your model.

    Figure 5–2 illustrates the model with an incorrect value for polygonOffsetConstant; some lines are missing between the shaded areas.

    Figure 5–2 Incorrect value for polygonOffsetConstant.

    Figure 5–3 illustrates the model with a correct value for polygonOffsetConstant; all the shaded areas are separated by lines.

    Figure 5–3 Correct value for polygonOffsetConstant.

After you have derived a value for polygonOffsetConstant, you can tune polygonOffsetSlope.

To tune the polygonOffsetSlope parameter:

  1. From the Views toolbar, apply the isometric view . This view shows edges at a 45° angle on at least one axis.

  2. In the command line interface, enter the following command:

    session.graphicsOptions.setValues(polygonOffsetSlope=1.0) 

  3. Examine the model for visible lines. If all lines are not visible, repeat Step 2, increasing the value of the polygon offset slope by a small increment; for example, 0.1 or 0.05. The normal range for this parameter is between 1.0 and 2.0, and two decimal places usually provide sufficient precision. If the polygonOffsetConstant value is too low, it may force the polygonOffsetSlope to be high. High values of polygonOffsetSlope may cause the edges of hidden polygons to show through where they meet visible polygons. In this case, raise the polygonOffsetConstant value to get an acceptable value for polygonOffsetSlope.

    Figure 5–4 illustrates the model with an incorrect value for polygonOffsetSlope; some line segments are missing between the shaded areas, there is a line missing inside the hole, and some lines appear dashed when they should appear solid.

    Figure 5–4 Incorrect value for polygonOffsetSlope.

    Figure 5–5 illustrates the model with a correct value for polygonOffsetSlope; all the shaded areas are separated by solid lines.

    Figure 5–5 Correct value for polygonOffsetSlope.

Test the tuned values of polygonOffsetConstant and polygonOffsetSlope on several models to make sure the values are satisfactory. When you have finished tuning the graphics parameters, you should return your settings for display lists and drag mode to the original values.

When you are satisfied with the parameter settings, you should modify the environment file as described in Making your graphics configuration permanent, Section 5.3.4.


5.3.4 Making your graphics configuration permanent

Once you are satisfied with the values you have specified for the tuning parameters, you can make the changes permanent by including an onCaeGraphicsStartup function in your environment file (custom_v6.env or abaqus_v6.env). To avoid conflicts with other graphics settings, you should add the customized onCaeGraphicsStartup function only to the environment file in your home directory (see Using the Abaqus environment files, Section 4.1, for details on environment file location and execution).

The members of the DefaultGraphicsOptions object determine the default graphics settings that are enabled when you start a session and when you click Defaults in the Graphics Options dialog box. You can view the default graphics settings by entering the following command in the command line interface:

print session.defaultGraphicsOptions

You use the setValues method in the environment file (abaqus_v6.env) to modify the members of the DefaultGraphicsOptions object. To set your default graphics options in the environment file, you must use the session.defaultGraphicsOptions object instead of the session.graphicsOptions object that you modified from the command line interface. The following example environment file configures your Abaqus/CAE and Abaqus/Viewer graphics settings:

def onCaeGraphicsStartup():
    session.defaultGraphicsOptions.setValues(
        polygonOffsetConstant=1.0,
        polygonOffsetSlope=1.2)