HOOPS/3dGS Release Notes

1.0 Functional Changes

2.0 New Features and Enhancements

Minor Release 18.10

Major Release 18.00


1.0 Functional Changes

These HOOPS/3dGS API and driver interface changes could affect the performance of HOOPS-based applications.

Routines Deprecated

No routines were deprecated for Releases 18.00 and 18.10.

Options Deprecated

In Define_System_Options, the multi-threading option no longer supports 'basic'.

Drivers Changes

Minor Release 18.10

There is now full support for the OpenGL2.

Major Release 18.00

There is a new OpenGL2. It is currently in Beta and not ready to be used on commercial grade applications.

Build and Linkage Changes

Minor Release 18.10

There were no build and linkage changes.

Major Release 18.00

  • The DX9 driver now requires the DirectX 9.0c Runtime version 9.26.1590 distributed on March 2009 or a later version of DirectX 9 installed on your system.
  • The HOOPS/3dGS Static Library now includes all drivers. The dynamic driver loader has been removed from the static build.

Interface Changes

There were no interface changes for Releases 18.00 and 18.10.

Behavioral Changes

Minor Release 18.10

There were no behavioral changes.

Major Release 18.00

  • HOOPS will only create segments in '/driver' for drivers available on a given platform.
  • In Define_System_Options, when the multi-threading option is set to 'full', you can make any HC call from any thread at any time.
  • If the system option multi-threading option is set to 'full', then HOOPS will not allow any HOOPS/3dGS class to be made from within an Intermediate Mode callback.
  • Shadow maps now honor spotlights.
  • During calls to Update_Display_Timed, if shadow maps are enabled, then the shadow map for a distant/spot light will only be generated on the first update after it is inserted. If the shadow map for the light needs to be regenerated (because the light moved, or view dependent shadows are enabled), then it will simply be removed from the scene. The shadow will be added back after the next call to Update_Display.
  • Spatial organization of the static tree now only occurs if the model type heuristic is set to 'lmv'.
  • Contour lines are not regenerated on each update.
  • Contour lines can now be put into display lists.
  • Circles and ellipses including their arc variants can now be put into display lists.


2.0 New Features and Enhancements

Minor Release 18.10

  • 11760 - The ability to set an image key for the driver option "use window id".

    For the OpenGL, OpenGL2 and DX9 drivers, to perform offscreen rendering, you can set the use window ID driver option with an image key value using the "image key" modifier. Learn more about this feature in the offscreen rendering section of the HOOPS/3dGS Programming Guide.

  • 11699 - Show_Device_Info returns the hardware maximum texture size.

    You can now query the current device for information about the maximum texture size by passing the option max texture size when making a called to Show_Device_Info.

  • 10548 - A new option to override texture transforms in Define_Texture.

    In Define_Texture, you can set the option transform override to prevent your texture from taking on transformations not explicitly specified in the texture definition. Learn more about this feature in the texture tranformations of the HOOPS/3dGS Programming Guide.

  • 11612 - Hardware Accelerated Support for Priority HSRA.

    In Set_Rendering_Options, you can set the HSRA to priority to control the order in which geometry is drawn. This option is used in conjunction with the manually setting of priority on item via Set_Priority. Learn more about this feature in discussion on the priority HSRA in the HOOPS/3dGS Programming Guide.

  • 12402 - Transparency Cutoff Support for Hidden Line Removal.

    In Set_Rendering_Options, you can set a transparency cutoff in the hidden line removal options to determine if a item with transparency values is treated as opaque or transparent.

Major Release 18.00

  • 5663 - Enhancements to Text Alignment and Text Transforms

    The transforms suboption in Set_Text_Font has a new option character position adjusted which allows for more flexibility in alignment for transforms text. To learn more about this feature, please see the section on scene text in the HOOPS/3dGS Programming Guide.

  • 5931 - Ability To Store Binary Data in the HOOPS Database

    The new Set_User_Data function allows you to store binary data in the HOOPS database. You can link a piece of data with a segment and HOOPS will not process or modify the data. You can read a detailed discussion on user data in the HOOPS/3dGS Programming Guide.

  • 6229 - Support For A Mask Region

    The function Set_Polygonal_Clip_Region can now be used to set a mask region. In the options parameter, you can now set the new type suboption to either clip or mask to specify what kind of region you want.

  • 6822 - HOOPS/3dGS only creates driver segments for drivers it can create

    Previously, HOOPS/3dGS would create driver segments for drivers on supported platforms. Now when HOOPS/3dGS starts up, it will only create driver segments that are available for the current system.

  • 7006 - Per character attributes supporting colors

    You can set a color as a per character attribute with the new suboption color via the MSet_Character_Attributes function.

  • 7721 - New Interface For Line and Edge Patterns

    A new set of functions have been added for customizing and modulating line and edge patterns. They are Set_Line_Pattern_Explicit and Set_Edge_Pattern_Explicit, respecitively. A detailed discussion on line patterns can be found in the HOOPS/3dGS Programming Guide. Additionally, there is a section on customizing and modulating these patterns.

  • 8023 - With_Data variant of the exit update callback

    In Set_Driver_Options, when you set the Set_Driver_Options_exit_update suboption, if your callback function's signature has a parameter for your own data as in Set_Callback_With_Data, you can set the new exit update data option as well.

  • 8186 - Support For Ellipses and Circles In Display Lists

    Ellipses and circles are now included in display lists.

  • 8330 - Screen Range Supported as a Coordinate System in Compute_Coordinates

    Compute_Coordinates's in_system and out_system now takes screen range as an option. The screen range is set in Set_Rendering_Options.

  • 9287 - Allow Users To Pass In QPrint Object For Printing

    When users use the QT Print Driver, they can now set DEBUG_PASSED_IN_QPRINTER to the debug option in Set_Driver_Options to pass the QPrinter object. A discussion on the QT Driver can be found in the Platform Device Guide.

  • 9433 - Optimize_Segment_Tree honors subgeometry color.

    Optimize_Segment_Tree now honor subgeometry color. To learn more about segment tree optimization, you can read the section on segment organization in the HOOPS/3dGS Programming Guide.

  • 9484 - Per Character Horizontal Text Alignment

    You can set horizontal alignment as a per character attribute with the new suboption 'horizontal offset' in the MSet_Character_Attributes function.

  • 9722 - Draw Time Reduction Of Vertices For Point Clouds

    You can control the number of vertices drawn for a point cloud with the new rendering option vertex decimation. In the HOOPS/3dGS Programming Guide, you can read about vertex markers and point cloud optimization guidelines.

  • 9794 - Support for Per-Vertex Transmission Colors

    You can now use the RGBA space to set colors on vertices with the functions: MSet_Vertex_Colors_By_Value, MSet_Specific_Vertex_Colors_By_Value, MSet_Vertex_Colors_By_FIndex, and MSet_Specific_Vertex_Colors_By_FIndex.

  • 9860 - Contour Line Enhancements

    You can now use the new rendering options, isoline options and color index interpolation options, for finer grain control of how contour lines are rendered. There is a discussion on how to render contour lines in the HOOPS/3dGS Programming Guide.

  • 9890 - Support "bold" Text Font setting for Generic Fonts

    The bold option is now supported for generic fonts.

  • 9946 - Extent Culling Option Which Does Not Put Objects Into Deferral List

    A new culling suboption, hard extent, has been adding the Set_Heuristics. The objects that do not meet the hard extent threshold will not be drawn regardless of how much time is left in a timed update. To learn more about culling and how its supoptions interaction, please read the section on culling in the HOOPS/3dGS Programming Guide.

  • 9974 - New API Move_By_Key_By_Key

    A new variant on Move_By_Key has been added: Move_By_Key_By_Key.

  • 10058 - New Heuristics for handling large models

    Two new heuristics, model_type and force defer batch have been to be used in conjunction with static model to improve performance. To learn about optimization with these heuristics, please see the static model discussion of the HOOPS/3dGS Programming Guide.

  • 10064 - More Flexible Naming of HOOPS_PICTURE on UNIX

    On UNIX platforms, the default HOOPS_PICTURE will be set the value of the environment variable DISPLAY.

  • 10099 - A HOOPS Callback Point For When An Object Is Deleted

    You can now set a callback point for when an object is deleted by using the new deleted key callback in Define_System_Options.

  • 10125 - Shadow maps for spot lights

    Spot lights now cast shadows when shadow maps are enable via Set_Rendering_Options.

  • 10236 - Bloom Lighting Effect

    A new shader effect called Set_Driver_Options_bloom has been added. You can enable this feature via Set_Driver_Options. Note that bloom is only availabe for shader drivers (DX9 and OpenGL2). To learn more about this, you can read the section on bloom in the HOOPS/3dGS Programming Guide.

  • 10251 - Hardware Accelerate Draw Path for Geometry References With Color

    The rendering of geometry references with color are now hardware accelerated.

  • 10357 - More Sophisticated Handling Of Text During HLR Rendering

    HOOPS now offers the option to enable the rendering of text during hidden line mode with the hidden line removal rendering suboption 'render text'.

  • 10399 - Depth of Field Shader Effect

    Now, you can enable the depth of field shader effect in Set_Driver_Options for shader-based drivers like DX9 and OpenGL2. This feature allows you to create focus at a particular locus while areas further away appear softer. You can read more about depth of field in the HOOPS Programming Guide.

  • 10403 - Support for Cube Based Environment Maps

    Cube based texture can now be used for environment maps. A detailed discussion of skyboxes and cube maps can be found in the HOOPS/3dGS Programming Guide.

  • 10417 - Expanded capabilities for "." Alignment of Text

    Previous in Set_Text_Alignment, the "." modifier could only be used with some alignment definitions but now it can be used for all alignments.

  • 10587 - Quality Suboption for Ambient Occlusion

    In Set_Driver_Options, ambient occlusion has a new suboption "quality" which lets you control if visual detail should give way to performance.

  • 10693 - IM Function To Set Variable Line, Edge and Marker Weight

    The following HIC function have been added to set variable weight on lines, edges and markers: HIC_Set_Variable_Line_Weight, HIC_Set_Variable_Edge_Weight and HIC_Set_Variable_Marker_Size.

  • 10722 - New "Exterior" Text Preference Setting

    In Set_Text_Font, the exterior option has been added. It is also a suboption for preference. To read about when to enable the exterior option, please see the text preference of the HOOPS/3dGS Programming Guide.

  • 10734 - An I.M Interface To To Register Their Own Shaders

    There is a new shader callback point along with a number of supporting I.M. functions that you can read about in the set shader callback point section in the HOOPS/3dGS Programming Guide.

  • 10813 - Support for Diffuse Texture Tinting

    In Set_Rendering_Options, there is a new option Set_Rendering_Options_diffuse_texture_tint. When this is enabled, the specified color is used to tint textures.

  • 10862 - Support for driver config information in Show_Device_Info

    In Show_Device_Info, you can now find the driver config, driver config id and driver config version.

  • 10960 - System Option To Allow Users To Set a Directory For Code Generation Output

    When the system option code generation is enabled, you can now specify the default location for the output by setting the code generation directory.

  • 11094 - Support for external driver configuration file

    There is a new system option driver config file that lets you specify a file containing information which features to enable for a given system configuration. This file loaded once at start-up time. This file can be updated and shipped to the end-user without any recompilation of the your application. To learn more the driver configuration files and deployment of a HOOPS application, please see the HOOPS Deployment Guide.

  • 11123 - Add Tolerance Values In KCompute_Boolean_Shell

    The options parameter for KCompute_Boolean_Shell now takes two new suboptions: plane tolerance and plane merge tolerance. These suboptions give you a finer grain control of the KCompute_Boolean_Shell results.

  • 11157 - Option To Ignore Transparency Settings In Simple Shadow

    When the simple shadow is enabled, you can set a new suboption, ignore transparencies. This suboption ignores any segment level transparency setting when rendering the simple shadow.

  • 11360 - Thread Level Control of Update Activity

    In the update control system option, there is a new modifier called "thread". When this option is included in the update control specification, redraw activity will only be affected for modifications caused by the calling thread.

  • 11438 - Shadow map generation changes to Update_Display_Timed

    In Update_Display_Timed, shadow maps will be generated if a new light has been introduced. In subsequent calls to to Update_Display_Timed, shadow maps will not be regenerated as they might normally would if the lights in the scene are camera relative or the 'view dependent' suboption is enabled for shadow maps.