There is an existing real-time, scientific visualization application that uses OpenCL and OpenGL to render complex 2D graphs. My goal is to incorporate this application into a 3D rendered scene. At the very minimum, the desired application would render a 3D scene with multiple planes that each contain a graph from the existing application. Ideally, the existing application's output could be rendered as each plane's texture. Right now I am trying to pick the best 3D framework for this task.

Some additional details:

  • Data is streaming in fast, so i am trying to preserve the Zero-copy mechanism between OpenCL/GL that is in the original 2D application
  • The 3D scene needs to look professional meaning:
    • I'd prefer to use a game engine (IE: Unity, Unreal, etc)
    • If I must write my own scene in OpenGL to accomplish this, then additional references are very welcome

Update 1 - Additional Technical Details

The existing 2D application does the following:

  1. Initially, the application maps an OpenGL Texture and VBO to an OpenCL kernel using clCreateFromGLTexture and clCreateFromGLBuffer for to render two graphs in real-time
  2. Data comes from a networked device and is passed to the OpenCL kernel. The OpenCL kernel performs a mathematic transform and then passes the result to the OpenGL texture and VBO.
  3. OpenGL takes the data in the VBO and renders a graph. At this point, both graphs are rendered to the screen.

My goal is to render the 2D graphs in a 3D scene in real-time. The easiest way to accomplish this appears to be by sharing the texture and VBO with the 3D scene.

  • I am asking if anyone knows if a game engine (Unity, Unreal, CryEngine, etc.) can access an OpenCL shared VBO or texture. This would allow me to leverage the game engine's ability to render pretty scenes.
  • If there is no game engine that allows this, then I will have to write the 3D scene in OpenGL. In this case, I was wondering if there were any existing OpenGL frameworks that can be leveraged to more easily make an eye appealing scene.
  • 1
    Can you describe this in any more detail? What you have here is very vague, so it's hard to recommend anything. At the least, you could set up an FBO and have the app render to a texture. You could then use that texture any way you'd like in your app. But beyond that vague recommendation, it's hard to give any more specific details because it's not clear what you're trying to do. – user1118321 Mar 6 '17 at 5:05
  • I updated the original description. FBO is a great idea that i did not look at yet. I am mainly asking if there is a way to leverage existing game engines or projects so I can more quickly code an eye appealing 3D scene. – Liam Kelly Mar 6 '17 at 15:38
  • You'll need to describe what "professional" means exactly. Scenes rendered with Unity and Unreal will both look like garbage if you don't give them anything good to render, which is orthogonal to your technical problems listed here. – whatsisname May 18 '17 at 20:03
  • @whatsisname very true. Basically I am looking a project/framework where I can leverage the most useful, existing work. I'd rather not write my own primary components, such as a camera node or scene graph, but if it means i can keep the zero copy mechanism, i will. – Liam Kelly May 19 '17 at 12:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.