JoeyDeVries / Cell

OpenGL C++ Graphics Engine
Other
887 stars 125 forks source link

Adding directx/opengl es to cell #10

Open Ias0601 opened 6 years ago

Ias0601 commented 6 years ago

Hey joey.

Opengl is great but what do you think about having directx/opengl es too? I might be able to implement directx versions of the classes in your project and all you have to do is ask in the constructor of cell for which backend to choose. Vulkan is new so most of the android devices don't support it. So isn't it a good idea to make your engine( with opengl es) also run on android?

v7medz commented 6 years ago

OpenGLES is quite easy to implement while DirectX 10+/Vulkan can be quite difficult, tbh vulkan Is designed to in the same way as DX12, anyway this is a graphics engine and technique used here can be implemented in any rendering API if you understand the idea behind it.

JoeyDeVries commented 6 years ago

I'm fine with a DirectX 10/11 backend (and/or OpenGL ES) as long as readability remains a focus and things don't become too bloated with tons of specific corner cases.

I'm not a fan of a DX12/Vulkan backend combined with the OpenGL renderer as these render APIs are fundamentally too different and any attempt to 'combine' them won't be pretty.

Ias0601 commented 6 years ago

Yeah readability will stay the same as I'm only suggesting to create directx versions of base rendering classes and all other classes will be same for both backends like @zlixine said. My current directx rendering engine has some similarities to cell in structure.(Like it has separate classes for render targets, shapes, mesh, lighting) iaenginerendererv1 0

So if you like I will be working on making directx 11 versions of cell in my free time and will open a pull request when I'm done. (but it will take some time as I have my exams coming near and will only work on this in my free time)

Wish you all the best.

v7medz commented 6 years ago

be sure to check Unity "HLSLcc" to cross compile HLSL to GLSL quickly, try not to waste your time writing all shaders in both languages.

JoeyDeVries commented 6 years ago

Sounds great, and no worries; take all the time you need :) Best of luck!

zacharycarter commented 6 years ago

Why not just use an API like - https://github.com/bkaradzic/bgfx

v7medz commented 6 years ago

@zacharycarter the same answer to why not use an Engine as unity or Unreal?

zacharycarter commented 6 years ago

@zlixine I think you're confused...

BGFX simply abstracts away the differences between various graphics APIs. It's not a game engine - it's a graphics API abstraction library.

Ias0601 commented 6 years ago

@joeydevries Thank you. :)

@zlixine Thank you I will take a look at that.

@zacharycarter You will never get the fun of programming it from scratch when you use the library. I do programming as my hobby so I need to get the full fun with it.

Ias0601 commented 6 years ago

@zacharycarter if you have ever read the readme of this project you would never suggest something like that. "open-source OpenGL graphics engine aimed to serve as an educational repository for learning how a larger graphics engine can be structured and organized"