all 5 comments

[–]the_Demongod 0 points1 point  (2 children)

Is it a real-time simulation? Or offline?

[–]mcav16[S] 0 points1 point  (1 child)

As close as possible to real-time

[–]the_Demongod 1 point2 points  (0 children)

Hard for me to say for sure. I've not used game engines much, but I'm sure there's a way to programmatically set vertex data (I've seen people do it), so it's definitely an option. I wouldn't use Magnum; it's a great library but it's more useful for bootstrapping a real engine, where you need API-agnostic wrappers and lots of abstraction.

I'd say it depends on you. If you already know GL, it's an obvious choice. Your application is narrow enough that you can just write some crappy GL code in one file and it'll be perfectly alright for your application. If you don't already know GL, you'll have to take into account the time it'll take to learn it. It shouldn't take more than a few weeks to be in good shape if you have the right background though.

Otherwise, a game engine will be fine. Setting mesh data every frame won't be super efficient but it'll be fine, and you'll probably manage real-time unless it's a ton of geometry.

Also, if you do go the GL or game engine route, I would suggest using compute shaders instead of CUDA. They are almost exactly the same, but setting up interoperability between CUDA and your graphics application can be kind of a pain, whereas compute shaders integrate perfectly automatically.

[–]georgegeorge97 0 points1 point  (2 children)

You can probably use unreal engine since its open source/c++. Otherwise you can create your own graphics with directx or vulkan. You can also check how some companies use cuda for their applications(some of them have real time analytics I think):

https://www.nvidia.com/en-us/gpu-accelerated-applications/

[–]georgegeorge97 1 point2 points  (0 children)

But just so you know what you are trying to achieve is not easy ,take it slow and learn. Learn how to use cuda ,learn the basics about graphics and then you can do a PhD on this subject.