SkillAgentSearch skills...

H3dapi

No description available

Install / Use

/learn @SenseGraphics/H3dapi
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

README

Overview

H3D API is an open-source, cross-platform, scene-graph API. H3D is written entirely in C++ and uses OpenGL for graphics rendering and HAPI for haptics rendering.

HAPI is an open-source, cross-platform, haptics rendering engine written entirely in C++. It is device-independent and supports multiple currently available commercial haptics devices. You can write your application once and not have to modify any code to use another haptics device. Choose between different rendering algorithms, different force effects and several kinds of surfaces to create the feeling that you want or create your own custom made effects. HAPI has been designed to be a fully modular haptic rendering engine, allowing users to easily add, substitute or modify any component of the haptics rendering process.

H3D Releases

This is the 2.4.0 version of H3D API.

Released on: Mon, 29-Apr-2019

Libraries

Here follows a description of each library and their changes.

H3DAPI

Changes for version 2.4.0 of H3DAPI:

  • Added removeField functionality for dynamic nodes (ComposedShader).
  • Added mip map filtering choices in TextureProperties.
  • Performance improvements and added flags in CMake that can be used for optimizing performance of releases.
  • Shadow improvements. Both in the normal case and also added a multi threaded option for calculating shadows.
  • Support for exr images.
  • Made metadata nodes a bit more useful.
  • Added possibility of setting max frame rate for Scenes.
  • Added new stereo render mode VERTICAL_SPLIT_KEEP_ASPECT_ONE_PASS, also referred to as single pass stereo rendering.
  • Added support for bindless textures.
  • Added support for direct state access, scissor box to limit rendering, stencil masking feature and a new value called 2D_MULTISAMPLE_ARRAY ( layered rendering of textures ) for outputTextureType field in FrameBufferTextureGenerator.
  • Updates to DeviceLog and PlaybackDevice.
  • ImageObjectInfo can now also be used for all H3DImageObject inherited classes instead of only X3DTexture3DNode.
  • Added sRGB texture format in TextureProperties.
  • Added option to share data between textures that use the same url.
  • Added a couple of more default sections to be included when profiling.
  • Fixes to compile for visual studio 2015 and 2017.
  • Added SKIN_DLB to renderMode of HAnimHumanoid which can be used to get a different (better) skinning by using Dual Quaternion.
  • Renamed many CMake cache variables and added functions to make it easier to setup H3D projects in similar fashions.
  • Added CMake functionality for handling external checkouts that contain subdirectories built for different visual studio versions.
  • Updates to increase the robustness of the implementation of python support.
  • Added GL_R16, GL_R16F, GL_R32 and GL_R32F in texture nodes.
  • Added support for texture compressed methods and file formats.
  • Tesselation shader support for LineSet.
  • Various bug fixes for url resolving.
  • Fixed issues with syncing to the haptics thread and destruction of data.
  • All kinds of H3DImageObjects and not just X3DTexture2DNode are allowed in HapticTexturesSurfaces node.
  • Added support for precompiled headers.
  • X3DTexture3DNode nodes can now have their current state saved as nrrd.
  • Using a tesselation shader no longer disables haptics for that node. Although the haptic triangles will be calculated from the non-tesselated geometry.
  • ImportLibrary now appends _vc suffix (on windows) automatically as fallback when trying to load dlls.
  • Added Oculus rift stereo mode.
  • Added support for vibration feature and auto calibration to ForceDimensionDevice. Gripper angle can now also be obtained. Desired communication rate between haptics device and haptic thread can be set.
  • Added reading of angular velocity for H3DHapticsDevice.
  • Exposing encoder values and adding access to inkwell status of PhantomDevice.
  • Added field to scale force output in H3DHapticsDevice outside of calibration matrix.
  • Added fields in GodObjectRenderer for more control over its behaviour.
  • Fixed issues with PlanarReflector.
  • Added support for automatic calibration of ForceDimensionDevice.
  • Can now use field faceSize to set the font size in points in Fontstyle node.
  • Fixed many compile warnings.
  • Added a way to specify a local python virtual environment for H3DLoad and H3DViewer.
  • Made it possible to use an NVSettings.x3d node to force specific graphics card settings for an application using H3D.

New H3D nodes:

  • Capsule
  • ClutchedDevice
  • DDSImageLoader
  • OpenEXRImageLoader
  • MFNodeSplitter
  • OculusRiftSensor
  • ShaderImage2D
  • ShaderImage3D
  • ShaderChildNode
  • ShaderConstants
  • ShaderImageNode
  • ShaderStorageBuffer
  • ShaderAtomicCounter

Fields exposed on X3D level for existing nodes:

  • useDSA, useSpecifiedClearColor, clearColor, useScissor, scissorBoxX, scissorBoxY, scissorBoxWidth, scissorBoxHeight, clearColors, nrLayers, splitScene, projectionWidth, projectionHeight, generateStencilMask, applyStencilMask and useInverseMasking in FrameBufferTextureGenerator.
  • loadInThread in Image3DTexture and ImageTexture.
  • deadmansSwitch, deviceAngularVelocity, trackerAngularVelocity and forceScale in H3DHapticsDevice.
  • close in DeviceLog.
  • width, height, widthInUse and heightInUse to ConvolutionFilterShader and GaussianFilterShader.
  • bindlessTextures, bindlessTexturesUnusedTime, shareTextures, maxTextureDimension and textureCompression in GraphicsOptions.
  • transparency, saveToUrl and saveSuccess to FBODebugger.
  • enabled in H3DShadowObjectNode.
  • elapsedTime in SimpleMovieTexture.
  • swapEyes in StereoInfo.
  • pointingDeviceRefreshMode and resetViewPoint in H3DWindowNode.
  • angularSpeed in X3DParticleEmitterNode.
  • set_pauseDeviceTransform and set_secondaryButton in H3DFakeHapticsDevice.
  • printShaderWarnings in ComposedShader.
  • pointSize in PointSet.
  • enableForce, vibrationFrequency, vibrationAmplitude, gripperAngle, autoCalibrate, isAutoCalibrated, desiredComThreadFrequenc and gripperForce. to ForceDimensionDevice.
  • gripperAngle, set_gripperAngle and gripperForce to FakeHapticsDevice.
  • instanceCount in IndexedTriangleSet.
  • centerOfMass in X3DGeometryNode.
  • shaderString in ShaderPart.
  • encoderValues and inInkwell in PhantomDevice.
  • minDistance and enableSecondaryCollisions in GodObjectRenderer.
  • faceSize in FontStyle node.

New python functionality:

  • addURNResolveRule, exportGeometryAsSTL and log functions added.
  • Python scripts used with PythonScript node can now implement an onExit function.
  • isValidValue and getValidValues functions of SFString field.
  • closestPoint, lineIntersect, removeField and clearField functions added for nodes.

H3DViewer updates:

  • Added functionality to control expansion of nodes in tree viewer by using metadata nodes.
  • Added LookAt right click menu item to center at nodes using the tree viewer.
  • Added search functionality to tree viewer.
  • Profiling of groups in H3DViewer tree viewer is added.
  • The environment variable H3D_CONSOLE_LOGFILE can now be used to log console output to a file.
  • Added image viewer window for tree viewer.
  • Added a python console which can be used to set fields and do other operations on the currently loaded scene in real time.
  • New command line options for H3DViewer, screen, window_position, rendermode, fullscreen, no_border, no_menu, silent and logInitTime.
  • Added support for environment variable H3D_RENDERMODE to set the stereo mode for H3DViewer.
  • Added separate tabs for warnings and error messages in console window.
  • Added setting to automatically align treeview and console around main window.
  • Now allowed to show child windows when fullscreen.
  • Autocomplete to find nodes when adding nodes into scene graph.
  • Updates for visualizing node references as a debug feature.

Compatibility issues:

  • X3DPointingDeviceSensorNode::onIsOver virtual function has changed (extra argument).
  • Texture nodes inheritance
  • Shadow nodes inheritance.
  • Removal of using std in some headers means adding std:: in headers that previously relied on H3DAPI includes using std.
  • MField::setValueFromVoidPtr now take const void * as input instead of void *
  • SField::setValueFromVoidPtr now take const void * as input instead of void *
  • Minimum supported visual studio compiler is now Visual Studio 2010.
  • TriangleSet::AutoNormal::generateNormalsPerVertex is now named generateNormalsPerFace.
  • Deprecated H3D_USE_DEPENDENCIES_ONLY used in CMake configuration. Replace by checking existing targets.
  • Many CMake cache variables are now deprecated. Warnings should give instructions on what to do about them.
  • GraphicsCachingOptions is now removed.
  • One of the constructors for H3DDynamicFieldsObject is now removed.
  • Fixed an issue with the NurbsCurve geometry ignoring the last control point.
  • X3DEnvironmentTextureNode::cube_map_id is removed and H3DSingleTextureNode::texture_id is used instead.
  • Previously a variable in PythonScript that pointed to a parent of the PythonScript node in the hierarchy could cause circular references. Now storing a field of such a parent will also cause circular references. The reason is due to fixing crashes caused by getting the value of a field that is contained in a temporary node.
  • X3DSoundSourceNode::sound_buffer is now named X3DSoundSourceNode::soundBuffer
  • FrameBufferTextureGenerator::resetPrintedFlag class is now named ResetPrintedFlag
  • FrameBufferTextureGenerator::resetPrintedFlags class is now named ResetPrintedFlags
  • HAnimHumanoid::joint_matrix_changed is now named jointMatrixChanged.
  • PlaybackDevice::playback_url_changed is now named playbackURLChanged
  • PlaybackDevice::default_values_changed is now named defaultValuesChanged

Deprecated code:

  • H3DHapticsDevice::PosCalibration field templ

Related Skills

View on GitHub
GitHub Stars23
CategoryDevelopment
Updated25d ago
Forks7

Security Score

85/100

Audited on Mar 10, 2026

No findings