hunar4321/particle-life

migrating to openGL 4.3 and other various breaking change

Closed this issue · 5 comments

ker2x commented

For some time now, I'm considering the idea of a few options :

  • migrating to openGL 4.3 (any graphic card less than 10 years old should do the job) for visual effect shader and/or compute shader
  • rewriting the whole C++ code using a lighter/faster framework (that would allow C++20 too)
  • modify the existing cpp code
  • create another C++ directory inside the same project
  • create another project entirely

Any opinion on this @hunar4321 ?

Hi @ker2x

Great ideas. The current code is easy to follow and understand (it matches the tutorial video) and we can leave it that way for the educational purposes.
If you are planning on some big refactoring and breaking changes, the following options are better:

  • create another C++ directory inside the same project. Or
  • create another project entirely

If you create another C++ directory inside the same project, I'll gladly accept your pull request.
Also, if you prefer to create another project entirely. I can add a link to your new project in the readme section as another C++ port. Do whatever you think is better.

Also, I'm sorry for not contributing to the code much lately because I have been busy with some other tasks.

Thanks again for the nice work

Edit: rewriting the whole C++ part with another framework is also an option if you think you can make the code less bloated and maintain the readability.

Cheers

ker2x commented

I'll create another directory inside the project then.
I'll keep dependencies to a minimum to make it easy to compile & run.

The rationale is quite simple :

  • We are bruteforcing the GPU. it was fine before cpu optimization, but as the cpu goes faster, we are spending more and more time waiting for the gpu.
  • We are bruteforcing openmp. It's not meant to be called thousands of time per second. it's super easy to use but it scale poorly for a graphic application like this. running on 8 core only improve the performance by 2 or 3x.
  • Most of the concurrency stuff was added in C++17, but openframework is stuck to C++14. I don't want to do all the threading stuff manually.
ker2x commented

I think I'll give a try to https://github.com/LukasBanana/LLGL

I think I'll give a try to https://github.com/LukasBanana/LLGL

And for the GUI I suggest: https://github.com/ocornut/imgui It is nice and easy to use

ker2x commented

yes, I didn't even consider using anything other than dear imgui :)