These HOOPS/3dGS API and driver interface changes could affect the performance of HOOPS-based applications.
No routines were deprecated for Releases 18.00 and 18.10.
In Define_System_Options, the multi-threading option no longer supports 'basic'.
There is now full support for the OpenGL2.
There is a new OpenGL2. It is currently in Beta and not ready to be used on commercial grade applications.
There were no build and linkage changes.
There were no interface changes for Releases 18.00 and 18.10.
There were no behavioral changes.
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.
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.
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.
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.
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.
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.
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.
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.
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.
You can set a color as a per character attribute with the new suboption color via the MSet_Character_Attributes function.
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.
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.
Ellipses and circles are now included in display lists.
Compute_Coordinates's in_system and out_system now takes screen range as an option. The screen range is set in Set_Rendering_Options.
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.
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.
You can set horizontal alignment as a per character attribute with the new suboption 'horizontal offset' in the MSet_Character_Attributes function.
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.
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.
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.
The bold option is now supported for generic fonts.
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.
A new variant on Move_By_Key has been added: Move_By_Key_By_Key.
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.
On UNIX platforms, the default HOOPS_PICTURE will be set the value of the environment variable DISPLAY.
You can now set a callback point for when an object is deleted by using the new deleted key callback in Define_System_Options.
Spot lights now cast shadows when shadow maps are enable via Set_Rendering_Options.
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.
The rendering of geometry references with color are now hardware accelerated.
HOOPS now offers the option to enable the rendering of text during hidden line mode with the hidden line removal rendering suboption 'render text'.
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.
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.
Previous in Set_Text_Alignment, the "." modifier could only be used with some alignment definitions but now it can be used for all alignments.
In Set_Driver_Options, ambient occlusion has a new suboption "quality" which lets you control if visual detail should give way to performance.
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.
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.
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.
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.
In Show_Device_Info, you can now find the driver config, driver config id and driver config version.
When the system option code generation is enabled, you can now specify the default location for the output by setting the code generation directory.
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.
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.
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.
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.
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.