Start a new topic
Answered

Integrating the Application: Best way of accessing VHL interfaces

I am trying to use the Vortex SDK to integrate with an outside application. I have been going through the ExVHLIntegration code and reading through the Integrating the Application documentation. It appears that there have been significant changes to the ExVHLIntegration code since the documentation was last updated.

The tutorial uses the vortexintegration.h header which wraps a VortexIntegrationLibrarylibrary dll. Using these functions seems to not require including any other vortex headers/libraries.

The documentation, however, shows the use of the full Vortex SDK.


My question is which approach is recommended? Is there a reason for going with one method or the other? And will the documentation be updated?


Best Answer

Hi Jacob,


The VortexIntegration is a basic C-API and does not provide access to the internal C++ classes of the SDK. Thus, it is not possible to mix the SDK and the VortexIntegration in the same application. In the example given, you would need access to the keyframe API which is not available via VortexIntegration. You would need the SDK for that.


You could, however, write a plugin with the SDK. That plugin would have some content extension and probably a module to manage them. Using the editor, you would put your module in your setup and your extension in your content and expose its interface via a VHL. Then, using VortexIntegration, you would initialize it with your setup, load your content, and control your extension via VHL.


Hope that helps

Nicolas






Hi Jacob,


you're right that the documentation needs to be updated.


VortexIntegration is the new interface we are promoting because of it's simplified API and independence with Vortex (as you stated, core libraries are not needed).


The same interface is also used for the integration with Unreal Engine, see https://www.unrealengine.com/marketplace/en-US/product/vortex-studio and it demonstrates the capabilities. The integration code is available in the Unreal plugin, it can also give you more hints on how to use it,


Regards,


Marc.



Marc,


Thanks for the info. I will take a look at the unreal integration. For my application I still want to be able to render the simulation occasionally and was planning on doing that with vortex not SDL or even Unreal. Is that possible with the new API, or do I need to use the older API?


Thanks,


Jacob

Hi Jacob,


by adding the graphics engine to the Setup document to configure your application, you can use Vortex graphics.


this is independent of the API you will use, the new integration API might be enough and is simpler.


for more advanced operations, you can use the standard SDK, so why not starting with the VortexIntegration library.


Marc.

Sorry for resurrecting this thread, but I have a few related questions. I am now to the point where I am interested in doing some more advanced operations than what I believe is supported by the VortexIntegration library. The main thing that I want to do is randomly reconfigure the scene including the deformable terrain height field and possibly the location of some buried objects. Is this possible to do via the Vortex integration API or do I need to use the full SDK?


And if I need to use the full SDK is it possible to mix VortexIntegration code with the full SDK code? For example, could I do all of the loading and interfacing of VHL fields with the the VortexIntegration API and then use the SDK to set a keyframe for the scene to enable randomizing the heightmap?

Answer

Hi Jacob,


The VortexIntegration is a basic C-API and does not provide access to the internal C++ classes of the SDK. Thus, it is not possible to mix the SDK and the VortexIntegration in the same application. In the example given, you would need access to the keyframe API which is not available via VortexIntegration. You would need the SDK for that.


You could, however, write a plugin with the SDK. That plugin would have some content extension and probably a module to manage them. Using the editor, you would put your module in your setup and your extension in your content and expose its interface via a VHL. Then, using VortexIntegration, you would initialize it with your setup, load your content, and control your extension via VHL.


Hope that helps

Nicolas





Login to post a comment